Xorshiftという乱数生成のアルゴリズムをJavascriptで実装したものです。不思議ですね、、なんて言ったら数学の先生に怒られそうですが、たったこれだけの計算(ビット演算)で一見ランダムに見える数列が生成されるのですから、やっぱり不思議です。世の中の多くの不思議なんて、見える人にはタネが見えているものなのでしょうけれど…。
下記例ではx,y,z,w共に固定した値を設定していますので、数列はランダムに見えますが、毎回同じパターンが表示されます。「生成」ボタンをクリックすると10回ずつxorshift関数の値を返して表示します。x,y,z,wは0でない整数なら何でも良いそうなので、現在時刻などから算出した種を与えるなどして毎回違うパターンが出現するよう工夫することもできます。
var x = 123456789;
var y = 362436069;
var z = 521288629;
var w = 88675123;
function xorshift(){
var t;
t = (x ^ (x << 11));
x = y;
y = z;
z = w;
return (w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)));
}
参考
日経ソフトウェア2013年03月号
http://www.jstatsoft.org/v08/i14/paper
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について