如果我从C ++标准库中用给定的数字(例如seed = 1
)播种随机数生成器,并生成一个随机数序列,那么此序列在标准的将来版本中是否保证是相同的?
C ++标准对此提供保证吗?
出于学问的目的,不能保证该标准的将来版本,包括可能存在该标准的将来版本的想法。
现在,继续您的真实问题。 C ++标准库中的“ The”随机数生成器?有很多。 rand
不是其中之一:-)
有“随机数引擎”,生成“位的随机序列”。它们包括:
linear_congruential_engine
mersenne_twister_engine
subtract_with_carry_engine
rand.predef部分提供了特定随机数引擎的所需结果。这告诉您它们应该是便携式的。 [感谢@HowardHinnant提供的参考。 ]
另一方面,发行版(uniform_int_distribution
等)可能因实现而异。
C ++随机数序列是否会在标准的未来版本]中保留相同序列的问题>,就像是否会在将来的版本中保留C ++标准当前定义的任何给定行为的问题向后兼容。这是只有C ++标准委员会才能回答的问题。 (这是我的评论,移至答案。)