Random
java.lang.Object
————java.util.Random
public class Random extends Object implements Serializable 此类的实例用于生成伪随机数流。此类使用 48 位的种子
public Random()
创建一个新的随机数生成器。默认种子为纳秒值
此构造方法将随机数生成器的种子设置为某个值,该值与此构造方法的所有其他调用所用的值完全不同。
public Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。 该种子是伪随机数生成器的内部状态的初始值,该生成器可通过方法 next(int) 维护。 调用 new Random(seed) 等效于: Random rnd = new Random(); rnd.setSeed(seed);
public int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 nextInt 的常规协定是,伪随机地生成并返回一个 int 值。所有 2^32个可能 int 值的生成概率(大致)相同。 Random 类按如下方式实现 nextInt 方法: public int nextInt() { return next(32); } 返回: 下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
*public int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。 nextInt 的常规协定是,伪随机地生成并返回指定范围中的一个 int 值。 所有可能的 n 个 int 值的生成概率(大致)相同。 Random 类按如下方式实现 nextInt(int n) 方法: public int nextInt(int n) { if (n<=0) throw new IllegalArgumentException("n must be positive"); if ((n & -n) == n) // i.e., n is a power of 2 return (int)((n * (long)next(31)) >> 31); int bits, val; do { bits = next(31); val = bits % n; } while(bits - val + (n-1) < 0); return val; }
import java.util.Random;
public class d {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Random r1 = new Random(100);
int x= r1.nextInt();
int y = r1.nextInt();
System.out.println(x);
System.out.println(y);
Random r2 = new Random(100);
int a = r2.nextInt();
int b = r2.nextInt();
System.out.println(a);
System.out.println(b);
/*-1193959466
-1139614796
-1193959466
-1139614796*/
System.out.println("————————————————————");
Random r = new Random();
for(int i = 0; i < 10; i++) {
System.out.println(r.nextInt());
}
System.out.println("————————————————————");
for(int i = 0; i < 10; i++) {
System.out.println(r.nextInt(100));
//生成在0到n范围内的随机数,包含0不包含n
}
}
}
本文详细介绍了 Java 中的 Random 类,包括其构造方法、如何生成伪随机数及其内部实现原理。通过示例展示了如何使用不同构造函数及 nextInt 方法生成特定范围内的随机数。

4万+

被折叠的 条评论
为什么被折叠?



