Java 伪随机数(Random类)

此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式 (linear congruential form) 对其进行了修改

如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证此属性的实现,为类 Random 指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。

Random 类实现的算法使用一个 protected 实用工具方法,每次调用它最多可提供 32 个伪随机生成的位。

 

Random 类有以下这些方法:

nextBoolean()                                        返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布 的boolean值。

                                                                                                                                                                

nextBytes(byte[] bytes)                        生成随机字节并将其置于用户提供的 byte 数组中。

                                                                                                                                                                

nextDouble()                                         返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0之间均匀分布的                                                                           double值

                                                                                                                                                                

nextFloat()                                             返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0之间均匀分布的 float                                                                   值

                                                                                                                                                                

nextGaussian()                                    返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯 (“正态”)分布的 double                                                                    值,其平均值是 0.0,标准差是 1.0

                                                                                                                                                                

nextInt()                                                 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int

                                                                                                                                                                

nextInt(intn)                                          返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包 括)和指定值(不包括)之                                                                间均匀分布的 int

                                                                                                                                                                

nextLong()                                           返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布 的long

                                                                                                                                                                

setSeed(long seed)                          使用单个 long 种子设置此随机数生成器的种

                                                                                                                                                                

下面看下例子 :

Random random = new Random();

//生成伪随机boolean  true/false

System.out.println(boolean + random.nextBoolean());

//生成伪随机双精度浮点数

System.out.println(双精度浮点数 + random.nextDouble());

//生成伪随机数并保存到数组中

byte[] bs = new byte[5];

random.nextBytes(bs);

for (byte b : bs) {

System.out.print( b + ", ");

}

System.out.println();

//生成伪随机单精度浮点数

System.out.println(单精度浮点数 + random.nextFloat());

//生成伪随机整型数

System.out.println(整型数 + random.nextInt());

//生成伪随机长整型数

System.out.println(长整型 + random.nextLong());

//生成伪随机呈高斯分布的double数

System.out.println(呈高斯分布的double数 + random.nextGaussian());

生成结果:

猜你喜欢

转载自blog.csdn.net/weixin_44578470/article/details/89363175