Mic*_*rdt 12
既然你问了一个例子:
import java.util.Random;
public class RandomTest {
public static void main(String[] s) {
Random rnd1 = new Random(42);
Random rnd2 = new Random(42);
System.out.println(rnd1.nextInt(100)+" - "+rnd2.nextInt(100));
System.out.println(rnd1.nextInt()+" - "+rnd2.nextInt());
System.out.println(rnd1.nextDouble()+" - "+rnd2.nextDouble());
System.out.println(rnd1.nextLong()+" - "+rnd2.nextLong());
}
}
Run Code Online (Sandbox Code Playgroud)
无论Random您运行它的频率如何,无论您使用什么平台或Java版本,这两个实例都将始终具有相同的输出:
30 - 30
234785527 - 234785527
0.6832234717598454 - 0.6832234717598454
5694868678511409995 - 5694868678511409995
Run Code Online (Sandbox Code Playgroud)
随机生成器是确定性的.给定Random的相同输入和Random中方法的相同用法,即使在不同机器上的不同运行中,返回到程序的伪随机数序列也是相同的.
这就是为什么它是伪随机的 - 返回的数字在统计上表现得像随机数,除非它们可以被可靠地预测.真随机数是不可预测的.
| 归档时间: |
|
| 查看次数: |
14581 次 |
| 最近记录: |