我想生成一系列随机数,用于为“迷宫”挑选瓷砖。每个迷宫都有一个id,我想将该id用作伪随机函数的种子。这样我可以一遍又一遍地生成相同的迷宫,因为它是迷宫ID。最好我不想在语言中使用内置的伪随机函数,因为我无法控制算法,它可能会从平台变为平台。因此,我想知道:
对的,这是可能的。
Here是用于产生噪声的这种算法(及其用途)的一个例子。
那些特定的随机函数(Noise1,Noise2,Noise3,..)使用输入参数并从那里计算伪随机值。它们的输出范围是0.0到1.0。
还有更多(如评论中所述)。
更新2019年
回顾这个答案,更合适的选择将是下面提到的mersenne twister
。或者你可以找到任何xorshift
的实现。
Mersenne Twister可能是一个很好的选择。正如您可以从维基百科上的伪代码中看到的那样,您可以使用您喜欢的任何内容为RNG播种,以便为具有该种子的任何实例生成相同的值。在您的情况下,迷宫ID或迷宫ID的哈希值。
如果您使用的是Python,则可以通过在开头键入随机模块,随机导入。然后,要使用它,你输入var = random.randint(1000,9999)
这为var提供了一个可用于其id的4位数字
如果您使用其他语言,则可能存在类似的模块