はい、Javaネタ。
無限の猿定理を実装させたプログラム「モンキータイプライター(仮)」なんだけれども、入力する文字を決定するのに乱数を使ってるんさ。java.util.Random().nextInt()で、int整数型を使ってるんだけれども、調べれば調べるほど出てくる欠点の問題。どうやらこいつには偏りがあるらしいな。仕組みを理解してないからアレだけれども(数学、勉強しなおそうかな……)。
もちろんMath.random()も理解してるんだけれども、範囲指定のやり方が分からなかったから、範囲指定ができるutil.Random()を使ったわけさ。多分Math.random()のほうが性能がいいのだろうけれど。
そんななかでいろんな乱数生成器(厳密には
疑似乱数生成器)を見て見たんだけれども、どれもちんぷんかんぷん。とりあえずC言語からJavaへの移植(?)というか、実装ができそうな奴はちょっとばかり理解したつもりではいるのだけれども。
一応XorShift RNGという疑似乱数生成器は実装できる状況。
あ、あと、調べているうちに、Math.random()で範囲指定をする方法を見つけたので、こっちを使うつもり。
あと、気になったからいろいろJavaの乱数について実験をしてみようかな、なんて。
まあ、Javaってこの類の演算(倍精浮動小数点の演算とか)が弱いから、しょうがないのかもしれないけれどね。
[0回]
PR