【发布时间】:2010-09-24 15:27:33
【问题描述】:
关于这个主题有很多相互矛盾的信息。所以让我们试着就一个明确的答案达成一致:
C 中的这些随机数生成器中的哪一个可以产生更好的随机性:rand、random 或 arc4random?
注意:只是为了让问题更清楚,这不是关于真正随机性的问题,它只是这三者之间的冲突。
正如所指出的,这个问题没有多大意义,因为这不是关于 C,而是关于一个具体的实现,在我的例子中,可可(更具体地说是 iphone sdk,但我猜它们与就这些功能而言)。尽管如此,这里还是有一些有用的信息。我最后实现了 arc4random,主要是因为它易于使用(无需播种),这是没有人指出的一个重要因素。
我正在结束这个问题,并为可可开发人员添加可可标签以查找有关 RNG 的信息。非常感谢那些做出贡献的人,并对造成的混乱感到抱歉。
【问题讨论】:
-
PRNG 的 drand48() 系列怎么样?我的评估是“不在标准 C 中”,这是 POSIX / SUS 的一部分;通常比兰特好;可能不如 random() 及其支持功能。
-
这个问题没有意义。只有 rand() 是 C 语言的一部分,标准没有说明它应该有多随机或应该如何实现。
-
是的,显然我搞砸了。它的范围应该缩小到可可。所以现在怎么办?改变问题的范围会使答案变得尴尬。但是这里有对可可开发者有用的信息,关闭这个问题会让它陷入困境。怎么办?