【发布时间】:2014-01-05 08:59:49
【问题描述】:
我对 c 和 c++ 比较陌生。在我常用的编程语言 java 中,很容易实现随机数生成。只需从名为 Math 的类中调用静态随机方法即可。
int face = ((int)(Math.random() * 6) + 1);
模拟掷骰子...
在 c 和 c++ 中,您必须通过调用 srand 函数来“为随机数生成器提供种子”
srand ( time(NULL) );
这样做有什么意义 - 我的意思是每次运行代码时都必须为随机数生成器播种有什么好处吗?
【问题讨论】:
-
注意:您不应该在每次运行特定代码时都为其播种;你应该在每次进程开始时播种它。
-
@RogerLipscombe 这真的取决于你想要达到的目标。
-
wikipedia 的文章很不错。在 Java 中,它仍然在第一次调用时播种 PRNG,但它是 under the hood.