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

メルセンヌツイスターはこれに適しているかもしれません。ウィキペディアの擬似コードからわかるように、RNGにシードを設定して、そのシードを使用するインスタンスに対して同じ値を生成することができます。あなたの場合、迷路IDまたは迷路IDのハッシュ。

于 2013-02-15T20:03:38.623 に答える
-1

Pythonを使用している場合は、最初に入力してランダムをインポートすることで、ランダムモジュールを使用できます。次に、それを使用するには、次のように入力します-var = random.randint(1000、9999)

これにより、varにそのIDに使用できる4桁の数字が与えられます

別の言語を使用している場合は、同様のモジュールが存在する可能性があります

于 2013-02-15T19:27:58.303 に答える