3

我想生成一个随机数序列,用于为“迷宫”挑选瓷砖。每个迷宫都有一个 id,我想用那个 id 作为伪随机函数的种子。这样我就可以一遍又一遍地生成相同的迷宫,因为它是迷宫 id。最好我不想在语言中使用内置的伪随机函数,因为我无法控制算法并且它可能会因平台而异。因此,我想知道:

  • 我应该如何实现自己的伪随机函数?
  • 生成独立于平台的伪随机数是否可行?
4

3 回答 3

8

对的,这是可能的。

是用于噪声生成的此类算法(及其用途)的示例。

那些特定的随机函数(Noise1、Noise2、Noise3、..)使用输入参数并从那里计算伪随机值。它们的输出范围是从 0.0 到 1.0。

还有更多(就像评论中提到的那样)。

2019 年更新

回顾这个答案,更适合的选择是下面提到的mersenne twister. 或者您可以找到xorshift.

于 2013-02-15T19:27:53.147 回答
2

Mersenne Twister可能是一个不错的选择。正如您从 wikipedia 上的伪代码中看到的那样,您可以使用您喜欢的任何内容为 RNG 播种,从而为具有该种子的任何实例生成相同的值。在您的情况下,迷宫 ID 或迷宫 ID 的哈希值。

于 2013-02-15T20:03:38.623 回答
-1

如果您使用的是 Python,则可以通过在开头键入 import random 来使用 random 模块。然后,要使用它,你输入- var = random.randint(1000, 9999)

这为 var 提供了一个 4 位数字,可用于其 id

如果您使用的是另一种语言,则可能有类似的模块

于 2013-02-15T19:27:58.303 回答