Java随机生成器如何工作?

大卫·穆拉兹(David Mumladze):

我写了模拟骰子掷骰子的程序

    Random r = new Random();
    int result = r.nextInt(6);
    System.out.println(result);

我想知道是否有一种方法可以“预测”下一个生成的数字,并且JVM如何确定下一个生成的数字?

在任何JVM和OS上,我的代码输出数字都将接近真实随机数吗?

财富:

它们是伪随机数,这意味着出于一般意图和目的,它们足够随机。但是它们是确定性的,并且完全取决于种子。以下代码将两次打印相同的10个数字。

Random rnd = new Random(1234);
for(int i = 0;i < 10; i++)
    System.out.println(rnd.nextInt(100));

rnd = new Random(1234);
for(int i = 0;i < 10; i++)
    System.out.println(rnd.nextInt(100));

如果可以选择种子,则可以先预先计算数字,然后使用相同的种子重置生成器,您将事先知道会出现什么数字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章