タグ

algorithmとprogrammingに関するtakadoのブックマーク (44)

  • ハードウェア乱数生成ルーチンhdrand.c

    ハードウェア乱数生成ルーチンhdrand.c  by とつげき東北  トップページに戻る 「ランダムな乱数」「良質な乱数」を得る 導入: プログラミングをしていて、「真にランダムな乱数」を得ようとしたときに困ることがある。 どんなに優れた決定論的擬似乱数ルーチンも、真にランダムな乱数を作ってはくれない。 結果としてtime値などを乱数の種にすることになるわけだ。 ゲームなどならその程度でも充分だが、セキュリティの重要なソフトではそうはいかず、ユーザのマウス入力のタイミングなどを読み取る必要が出てくる。 そこでCPUがPentium以降・Windows下でハードディスクが使用されている環境で、ユーザに不可解な入力作業をさせることなく、良い性質の乱数を得るためのルーチンを作っておく。 方法: テンポラリファイルフォルダにファイルを作成・削除し、その処理にかかった時間を高分解能

    takado
    takado 2007/01/15
    ハードディスクの書き込み速度を利用して乱数を作る
  • 良い乱数・悪い乱数

    C言語標準ライブラリの乱数rand( )は質に問題があり、禁止している学会もある。 他にも乱数には様々なアルゴリズムがあるが、多くのものが問題を持っている。 最も多くの人に使われている乱数であろう Visual Basic の Rnd の質は最低である。 そもそも乱数とは 乱数とは、来サイコロを振って出る目から得られるような数を意味する。 このような乱数は予測不能なものである。 しかし、計算機を使って乱数を発生させた場合、 次に出る数は完全に決まっているので、予測不能とはいえない。 そこで、計算機で作り出される乱数を疑似乱数(PRNG)と呼び区別することがある。 ここでは、特にことわらない限り乱数とは疑似乱数のことを指すとする。 計算機でソフト的に乱数を発生させることの最大のメリットは、 再現性があることである。 初期状態が同じであれば、発生する乱数も全く同じものが得られる。 このことは

  • OBB vs AABB - Radium Software Development

    This domain may be for sale!

    takado
    takado 2006/02/20
    「ドッグフーディング」について。回転のこぎりの安全装置のテストのために自分の指をつっこんだ人の話。エンジニア魂?
  • Mersenne Twister: A random number generator (since 1997/10)

    English Version News: MTToolBox をGitHubで公開しました。(2013/10/04) TinyMTをリリースしました。 (2011/06/20) MTGPをリリースしました。(2009/11/17) SIMD-oriented Fast Mersenne Twister (SFMT) をリリースしました。 SFMTはオリジナルのMersenne Twisterより約二倍速く、 よりよい均等分布特性を持ち、零超過初期状態からの回復も高速です。 SFMTのページを見てください。 (2007/1/31) お願い:使う時にemailを一通下されば、 今後の改良のはげみになります。 どんなささいな問題点でも、見つけ次第御連絡下さい。 m-mat @ math.sci.hiroshima-u.ac.jp (このメールアドレスは スペースを抜いて手で打ち直してください)

    takado
    takado 2006/02/16
    シンプルなアルゴリズムで良質な乱数を発生するメルセンヌツイスター.気の効いた研究だと思う