所有伪随机数生成器都会产生最终循环的值序列。一种抽象的观点是,种子相当于循环的入口点。 任何两个不同的种子代表不同的入口点,只要循环长度足够长以至于子序列不重叠,就应该没问题。您最好为 10 个处理器选择 10 个顺序种子值,就像做任何非常花哨的事情一样。例如,以下是用 0、1 和 2 播种 Ruby 的 Mersenne twister 的 10 个值。如您所见,即使种子是按顺序采摘的,它们似乎彼此无关。
seed = 0: 0.5488135039273248 0.7151893663724195 0.6027633760716439 0.5448831829968969 0.4236547993389047 0.6458941130666561 0.4375872112626925 0.8917730007820798 0.9636627605010293 0.3834415188257777
seed = 1: 0.417022004702574 0.7203244934421581 0.00011437481734488664 0.30233257263183977 0.14675589081711304 0.0923385947687978 0.1862602113776709 0.34556072704304774 0.39676747423066994 0.538816734003357
seed = 2: 0.43599490214200376 0.025926231827891333 0.5496624778787091 0.4353223926182769 0.42036780208748903 0.3303348210038741 0.2046486340378425 0.6192709663506637 0.29965467367452314 0.26682727510286663