Java中的随机数
最近有看到,也混混的,再复习一下
Java中一般有两种随机数,一个是Math中的random()方法,一个是Random类
1.Math.random()
随机生成0<x<1的小数
返回只是从0到1之间的小数,如果要50~100,就先放大50倍,即0~50之间,但还是小数
如果要整数,就强制转换int,然后在加上50即为50~100
(int)(Math.random()*50)+50
2.Random类
Random random=new Random(); //默认构造方法
Random random=new Random(1000); //指定种子数
随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,产生需要的种子数
相同的种子数的Random对象,相同次数生成的随机数字是完全相同的
两个种子数相同的Random对象,第一次、第二次生成的随机数字完全相同
Random类中各方法生成的随机数字都是均匀分布的,区间内的数字生成的几率是均等的
它有一个缺点,就是他是一个对象。
他的方法必须是通过一个实例来调用,这意味着必须先调用他的构造函数。
内存充足时还好,内存不足时就会带来问题。
java.util.Random是线程安全的,所以不存在多个线程调用会破坏种子的风险
这里还有需要补充的,下次遇到时回来补一下