Java随机数总结

1、Java中随机数生成方式

1)java.util.Random
Random类中的随机算法是伪随机,也就是有规则的随机,随机数实际上是seed经过运算后近似随机数的数字。指定seed,随机数序列确定;默认seed为系统当前时间戳。
常用方法:
· nextInt(),返回int值
· nextInt(n),返回[0, 1)
· nextDouble(),返回[0.0, 1.0),nextDouble()没有参数
//Random random = new Random();//默认构造方法    
Random random = new Random(10);//指定seed
int i = random.nextInt(10);
2)Math.random()
Math工具类,Math.random()返回[0.0, 1.0)double,内部实现就是封装了Random.nextDouble方法。
 double d = Math.random();
3)System.currentTimeMillis(),获取系统时间戳,取余
 long l = System.currentTimeMillis();    
 int i = (int)(l % 100);

2、范围随机数生成

1)整型
· [min, max),random.nextInt(max - min) + min
· [min, max],random.nextInt(max - min + 1) + min
· 以33.5%的概率生成1, 66.5%概率生成0:
Random random = new Random(10);
int sum = 0; //33.5%概率生成1,66.5%概率生成0
for (int i = 0; i < 100000; i++) {
    int data = random.nextInt(1000);
    if (data < 335) sum++;
}
System.out.println(sum);
2)浮点型
· [0, 1.0),random.nextInt()
· [0, max),random.nextInt() * max
· [min, max),random.nextInt() * (max - min) + min


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章