首页 > 文章列表 > java随机数生成原理

java随机数生成原理

java随机数
498 2022-08-06

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1、随机生成数方法

final double v = Math.random();

或者

final int i = new Random().nextInt(int bound);

2、原理解析

(1)Math库中的static(静态)方法random()

该方法的作用是产生0到1(包括0,但不包括1)的double值。

(2)使用Random类对象。

该程序可以生成多种不同类型的随机数字,只需调用nextInt()和nextFloat()即可(或调用nextLong()或nextDouble()。传送给nextInt()的参数设定了随机数的上限,下限为0。

3、实例

// 构造函数(一): 创建一个新的随机数生成器。
 
Random()
// 构造函数(二): 使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next 方法使用它来保存随机数生成器的状态。
Random(long seed)
 
boolean nextBoolean()     // 返回下一个“boolean类型”伪随机数。
void  nextBytes(byte[] buf) // 生成随机字节并将其置于字节数组buf中。
double nextDouble()     // 返回一个“[0.0, 1.0) 之间的double类型”的随机数。
float  nextFloat()      // 返回一个“[0.0, 1.0) 之间的float类型”的随机数。
int   nextInt()       // 返回下一个“int类型”随机数。
int   nextInt(int n)    // 返回一个“[0, n) 之间的int类型”的随机数。
long  nextLong()      // 返回下一个“long类型”随机数。
 
synchronized double nextGaussian()  // 返回下一个“double类型”的随机数,它是呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,标准偏差是 1.0。
synchronized void setSeed(long seed) // 使用单个 long 种子设置此随机数生成器的种子。