【发布时间】:2010-11-14 12:30:45
【问题描述】:
可能的重复:
How to generate a random number in C?
implementation of rand()
Generating random terrain in Blender3D
我需要 C 语言中的高质量随机数,但我不知道该怎么做。我需要能够获得 1-100 的数字。任何帮助,或者指出我可以找到帮助的地方。
【问题讨论】:
-
这个时候总有人说“定义高品质”,那还不如说是我呢。
-
你在哪个平台上工作。有基本的 rand(),但每个操作系统都有更好的生成随机数的方法。如果您指定平台,每个人都会更容易。
-
它至少应该随机出现,最多运行 1 亿次。
-
去无线电小屋。购买一个二极管、一个 NTR 电阻、一个电容器和串行电缆。切断不适合您的计算机的串行电缆的一端。将二极管和电阻串联焊接在电缆的引脚 DTR 和 DSR 之间。在 DSR 和 TXD 引脚之间焊接电容。编写一个小的 C 程序来执行以下操作: 将 DTR 设置为 1。启动计时器。监控 DSR,直到它变为 1。停止计时器。从经过的时间计算阻力。从该值中检索多个位以用作随机数的一部分。重复直到积累了足够多的位。现在,你可以下注和(模数)100...
-
不是重复的 IMO。这些其他问题都没有提到这里要求输出与随机无法区分。现在,当然,您可以确切地争论这意味着什么,但是无论您做出什么决定,该决定都会影响问题的答案。这些其他问题都不需要安全的 RNG,也没有一个像样的答案如何将值缩放到 1-100 范围内。