Java随机数的生成


Random类

生成一个[0,10)的随机整数
Random random = new Random();
int num1 = random.nextInt(10);

生成一个[0,10]范围的随机整数
[0,11) -> [0,10]

int num2 = random.nextInt(11);

生成一个[1,10]范围的随机整数
[0+1,10+1) -> [1,11) -> [1,10]
int num3 = random.nextInt(10) + 1;

Math.random()
它的作用是生成一个[0,1)的随机小数

生成一个[0,10)的随机小数
double类型的[0,10)
[0,1) -> [0,10)
double a_double = Math.random() * 10;

生成一个[0,10)的随机整数
int num1 = (int)a_double;

生成一个[0,10]范围的随机整数
强转为int时是向下取整 floor()
[0,10+0.5) -> [0,10.5) -> [0,10]

int num2 = (int) (a_double + 0.5);

或一步到位
int num3 = (int) (Math.random() * 10 + 0.5);

生成一个[1,11]范围的随机整数
[0+1.5,10+1.5) -> [1.5,11,5] 向下取整为 -> [1,11]
int num4 = (int) (Math.random() * 10 + 1.5);

测试代码
for (int i = 0; i < 1000; i++) {
a = (int) (Math.random() * 10 + 1.5);
if (a == 1) System.out.println(0);
if (a == 11) System.out.println(11);
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282555.html

(0)
上一篇 2022年8月27日
下一篇 2022年8月27日

相关推荐

发表回复

登录后才能评论