タグ

randに関するmas-higaのブックマーク (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の日記
  • 最近のCPUでは乱数生成がはやい話

    Ivy Bridge以降のCPUではCPU内に乱数生成器が含まれています。それに対応した最近のrngdをつかうとそれなりに乱数生成が速くてしあわせになれます。 linuxでは乱数を取得するために /dev/random と /dev/urandom の2種類のデバイスがあります。それぞれの説明は man 4 random にみっちり書いてありますが、かいつまんで言うと: random: カーネルがあつめてきたノイズを元に品質の高い疑似乱数を生成します。ノイズが不足するとblockします。 urandom: カーネルがあつめてきたノイズを元にそこそこの品質の疑似乱数を生成します。品質はそこそこですがblockしないので速いです。 ためしにcat /dev/random とかすると1kとか4kくらい乱数が出力されて止まってしまう。これでは割と足りないので選択肢が2種類。1) 品質をあきらめてu

  • Diary 2012-3

    1997年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 1998年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 1999年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 2000年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 2001年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 2002年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 2003年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 2004年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 2005年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月

    mas-higa
    mas-higa 2012/05/29
    本当は怖い疑似乱数の話
  • 1