在每台计算机上生成相同的随机排列
generate same random permutation on every computer
我在序列上使用random_shuffle
1000 次a
。我想确保在每台计算机上的最终序列都是相同的。这可能看起来不可取,但我仍然想实现这一目标。srand(x)
确保吗?
在生成的洗牌中有两个差异来源:未指定rand()
算法,因此不同的实现产生不同的数字序列;并且未指定random_shuffle
算法,因此,即使具有相同的伪随机数序列,不同的实现也会产生不同的结果。
你可以通过使用 C++11 中的任何随机数生成器来消除第一个问题;它们都是详细指定的,包括对于某些专用化,需要第 10,000 个值,这对调试它们的实现有很大帮助。但是,没有用于洗牌的模拟。特别是,未指定std::shuffle
算法,因此不会给出可重现的结果。你必须自己写。这并不难(远没有编写引擎那么困难),只需做一些研究;有很多讨论供您开始。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 为什么 Serial.println(<char[]>);返回随机字符?
- 为什么不;名字在地图上是按顺序排列的吗
- 字符串-C++后显示的随机字符
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 循环中的随机函数
- 在c++构造函数中使用随机字符串生成器
- 按对象的特定方法按升序排列的C++优先级队列
- 取消随机排列整数/字符数组
- 如何在C++中随机排列指针列表
- 哈希函数和随机排列
- 伪随机分布,它保证了值序列-C++的所有可能的排列
- 如何随机排列数组问题
- 对 C++ 中的数组执行随机排列
- 随机排列链表
- 在每台计算机上生成相同的随机排列
- 有效地计算随机排列中的第n项
- 随机排列具有特征矩阵的行/列
- 使用128位种子的伪随机排列