【问题标题】:What algorithm is Rand() based on in C language? [duplicate]Rand() 是基于 C 语言中的什么算法? [复制]
【发布时间】:2015-07-21 14:38:57
【问题描述】:

我一直在研究 Rand() 的源代码,但直到现在我才弄清楚该函数的全貌。

以下是我找到并研究的源代码:

rand.c

random.c

有人可以为我提供一些建议或帮助吗?

谢谢一百万!

【问题讨论】:

标签: c algorithm random


【解决方案1】:

要求基于任何特定算法,但许多人会使用linear congruential 算法来生成序列。这基本上会按照以下方式更改种子:

seed = (seed * multiplier + adder) % modulo

然后将种子的一部分作为随机值传递。 multiplier、adder 和 modulo 的值可能会有很大差异。

【讨论】:

    【解决方案2】:

    Rand 基于一些东西,比如在每台机器上应该是唯一的 mac 地址。有几种实现可以验证返回的值是“随机的”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-30
      • 2016-05-03
      • 2014-05-22
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      相关资源
      最近更新 更多