关于随机数 Math.random() Random
程序员文章站
2022-03-08 17:23:36
...
Math.random() 伪随机生成并返回一个从0.0d(包括)到1.0d(不包括), 双精度小数
new Random().nextInt(指定值); 伪随机生成并返回一个 在0(包括)和指定值(不包括)之间均匀分布的整型值, 另: 随机数种子会使得取值变得有规律
在项目中发现了2种写法
方式1:
int code = (int)((Math.random() * 9 + 1) * 100000);
方式2:
int code = new Random().nextInt(max) + max;
方式1:
代入一种情况: 0.01*9=0.09+1=1.09 0.9*9=8.1+1=9.1 范围是从 1.0~9.9 如果没有特殊要求也能使用了
方式2:
由于max限定了最大值, 如果max为100,则code 永远是123 145这种 1开头的数字, 从生成范围内随机数的角度上来说这样写是有问题的
public static int generateNumber(int length) {
int max= 1;
for(int i = 1; i < length; ++i) {
max*= 10;
}
return new Random().nextInt(max) + max;
}
如果要实现的是 从范围 5(包含)-10(包含), 6个数字的随机获取, 可以用下面的写法
public static int getRandomNum(int min, int max){
return new Random().nextInt(max-min+1) + min;
}
上一篇: LeetCode:1.最大乘积
下一篇: 在线编程的输入输出
推荐阅读
-
php源码分析之DZX1.5随机数函数random用法,dzx1.5random
-
linux shell实现随机数几种方法分享(date,random,uuid)
-
Python随机数random模块使用指南
-
Python随机数random模块使用指南
-
JavaScript中用于生成随机数的Math.random()方法
-
Python内置random模块生成随机数的方法
-
C#在循环中使用Random时生成的随机数相同的解决办法
-
Shell脚本实现随机数多种方法介绍(date、random、uuid)
-
Python random模块(获取随机数)常用方法和使用例子
-
java常用工具类 Random随机数、MD5加密工具类