Java中存在着两种Random函数:
java.lang.Math.Random和java.util.Random
1、java.util.Random的使用
创造一个随机数生成器,即构一个造Random对象。而Random有两种构造方法:
Random():创建一个新的随机数生成器。默认当前系统时间对应的相对时间有关的数字作为种子数,而不是没有种子。
Random( long seed ):
使用单个 long种子创建一个新的随机数生成器。
那么什么是种子?由于java.util.Random类中实现的随机算法是伪随机,也就是有规则的随机,所谓有规则的就是在给定种(seed)的区间内随机生成数字,即种子是这组随机数的组号,同一时间创造的同组号的随机数组相同。
//在学全如何生成随机数后,我们通过例子直观的感受什么是种子。
Java.util.Random()方法摘要
1.protectedint next(intbits):生成下一个伪随机数。
2.boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。
3.void nextBytes(byte[]bytes):生成随机字节并将其置于用户提供的 byte 数组中。
4.double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的double值。
5.float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布float值。
6.double nextGaussian():返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0。
7.int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int 值。
8.int nextInt(intn):返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值。
9.long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的long 值。
10.void setSeed(longseed):使用单个 long 种子设置此随机数生成器的种子。
前九个是随机数生成器调用产生随机数的方法,只是产生的随机数类型不同。最后一个方法是set方法,设置种子数。
2、java.lang.Math.Random
Math.Random的本质是内部调用java.util.Random()的,只是种子数固定为默认系统时间对应的数。即Math.Random实现了util.Random生成随机数生成器和随机数生成器产生随机数的两个过程,但是种子数不能改变。
前九个是随机数生成器调用产生随机数的方法,只是产生的随机数类型不同。最后一个方法是set方法,设置种子数。
2、java.lang.Math.Random
Math.Random的本质是内部调用java.util.Random()的,只是种子数固定为默认系统时间对应的数。即Math.Random实现了util.Random生成随机数生成器和随机数生成器产生随机数的两个过程,但是种子数不能改变。