【问题标题】:Math.random() Code Source?Math.random() 代码源?
【发布时间】:2011-02-14 11:43:46
【问题描述】:

来自 ActionScript 3.0 文档:

全局函数 > Math.random()

返回一个伪随机数 n, 其中 0

我有兴趣阅读 Math.random() 的源代码,并假设它在其他基于 C 的语言(如 AS3)中是相同的。可以看吗?

谁能解释一下哪些元素使代码是伪随机的?为什么?是否不可能创建一个返回真正随机值的函数?

【问题讨论】:

  • 不同的 ActionScript 实现之间的实现可能不同(并且很可能是不同的):Windows Flash 播放器可能使用一种实现,Mac Flash 播放器可能使用另一种实现,Scaleform GFx 可能使用另一种实现。

标签: actionscript-3 random


【解决方案1】:

有一大堆 Pseudo Random Generator 函数 - 如果您不进行高端加密,最常见的函数可能是线性全等 - 请参阅 wiki 以获取描述和实现代码的链接。

【讨论】:

    【解决方案2】:

    要获得真正的随机数,您可以使用一些网络服务,例如 random.org
    它使用来自大气噪声的随机性

    【讨论】:

      【解决方案3】:

      如果我没记错的话,很大程度上依赖于系统时间,因为它变化如此之快。 如果您达到相同的 sydtem 时间,则获得相同的随机数。 至于真正的随机,不可能,计算机中没有未设置的位。你可以说如果你进入其他的内存空间并抓住一些东西,那将是随机的,但这一切都是确定性的,就像时间一样。

      【讨论】:

      • 不完全是,如果您从相同的“种子”开始,PRN 将始终生成相同的数字序列。获取新随机种子的常用方法是使用系统时间。但是,如果您过快地重新设置生成器的种子,则每秒仅更改一次的时间值将保持不变。重新设置 rand() 是一个常见的错误
      • 不完全是?也许我遗漏了一些东西,但你说的和我一样,更详细一点。
      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多