Java Random类简介说明
下文笔者讲述Java中Random类的简介说明,如下所示:
例:
Random类中实现的随机算法是伪随机 也就是有规则的随机 在进行随机时,随机算法的起源数字称为种子数(seed) 在种子数的基础上进行一定的变换 从而产生需要的随机数字 相同种子数的Random对象 相同次数生成的随机数字是完全相同的 也就是说,两个种子数相同的Random对象 第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同 --------------------------------------------------------------- Random类生成的随机数是等概率相同
Random类简介
构造方法 public Random() 使用一个和当前系统时间对应的相对时间有关的数字作为种子数 然后使用这个种子数构造Random对象 public Random(long seed) 使用一个种子数进行创建
Random中的方法简介
boolean nextBoolean() //返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值 |
void nextBytes(byte[] bytes) //生成随机字节并将其置于用户提供的 byte 数组中 |
double nextDouble() //返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的 double值 |
float nextFloat() //返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布float值 |
double nextGaussian() //返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0 |
int nextInt() //返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值 |
int nextInt(int n) //返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值 |
long nextLong() //返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值 |
void setSeed(long seed) //使用单个 long 种子设置此随机数生成器的种子 |
package com.java265.other; import java.util.Random; public class TestClass { public static void main(String[] args) throws Exception { Random r1 = new Random(88); Random r2 = new Random(88); System.out.println(r1.nextFloat() + ";" + r2.nextFloat()); System.out.println(r1.nextInt() + ";" + r2.nextInt()); System.out.println(r1.nextLong() + ";" + r2.nextLong()); System.out.println(r1.nextBoolean() + ";" + r2.nextBoolean()); } } -----运行以上代码,将输出以下信息------ 0.7259512;0.7259512 -441328586;-441328586 -4887970065590821111;-4887970065590821111 true;true
从以上代码中,我们可以看出, 当Random对象的种子相同 方法的调用顺序也相同 则它们会产生同样的数字序列 ----------------------------------------------------- Random产生的不是真正的随机数,而是伪随机数 为了避免两个Random对象产生同样的数字序列 我们常使用以下方法生成随机数 Random r=new Random(System.currentTimeMillis());
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。