初めに 背景 元々、C++でのメルセンヌツイスタ実装としてはboostのものがありましたが、乱数機能が貧弱であった標準ライブラリでは、C++11 規格で、このboostの実装を参考にしメルセンヌツイスタが導入されたようです。 ※参考:本の虫:C++0xの新しい乱数ライブラリ、random という話から、両者の実装は同じだろうと考えていたのですが、どうも違うようだ…ということで、調べてみました。 結論 ということなのですが、先に結論です。 性能に関しては、あくまで手元の環境で、の話です。 boost::random::mt19937とg++標準のstd::mt19937の実装は少し違う boostの方が性能チューニングされていて速い boostは過去に実装の変更がされていて、この過去の実装と標準は共にメルセンヌツイスタのリファレンス実装に近い。 とは言えboostの過去の実装よりも、標準の実
![メルセンヌツイスタの性能差 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/1ad458b22475e5d0bffe6855f4b51052851992aa/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgzJUExJUUzJTgzJUFCJUUzJTgyJUJCJUUzJTgzJUIzJUUzJTgzJThDJUUzJTgzJTg0JUUzJTgyJUE0JUUzJTgyJUI5JUUzJTgyJUJGJUUzJTgxJUFFJUU2JTgwJUE3JUU4JTgzJUJEJUU1JUI3JUFFJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1hNmMwODZmZmNkYjRiZjg1MTMzNzIzN2QwOGFhZjEwOQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwYW5nZWxfcF81NyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MzM3M2FlM2JlZGE2MzM1YmIzZDBkMTg1ZmViZWIxYmE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D77cd6f579d6a84f404d38822f1fbe4fb)