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