用给定种子生成的随机数序列是否保证在标准的各个版本中都是相同的?

问题描述 投票:0回答:2

如果我从C ++标准库中用给定的数字(例如seed = 1)播种随机数生成器,并生成一个随机数序列,那么此序列在标准的将来版本中是否保证是相同的?

C ++标准对此提供保证吗?

c++ random standards c++-standard-library random-seed
2个回答
2
投票

出于学问的目的,不能保证该标准的将来版本,包括可能存在该标准的将来版本的想法。

现在,继续您的真实问题。 C ++标准库中的“ The”随机数生成器?有很多。 rand不是其中之一:-)

有“随机数引擎”,生成“位的随机序列”。它们包括:

  • linear_congruential_engine
  • mersenne_twister_engine
  • subtract_with_carry_engine

rand.predef部分提供了特定随机数引擎的所需结果。这告诉您它们应该是便携式的。 [感谢@HowardHinnant提供的参考。 ]

另一方面,发行版(uniform_int_distribution等)可能因实现而异。


0
投票

C ++随机数序列是否会在标准的未来版本]中保留相同序列的问题>,就像是否会在将来的版本中保留C ++标准当前定义的任何给定行为的问题向后兼容。这是只有C ++标准委员会才能回答的问题。 (这是我的评论,移至答案。)

© www.soinside.com 2019 - 2024. All rights reserved.