早くて、高品質な乱数と言われるXorShiftの128bit版をいくつかの言語で実装してみた。 これを実装するにあたってのポイントは以下の通り。 論理シフトを用いること。 unsigned int32(符号なしint)を用いること。(符号を持たないこと) それができない言語であっても、値は32bit以上の保持は行わないこと。(それ以上は切り捨てる) 恐らく上記を全て満たせればどの言語で実装を作っても同じ乱数が生成できるはず、 ということで複数言語での再現性のある乱数の生成に試みた。 Github オンラインコンパイラ C++ Dlang C# VisualBasic JavaScript Python HSP CommonLisp Tcl Clojure XorShift実装 出力例 >> defaults ["z":521288629, "x":123456789, "y":362436