「Xorshift」による擬似乱数生成

トップ > 試作品 > 「Xorshift」による擬似乱数生成

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

この記事は役に立ちましたか?