Successfully reported this slideshow.
Your SlideShare is downloading. ×

擬似乱数について

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 10 Ad

More Related Content

Viewers also liked (15)

Recently uploaded (20)

Advertisement

擬似乱数について

  1. 1. 擬似乱数について Randomについての前提知識
  2. 2. 皆さん 乱数はお好きですか?
  3. 3. 僕は大好きです
  4. 4. 良い乱数 • 乱数とは、その名の通り乱れた数です。 • 現実世界ではサイコロを振ったりして得ます。 • でたらめな数が次々得られると色々嬉しいです(ゲーム とか)。 • 良い乱数とは、偏りがなく、次の目の予想が困難で、 素早く次々と値が取り出せるものです。
  5. 5. 真の乱数 • コンピュータで真の乱数を発生させることは困難です • 数の偏りが発生し、予想可能で、遅いです。 • while(true) if (x == 6) x = 1 else x +=1 • こんなコードを書くと、6ばっかり出ます。(^^; • 偏りなく、予想が困難で、素早く生成できる乱数はコ ンピュータの中には存在しません。
  6. 6. 擬似乱数 • コンピュータでは擬似乱数を使用します • 擬似乱数とは、周期のとても大きな関数です • f(f(f(f(種))… • f()に種を与えると計算結果を返します。 • その値をまたf()に与えると別の計算結果を返します。 • 以下繰り返し。 • いつか最初の値と同じ値が返ります。 • これが周期です。
  7. 7. イメージ スタート位置を決め る 後は周期を回る 擬似乱数の周期 いつかスタート位置 に戻る
  8. 8. 種 • 擬似乱数のシードとは「スタート位置を決める」た めの値です。 • スタート位置が同じなら、それ以降の計算の値はす べて同じになります。 • スタート位置を決めるためには、プログラムの外か ら副作用を取り込む必要が有り〼 • Haskellの場合、IOが必要になります。
  9. 9. イメージ 同じプログラムでもスタート位置は毎 回違う つまり、純粋でない
  10. 10. セキュリティ • 蛇足ですが、乱数の初期化はシステムにとって弱点 です。 • 種がバレると乱数がバレます。 • 乱数を利用してパスワードを生成するとパスワード がバレます。

×