0

假设我有两个数组 KEYS 和 VALS 并且我想随机地统一随机打乱它们(在打乱之后应该保留键值对匹配)。

如果我用静态值播种随机函数,然后在 KEYS 上调用 std::random_shuffle ,那么 VALS 是否会以相同的方式对两个数组进行混洗?

4

1 回答 1

1

是的,他们会,但前提是你先洗牌,然后用相同的值播种随机数生成器,然后再洗牌。而且您应该对两者使用相同的随机播放功能;使用不同的洗牌器很危险,这些洗牌器可能会或可能不会调用 rand() 不同的次数。
但是,我建议您以某种方式关联数据;您可以实现一个地图或只是将数据放在一个结构中。保持数组分开并相信你的随机函数会以完全相同的方式对它们进行洗牌,这就是自找麻烦。

于 2013-11-01T20:58:59.640 回答