【发布时间】:2014-05-15 23:14:11
【问题描述】:
我的目标是生成 2D 或 3D 几何图形而不必将其存储在磁盘上,因此我的目标是拥有任何类型的功能,而不是根据小种子生成相同的值。我并不是要寻找随机值,但如果在给定相同种子时返回相同的“随机”垃圾数据,那就是我正在寻找的东西。
如果我给 srand() 相同的整数,我会从 rand() 中得到相同的序列。这是预期的功能吗?如果没有,是否有已知的标准函数可以做同样的事情?
虽然我在 ideone 和我的电脑上尝试过,得到了不同的结果,但我可以理解,这些函数的实现没有描述,所以解释一下。
【问题讨论】:
-
srand()中的“s”字面意思是“种子”,所以你去吧,先生。 -
永远不要依赖
rand来生成好的随机数据。它必须是确定的,仅取决于种子和前面调用的数量。 -
计算机在可预测方面非常好,而在真正随机方面则不太好;您的观察是正确的,
rand()使用相同的种子值生成的数字序列是可重复的。但我不相信这种行为是有保证的。如果您需要可重复(即固定)的数字序列,我认为更好的选择是生成这些集合并存储它们。特别是如果您需要在各种系统上重复此操作。
标签: c++ math random probability