【发布时间】:2010-12-27 02:23:43
【问题描述】:
我正在用 C++ 制作游戏,它涉及用随机布尔值(是或否)填充图块,是或否由 rand() % 1 决定。感觉不是很随意。
我在启动时使用srand 和ctime,但似乎出现了相同的模式。
是否有任何算法可以创建非常随机的数字?或者关于如何改进rand() 的任何建议?
【问题讨论】:
-
只是出于好奇,您的阵列有多“大”?如果它很小,您可能看不到太多随机性。
-
你能显示代码吗?您播种的方式可能有些问题,这就是为什么它似乎具有一致的模式。
-
"rand() % 2" 会产生更好的结果。
-
rand() % 1 通常为零,因为 1 的值足够小。
-
人类在检测随机性方面是出了名的差。如果它很重要,那么不要猜测:一旦你修复了 %1 / %2 错误,捕获大量结果(1000 秒,而不是 10 秒),将它们粘贴到 Excel 中,然后计算平均值。