当前位置: 首页 > 知识库问答 >
问题:

硬决定论与Java随机生成器[duplicate]

汪志业
2023-03-14

共有1个答案

宗意蕴
2023-03-14

是的,Random类的输出确实依赖于可预测的事件。该类使用一种算法来产生伪随机数。正如文件所说:

next的一般契约是,它返回一个int值,如果参数位在1到32之间(包括在内),那么返回值的许多低阶位将是(近似)独立选择的位值,每个位值(近似)相等地可能是0或1。接下来的方法由Random类实现,它将种子原子地更新为

(seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1)

并返回

(int)(seed >>> (48 - bits)).

这是一个线性同余伪随机数发生器,由D.H.Lehmer定义,由Donald E.Knuth在《计算机编程艺术》第3卷:精数算法,第3.2.1节中描述。

 类似资料:
  • 我的代码看起来很业余,因为我是一名软件工程专业的二年级学生。 我创建了一个彩票号码生成器,并注意到了奇怪但一致的结果。我的程序试图匹配之前的百万欧元抽奖彩票号码。我追踪尝试次数,也追踪匹配3、4、5和6个数字的次数。 尝试次数在100万到4.22亿之间。i、 e.我会运行程序10次,我会实现一个范围,我还会跟踪每次运行所需的时间长度。 我解释了一些事情,比如防止一个随机数被多次使用,这个检查是针对

  • 在 Java 中要生成一个指定范围之内的随机数字有两种方法:一种是调用 Math 类的 random() 方法,一种是使用 Random 类。 Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float、byte 数组以及 double 类型的随机数,这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1

  • 问题内容: 所以我基本上是在一个项目中,计算机从单词列表中提取一个单词,然后为用户弄乱它。只有一个问题:我不想一直在列表中写很多单词,所以我想知道是否有一种方法可以导入很多随机单词,所以即使我也不知道它是什么,并且那我也可以玩游戏吗?这是整个程序的编码,我只输入了6个字: 问题答案: 如果您重复执行此操作,我将在本地下载它并从本地文件中提取。* nix用户可以使用。 例: 从远程字典中提取 如果您

  • 问题内容: 我正在尝试在Java中生成盐,以与用于安全密码存储的哈希算法配合使用。我正在使用以下代码创建随机盐: 这应该生成一个完全安全的,随机生成的盐,以用于我的哈希算法。但是,当我运行代码时,每次都会输出相同的盐…表示生成的盐根本不是随机的。 出于明显的安全性目的,每个用户都需要一个唯一的符号,但是如果我每次创建一个新帐户时都使用此代码,则每个用户都将具有相同的符号,这一开始就破坏了它的用途。

  • 本文向大家介绍浅析Java随机数与定时器,包括了浅析Java随机数与定时器的使用技巧和注意事项,需要的朋友参考一下 产生90-100的重复的随机数: 产生90-100不重复的随机数: 每一秒产生90-100的重复的随机数: 本文转载于:https://www.idaobin.com/archives/301.html