タグ

乱数に関するciveのブックマーク (3)

  • PHP の壊れた mt_rand の品質を統計的に検証した - iwiwiの日記

    メルセンヌ・ツイスターと似て非なるアルゴリズムが実装されていたことが発覚して話題の PHP の mt_rand 関数の品質を統計的に検証しました.果たして,PHP の「壊れた」mt_rand は安心して使うことができるのでしょうか……? ちなみに,結論から言うと,PHP の壊れた mt_rand は,(少なくともこのテストの範囲では)家メルセンヌ・ツイスターと遜色ない品質を持っているようです.ただし,最後に PHP の乱数の別の懸念点についても紹介します. 壊れた mt_rand とは PHP の mt_rand は,ドキュメントによると,有名な乱数生成アルゴリズム「メルセンヌ・ツイスター」を利用して高品質の乱数を生成する関数です.ところが,どうやら一部では知られていたこととして,PHP の mt_rand の実装にはバグがあり,家メルセンヌ・ツイスターと挙動が一致していませんでした.

    PHP の壊れた mt_rand の品質を統計的に検証した - iwiwiの日記
  • 機械学習.vs.乱数 - 小人さんの妄想

    新年おめでとうございます。久しぶりにブログを更新します。どっこい生きてます。 昨年は、たった1回しか更新しませんでした。 今年はブログを書けるくらいのゆとりを持ちたいものです。 さて、昨年までを振り返ると、一部で「サザエさんじゃんけん予想」が話題になったことがありました。 なんでも8割以上の的中率を叩き出した方もおられるとか。 そこまでするには相当の入れ込みが必要でしょうが、ちょっとパソコンで試すだけなら、わりと手軽にできます。 予想の方法はいろいろありますが、私は以下のブログを参考に、scikit-learnという機械学習を試してみました。 * サザエさんのジャンケンの次の手を決定木で予測+可視化してみた >> http://sucrose.hatenablog.com/entry/2014/11/23/230622 やったことは、上のブログにある通りです。 ・パソコン上に Python

    機械学習.vs.乱数 - 小人さんの妄想
  • C++11 乱数 std::random 入門

    rand() の問題点 これまで広く使用されてきた rand() による乱数生成には以下の問題点がある。 生成される範囲が [0, 32767] と狭い rand() % N は一様では無い 周期があまり長くない 乱数生成アルゴリズムが固定(通常は線形合同法) 正規分布など、一様でない乱数生成が面倒 rand() で生成される値の範囲は [0, 32767] と狭い。15ビットしかない。 (rand() << 15) + rand() とすれば、30ビット乱数にすることは可能だが、スマートではないし、 生成アルゴリズムの関係で、乱数に偏りが出る場合がある。 通常、乱数として欲しいのは [0, N) 範囲の値であることが多い。この場合は rand() % N とすることが一般的だ。 しかし、このようにして生成した乱数は一様でなく偏りがある。特に N が大きい時にその現象が顕著になる。 例えば

  • 1