文章目录
使用 Math中的random()方法,生成[0, 1.0)的double类型数据
(int)(1+Math.random()*(100))//生成1-100的随机数,将double类型转换为int
使用java.util.Random类实现
//两种构造方法:
Random r = new Random();//不包含随机种子
Random r = new Random(100);//包含随机种子
//如果使用相同的随机种子,相同次数得到的随机数字是相同的
Random类的接口:
//Random类的函数接口
Random()
//构造函数1
Random(long seed)
//构造函数2,使用long型种子
Boolean nextBoolean()
//返回Boolean类型的伪随机数
void nextBytes(byte[] buf)
//生成随机数字节,并将字节存入传入的字节数组
double nextDouble()
//[0.0, 1.0)
float nextFloat()
//[0.0, 1.0)
int nextInt()
//返回int类型随机数
int nextInt(int n)
//返回[0, n)之间的随机数
long nextLong()
/*还有几个不常用的,返回随机数流的方法,
比如DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)等
详见官方文档
*/
synchornized double nextGaussian()
//返回呈高斯分布的double类型随机数 平均值为0.0, 标准偏差为1.0
synchornized void setSeed(long seed)
//设置随机数种子
例: 利用Random实现生成[0, 1.5)之间的小数
float random = new Random().nextFloat()*1.5;
通过System.currentTimeMillis() 获取一个当前时间毫秒数的long随机数
例: 利用获取当前时间的方式来的到[0, 100)的随机数
long l = System.currentTimeMills();
int a = (int)l%100;