2011MIKU勉強会第2回
ベッドルームで群論を
第2章
資源としての「無作為(ランダムさ)」
p.29〜48
1.ランダムとは
簡単にいうと予測不可能であること。
2.ランダムの使い道
①暗号など、予測されない必要があるとき
②シュミレーションなど
無数のものを考えるとき、作業を減らすため少数のランダムものをサンプルとして抽出する。
3.ランダムを数学で用いる→乱数
コンピュータで乱数を発生させる、のはあくまで「擬似」乱数発生器である
最もよく使われているのが、
Mersenne twisterというアルゴリズム。
4.そもそもランダムは存在する?
ランダムというのは、「法則、規則がない」こと。
例えば、原子核崩壊やノイズ信号など。
これらは果たして本当に「規則がない」のか人間に「規則が分からない」だけなのかは疑問。
●擬似乱数発生器について●
上記のように、Mersenne twisterというアルゴリズムが用いられることが多い。
R言語ではrunif()を用いることが多い。
http://www.okada.jp.org/RWiki/index.php?%CD%F0%BF%F4Tips%C2%E7%C1%B4
擬似乱数では、「種seed」決定すれば、乱数全てが決まる。
つまり、全く同じ乱数を発生させたい場合は、「種seed」を同一に設定すればよい。
g<-function(n,m){set.seed(i);runif(m)}
#擬似乱数列用のseed n を指定して、その上で、m 個の一様乱数を発生させる
#例 runif(5) # 一様乱数を 5 個生成すると runif(5) # 当然毎回違った乱数が得られる set.seed(101); runif(5) # 乱数の種(seed)を指定 set.seed(101); runif(5) # 乱数の種を同じにすれば乱数を再現することが出来る
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/60.html
参考★先生のサイト
runif, seed の検索結果 - ryamadaの遺伝学・遺伝統計学メモ
番外編★
#doubleは小数という意味