Terry.Li-彬

虚其心,可解天下之问;专其心,可治天下之学;静其心,可悟天下之理;恒其心,可成天下之业。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  143 随笔 :: 344 文章 :: 130 评论 :: 0 Trackbacks
属于包:java.util.Random 



1、属性。

无。

2、构造函数。

Random() :创建一个新的随机数发生器。

Random(long seed) :用一个种子(长整型)创建一个随机数发生器。

3、方法。
说明:
1. 所有方法均为public;
2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])>

如:
static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。



    1. protected int next(int bits) :产生下一个伪随机数。

    2. boolean nextBoolean() :返回下一个从随机发生器的系列中得到的均匀分布的布尔值。

    3. void nextBytes(byte[] bytes) :产生随机字节数组放到指定的数组中。

    4. double nextDouble() :返回下一个从随机发生器的系列中得到的均匀分布的0.0到1.0的双精度类型值。

    5. float nextFloat() :返回下一个从随机发生器的系列中得到的均匀分布的0.0到1.0的浮点类型值。

    6. double nextGaussian() :返回下一个从随机发生器的系列中得到的符合均匀分布的0.0的平均数到1.0方差的高斯分布双精度类型值。

    7. int nextInt() :返回下一个从随机发生器的系列中得到的均匀分布的整型值。

    8. int nextInt(int n) :返回下一个从随机发生器的系列中得到的均匀分布的0到指定整型数(n)之间的整型值。

    9. long nextLong() :返回下一个从随机发生器的系列中得到的均匀分布的长整型值。

    10. void setSeed(long seed) :设置随机数发生器的种子为一个长整型数。


关于种子的描述:
这个类的对象使用一个48位的种子,
如果这个类的两个实例是用同一个种子创建的,
并且,各自对它们以同样的顺序调用方法,
则它们会产生相同的数字序列。

下面就对上面的介绍做一个实验,
尤其注意相同种子时的结果,
如果用默认的构造函数构造对象,
他们是属于同一个种子的。


代码:
import java.util.Random;

public class TestRandom{
   public static void main(String[] args){
      Random r1 = new Random(50);
      System.out.println("第一个种子为50的Random对象");
      System.out.println("r1.nextBoolean():"t" + r1.nextBoolean());
      System.out.println("r1.nextInt():"t"t" + r1.nextInt());
      System.out.println("r1.nextDouble():"t" + r1.nextDouble());
      System.out.println("r1.nextGaussian():"t" + r1.nextGaussian());
      System.out.println("---------------------------");
      
      Random r2 = new Random(50);
      System.out.println("第二个种子为50的Random对象");
      System.out.println("r2.nextBoolean():"t" + r2.nextBoolean());
      System.out.println("r2.nextInt():"t"t" + r2.nextInt());
      System.out.println("r2.nextDouble():"t" + r2.nextDouble());
      System.out.println("r2.nextGaussian():"t" + r2.nextGaussian());
      System.out.println("---------------------------");
      
      Random r3 = new Random(100);
      System.out.println("种子为100的Random对象");
      System.out.println("r3.nextBoolean():"t" + r3.nextBoolean());
      System.out.println("r3.nextInt():"t"t" + r3.nextInt());
      System.out.println("r3.nextDouble():"t" + r3.nextDouble());
      System.out.println("r3.nextGaussian():"t" + r3.nextGaussian());
      
      System.out.println("结果一目了然!");
   }
}

结果:
代码:

第一个种子为50的Random对象
r1.nextBoolean():       true
r1.nextInt():           -1727040520
r1.nextDouble():        0.6141579720626675
r1.nextGaussian():      2.377650302287946
---------------------------
第二个种子为50的Random对象
r2.nextBoolean():       true
r2.nextInt():           -1727040520
r2.nextDouble():        0.6141579720626675
r2.nextGaussian():      2.377650302287946
---------------------------
种子为100的Random对象
r3.nextBoolean():       true
r3.nextInt():           -1139614796
r3.nextDouble():        0.19497605734770518
r3.nextGaussian():      0.6762208162903859
posted on 2008-02-13 23:03 礼物 阅读(336) 评论(0)  编辑  收藏 所属分类: Java