tokuhirom's blog

commons-math3 の BetaDistribution を利用する場合は rng をキャッシュする

commons-math3 の BetaDistribution を利用する場合、alpha/beta が変わるたびに new BetaDistribution( alpha, beta) とかしてはいけない。 new BetaDistribution(rng, alpha, beta, 1.0) は `new BetaDistribution(new Well19937c(), alpha, beta) ということになるからだ。

new Well19937c() は乱数生成系だが、この初期化処理は重いので、キャッシュしないと非常に処理が重くなる。

Created: 2018-04-10 10:59:37 +0900
Updated: 2018-04-10 10:59:37 +0900