【发布时间】:2010-12-11 01:08:44
【问题描述】:
我正在尝试在我的 TSP 生成器上为欧几里得距离进行一些 opt-3 交换,并且由于在许多情况下我有超过 500 个节点,我需要随机选择我想要的 3 个节点中的至少 1 个尝试交换。
所以基本上我需要一个快速的随机数函数。 (普通的 rand() 太慢了)它不必太棒了,只要很好 足够。
编辑: 我忘了提一下,我正坐在一个环境中,除了标准语言库(例如 STL、iostream 等)之外,我无法添加任何库。所以没有提升=/
【问题讨论】:
-
听起来像我的问题:stackoverflow.com/questions/1046714/…(我使用了五行 XORshift 生成器。)
-
@GManNickG:rand() 实现是特定于平台的。在不知道具体实现的情况下如何判断它的速度?
-
@GManNickG:“MT 通常比 rand() 更快,或者几乎一样快,具有更好的特性……”?你怎么知道它一开始就没有实现机器翻译?
-
Xorshit+ 生成 64 位随机数并通过 BigCrush:en.wikipedia.org/wiki/Xorshift#Xorshift.2B
-
这里是快速浮点随机数生成器的三种实现,您可能会觉得有用:musicdsp.org/showone.php?id=273
标签: c++ random performance