在控制台上随机得到 4~11 之间的任意值, 含4和11
1 package com.guyu.demo; 2 3 import java.util.Random; 4 5 /** 6 * 7 * 2024年4月9日 上午10:39:43 8 * @author Guyu 9 * 10 * 随机数示例: 11 * 在控制台上随机得到 4~11 之间的任意值, 含4和11, 12 * 若要生成一个在 a 到 b(包括a和b)之间的随机正整数 (伪随机数),可以使用固定格式: nextInt(b - a + 1) + a 13 * 例如:①生成含 2-8 之间随机数,格式:nextInt(8-2+1)+2; 14 * ②生成含 0-100 之间随机数,格式:nextInt(101); 15 */ 16 public class RandomNumber { 17 18 public static void main(String[] args) { 19 // 创建一个 Random 对象 20 Random random = new Random(); 21 22 // 生成一个 4 到 11 之间的随机整数(包含4和11) 23 // 注:nextInt(8)生成 0 到 7 的随机数 (包含0,不包含8),加 4 后变为 4 到 11,即 nextInt(11-4+1) + 4 24 int randomNumber = random.nextInt(8) + 4;
25 // 生成 5-8 之间随机数(包含5和8):nextInt(8-5+1) + 5 26 // int randomNumber = random.nextInt(4) + 5; 27 28 // 在控制台上打印随机数 29 System.out.println("随机生成的数是: " + randomNumber); 30 } 31 }
题外衍生:想实现打印不含4和11数值可使用语句格式:nextInt(b - a - 1) + (a + 1);或者do while判断语句,
package com.guyu.demo; import java.util.Random; /** * * 2024年4月9日 上午10:45:43 * @author Guyu * * 随机数示例: * 在控制台上随机得到 4~11 之间的任意值, 要求不含4和11,
* 当前使用 do while 判断语句举例; * 若要生成一个在 a 到 b(不包含a和b)之间的随机正整数 (伪随机数),也可以使用固定格式: nextInt(b - a - 1) + (a + 1); * */ public class RandomNumber01 { public static void main(String[] args) { // 创建一个 Random 对象 Random random = new Random(); int randomNumber; do { // 生成4到11之间的随机数(包含4和11) randomNumber = random.nextInt(8) + 4; } while (randomNumber == 4 || randomNumber == 11); /** * 通过一个do-while循环来检查生成的随机数是否是4或11, * 如果是,则重新生成; * 当生成的随机数不是4或11时(随机只含:5/6/7/8/9/10),循环终止,并打印出这个随机数。 */ // 在控制台上打印随机数,随机只含范围:5/6/7/8/9/10 System.out.println("随机生成的数是: " + randomNumber); } }
在控制台上随机得到 5~7 之间的任意值, 四种随机区间范围实例如下:
1 package com.guyu.demo; 2 3 import java.util.Random; 4 5 /** 6 * 7 * 2024年4月9日 上午11:19:43 8 * @author Guyu 9 * 10 * 随机数示例: 11 * 在控制台上随机得到 5~7 之间的任意值, 四种随机区间情况, 12 * 若要生成一个在 a 到 b(包含a和b)之间的随机正整数 (伪随机数),可以使用固定格式: nextInt(b - a + 1) + a 13 * 反之,不包含 a 和 b 之间的随机正整数,需使用固定格式: nextInt(b - a - 1) + (a + 1) 14 * 包含 a 和不包含 b,需使用固定格式: nextInt(b - a) + a 15 * 不包含 a 和包含 b,需使用固定格式: nextInt(b - a) + (a + 1) 16 * 例如:①生成含 5-7 之间随机数(含a和b) 17 * ②生成 5-7 之间随机数(不含a和b) 18 * ③生成 5-7 之间随机数(含a但不含b) 19 * ④生成 5-7 之间随机数(不含a但含b) 20 * 21 */ 22 public class RandomNumber0409 { 23 24 public static void main(String[] args) { 25 // 创建一个 Random 对象 26 Random random = new Random(); 27 28 // ①生成含 5-7 之间随机数,格式:nextInt(7 - 5 + 1) + 5; 另外若需生成含 0-100 之间随机数,格式:nextInt(101); 29 int randomNumber1 = random.nextInt(3) + 5; 30 31 // ②生成 5-7 之间随机数(不含a和b),表示(a,b),格式: nextInt(1) + 6,随机结果范围只为:6 32 int randomNumber2 = random.nextInt(1) + 6; 33 34 // ③生成 5-7 之间随机数(含a但不含b),表示[a,b),格式:nextInt(2) + 5,随机结果范围:5、6 35 int randomNumber3 = random.nextInt(2) + 5; 36 37 // ④生成 5-7 之间随机数(不含a但含b),表示(a,b],格式:nextInt(2) + 6,随机结果范围:6、7 38 int randomNumber4 = random.nextInt(2) + 6; 39 40 // 在控制台上打印随机数 41 System.out.println("①随机生成的数是: " + randomNumber1); 42 System.out.println("②随机生成的数是: " + randomNumber2); 43 System.out.println("③随机生成的数是: " + randomNumber3); 44 System.out.println("④随机生成的数是: " + randomNumber4); 45 } 46 }
打印结果随机只有一种情况,会出现四个都为 6
说明: 在使用 Random 类的 nextInt(int bound) 方法,nextInt(int bound) 方法会生成一个介于 0(包括)和 bound(不包括)之间的伪随机整数。默认生成是左闭右开的区间,即[0, bound)。
故屿γ
标签:11,Java,Random,生成,nextInt,随机,随机数 From: https://www.cnblogs.com/guyu-/p/18123633