TL;DR: Java の java.util.Random#nextGaussian() や java.util.concurrent.ThreadLocalRandom のそれよりも 3 倍 以上速い正規乱数生成器 (正規分布に従う乱数生成器) を実装してみたよ、というお話です。 (Header photo by NJR ZA ) はじめに ここ最近、お仕事的な何かで強化学習っぽい機能を実装したり、現実世界のとある問題を単純なモデルに置き換えてシミュレーションをぶん回してみる機会がちょこちょことあるのですが、そのような機能やシミュレータを実装しようとするときに「それなりの品質の乱数を とにかく速く 吐き出してくれる乱数生成器があると便利なんだけどなあ…」ということを時々思っています。 今の仕事で利用することの多い Java (or JVM 上の言語) では、Java 7 以降の標準クラ
![Java で最速の乱数生成器を目指す: (1) 正規乱数生成器](https://cdn-ak-scissors.b.st-hatena.com/image/square/0b45563d4bf65ef6cbc970927e8e8e9f24e0cc73/height=288;version=1;width=512/https%3A%2F%2Fk11i.biz%2Fimages%2F2016%2F12%2F05%2Fheader.jpg)