----------------------------java的随机数------------------------------
Random随机数产生类
在Math类中也有一个产生0-1之间的小数随机数,Math.Random();
java.util
类 Random
java.lang.Object
java.util.Random
所有已实现的接口:
直接已知子类:
public class Random
extends Object
implements Serializable
此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式 (linear congruential form) 对其进行了修改(请参阅Donald Knuth 的The Art of Computer Programming,Volume 3,第 3.2.1 节)。
如果用相同的种子创建两个 Random
实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证此属性的实现,为类Random
指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random
使用此处所示的所有算法。但是允许 Random
类的子类使用其他算法,只要其符合所有方法的常规协定即可。
Random
类实现的算法使用一个protected
实用工具方法,每次调用它最多可提供 32 个伪随机生成的位。
很多应用程序会发现 Math.random()
方法更易于使用。
1. Random的构造器
构造方法摘要 | |
| |
|
方法摘要 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例子:
publicclass Test2 {
publicstaticvoidmain(String[] args) {
printRandomSeed();
}
publicstatic void printRandom() {
// 创建随机数对象
Random r = new Random();
// 获得随机整数,会获得负数
intintVal = r.nextInt();
System.out.println(intVal);
for (inti = 0; i < 10; i++) {
intVal = r.nextInt(10);
System.out.println(intVal);
}
}
public staticvoidprintRandomSeed() {
//创建随机数对象,带种子的构造器,每一个种子对应一个随机数
Random r = newRandom(99);
//获得随机整数,会获得负数
intintVal = r.nextInt();
System.out.println(intVal);
for (inti = 0; i < 10; i++) {
//生成0-9之间的随机数
intVal = r.nextInt(10);
System.out.print(intVal + ",");
}
}
}
结果:
-1192035722
8,9,1,0,2,4,6,0,9,8,