2012-02-28 2 views
0

2つの入力を受け取り、常に同じ出力を返すdetermenistic擬似ランダムジェネレータを探しています。私は一様分布のようなものを探していて、できるだけ予測できず、長い間ずっと繰り返しません。理想的には、関数は以前の値に依存しません。その理由は、手続き的に生成された非常に大きな世界の地形データを生成しているため、以前の値を保存する余裕がないためです。私は良い擬似乱数ジェネレータを探していますが、1つではなく2つの入力を受け取ります。

何か助けていただければ幸いです。

答えて

0

使用するPRNGアルゴリズムまたは2つの入力を受け入れるアルゴリズムを決定する際に問題がありますか?

前者の場合、均一な配布と長いサイクルを目指しているため、組み込みのランダムクラス(.NETのRandomクラスなど)を使用しないでください。また、同じシードが与えられた場合、同じシーケンスの数字が生成されます。

後者の場合、2つの入力を1つの出力にマップして、ランダムアルゴリズムのシードとして使用することができます。ため、尽くすつのシードに

s[0] + s[1]^1 + s[2]^2 + ... s[n]^n = seed 
0

2つの入力の組み合わせ(お互いを連結することによって、提供される入力は、バイナリ整数):あなたは、文字列を受け取り、それの整数を算出する簡単なハッシュ関数を定義することができPRNG、メルセンヌ・ツイスターなど。

2

は、私が何を探していることはperlin noiseだと思う - それは、これはあまり持っていないという地形/雲/など

ノートのように見える(一般的に)2Dにおける「ランダム」の値を生成する方法です暗号化などとは関係がありますが、「実際の」乱数のソースはおそらく合成地形(それはあまりにも騒々しい/スパイキーに見えます)ではありません。

good article on perlin noise hereがあります。

パーリンノイズの実装では、乱数のソースを使用しますが、通常、システム上に存在するものを使用できます(後で再現する場合は、既知のシードから開始します)。

関連する問題