1 名前:名無しさん@そうだ選挙に行こう [2005/09/10(土) 20:16:19 ] 乱数について語るスレ。 (数字レスはご遠慮下さい。)
2 名前:名無しさん@そうだ選挙に行こう [2005/09/10(土) 20:17:54 ] 16進数用の乱数サイってあったら便利じゃね?
3 名前:名無しさん@そうだ選挙に行こう [2005/09/10(土) 20:21:36 ] Mモ!Do/,O銛UWルク6セ・茶5キ驟D・V嶷ゥe}向イD$Oキユ洙鋗Mナbテ
4 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 21:04:43 ] 0x85db
5 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 21:18:17 ] <script>document.write(Math.random())</script>
6 名前:名無しさん@そうだ選挙に行こう [2005/09/11(日) 18:36:51 ] >>2 あるよ。八角錐をくっつけた形してる。
7 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 22:31:05 ] コンピュータの乱数はほとんど 擬 似 乱数なんだよな。
8 名前:132人目の素数さん mailto:sage [2005/09/12(月) 00:06:43 ] 疑似乱数の方がデバッグするとき楽だったりする…。 あまりに偏りがある疑似乱数は…ちょっとだけどね。昔、8ビットパソコン付属のBASICで画面に キャラクターを乱数で表示するだけで、「パターンが見えた」もんだ。
9 名前:132人目の素数さん [2005/09/12(月) 01:02:24 ] 線形合同法の規則性は有名
10 名前:132人目の素数さん mailto:sage [2005/09/12(月) 01:23:35 ] -再現性が無く高速に作れないと困るモンテカルロ用乱数 -高速に作れなくてもいいからランダムでないと困る暗号用乱数 どっちも扱っていいのか? このスレ。
11 名前:10 mailto:sage [2005/09/12(月) 01:24:11 ] 間違えた。 再現性が無いと困るな、上の方。
12 名前:132人目の素数さん [2005/09/12(月) 04:33:32 ] 規則性のある擬似乱数を一定の長さ用意して、そこからある程度情報を差っ引いて新しい数列を作ったら 暗号に使えるくらいランダムに近くなるんじゃないかなあ。
13 名前:132人目の素数さん [2005/09/12(月) 04:35:25 ] (だめだ寝ぼけてるな。擬似乱数は規則性があるから擬似乱数なんだな。トートロジーだな)
14 名前:132人目の素数さん mailto:sage [2005/09/12(月) 06:44:47 ] 「乱数」の定義って何なんでしょうか。 「擬似乱数」がどこまで本物の「乱数」に近いかを判定する方法ってあるんでしょうか?
15 名前:132人目の素数さん [2005/09/12(月) 13:20:23 ] ・数の出現頻度を調べ、均等に表れているかを見る。 ・一度出現した数がもう一度出現するまでの間隔を調べ、ポアソン分布に従っているかを見る。 ・連続する複数個の数をベクトル化し、長期的にN次元空間に均等に分布するかを見る。 ・2とか3とか適当な素数との余剰を求め、その余剰も乱数として成立しているかを見る。 ・対数を取って、ピンクノイズと同じ分布であるかを見る。 あとは、うーんと、思いつかない。
16 名前:132人目の素数さん mailto:sage [2005/09/12(月) 13:24:29 ] >>14 en.wikipedia.org/wiki/Chaitin-Kolmogorov_randomness 多分これが最も手に負えないランダム性の表現
17 名前:132人目の素数さん [2005/09/12(月) 13:27:41 ] 円周率は超越数であり、任意の途中桁から求めるアルゴリズムも発見されているのだから 比較的短いビット列で擬似乱数を得ることができるのだが、 そこらへんどうなのよ。
18 名前:10 mailto:sage [2005/09/12(月) 20:29:21 ] >17 それは未解決問題じゃなかったか。 >14 シミュレーションで使うような疑似乱数なら、 クヌース先生のThe Art of Computer Programmingの4. 疑似乱数んとこに検定法が乗ってる。
19 名前:132人目の素数さん [2005/09/13(火) 03:02:52 ] 乱数についての本ってないの?
20 名前:132人目の素数さん mailto:sage [2005/09/13(火) 04:20:55 ] 乱数表
21 名前:132人目の素数さん mailto:sage [2005/09/13(火) 04:30:05 ] 伏見先生の本
22 名前:14 mailto:sage [2005/09/13(火) 04:34:24 ] >>16 最も手に負えない? とりあえず訳してみました(かなり意訳)。 --- Chaitin-Kolmogorov randomness (別名 algorithmic randomness): 文字列 s がランダムであるとは、s を作り出すことのできるすべてのプログラムより s の長さが短いことである。 長さが最も短い文字列が、この意味でランダムに近いのは明白である。 Chaitin-Kolmogorov randomness は、少なくとも原理的に、擬似乱数ジェネレータから生成された数と真の乱数とを区別する。 Chaitin の不完全性定理で示されたことは、最も短い文字列が上記の意味でランダムなことを我々が知っていても、特定の文字列がランダムであるという事実を証明することは、もしその文字列がある閾値よりも上ならばできないということである。 --- ようするに「ランダムである」ってことは「より簡略な表現が存在しない」ってこと? たとえば "11111111111111111111111111111111111111111111111111" という文字列は "1を50回繰り返せ" というようにより短く表現できるからランダムではない (ランダムでない文字列は何らかの規則性を持っているので短く書ける)。 もし文字列がランダムだったらその文字列を全部書いたほうがはやい。 でも「Chaitinの不完全性定理」ってのがあって、ある文字列がランダムであるかどうか(最も短いかどうか)は判定できないと。 うむむ。 よくわからないのは 1.これのほかにもランダム性の定義がある?それともこれが一般的なの? 2.これだと擬似乱数が無限に生成される場合、プログラムは有限長だから比較できなくて「ランダム度」みたいなのは測れないような。
23 名前:132人目の素数さん mailto:sage [2005/09/13(火) 05:05:10 ] 暗号の世界ではもうちょい現実的に、 多項式時間で乱数と識別不可能な数列を出力できれば それが擬似乱数であるとしている。
24 名前:14 mailto:sage [2005/09/13(火) 05:21:21 ] >>15 さん いろいろ挙げてくださってありがとうございます。 でも質問文が悪かったみたいでごめんなさい。 「擬似乱数生成アルゴリズムが与えられたとき、真の乱数にどれだけ近いものを出せるか評価する方法はないのかな?」 と思ってたんです。 ところでこれらの評価法では、乱数の定義はどうなってますか? > ・数の出現頻度を調べ、均等に表れているかを見る。 これは乱数には一様性(全部の数字が均等に出現する)が必要ってことですよね? でも上のChaitin-Kolmogorov randomnessにはそれらしきものが無いような気がするんですけど・・・
25 名前:132人目の素数さん mailto:sage [2005/09/13(火) 09:09:06 ] コロモゴロフが定義したのは「複雑性」であって、 乱数に必要なのは「予測不能性」であり、直接には関係無い。
26 名前:132人目の素数さん mailto:sage [2005/09/13(火) 23:02:06 ] 最初のBASICが使えるポケコン…PC-1211には、乱数関数がなく、大量にゲームを作成した けど、そのゲーム作成にあたって最も大切なことは…いかにすくないメモリー(ステップ)で 疑似乱数を作るか…という点だった。 例えば… R=R*√2+π:R=R−int(R) なんてやるとRに乱数らしきモノが現れた。これをゲームに使う! √とかπとか1ステップだったから、多用したもんだ。
27 名前:132人目の素数さん [2005/09/14(水) 18:40:48 ] 逆平方合同法とでも呼ぼうか
28 名前:132人目の素数さん [2005/09/18(日) 12:40:40 ] 完全な乱数ってなんだろうか? 六面ダイスは完全な乱数と言えるか? 否だと思うわけだ 人Aがダイスを振る時、1を親指で押さえていた時の出目にはばらつきがあろう 結果として1〜6の回数は同じかもしれんが 1の次の数の割合、2の次の数の割合・・目が連続する確立等にはクセがあるはずだ 真の乱数をどうやってつくるべきか
29 名前:132人目の素数さん [2005/09/18(日) 15:01:05 ] 毎秒1000回くらい回るルーレット
30 名前:132人目の素数さん mailto:sage [2005/09/18(日) 15:38:32 ] >>28 そりゃ、量子論を利用するのが一番だろ。どーやって利用するのか?ってのはつらいなw ところで、Z80のリフレッシュカウンターって乱数作成に利用できなかったの?
31 名前:132人目の素数さん [2005/09/18(日) 18:58:19 ] 放射性物質と放射線検知装置を用意、 経年によって単位時間当たりの放射線量は減衰曲線を描くなので 適当に逆演算そのた補正をかまして一様乱数を得る。
32 名前:132人目の素数さん mailto:sage [2005/09/18(日) 21:01:20 ] 128ビットの一様乱数を得たいなら、128匹のシュレーディンガーの猫を用意して、 箱を開けて猫の生死を確認し、生きていれば1、死んでいれば0とすれば…
33 名前:132人目の素数さん mailto:sage [2005/09/18(日) 21:32:23 ] え〜〜。訴えられますよ。
34 名前:132人目の素数さん [2005/09/19(月) 00:39:45 ] 一様乱数から正規分布の乱数に変換するってどーすんの?
35 名前:132人目の素数さん [2005/09/19(月) 00:58:55 ] てか計算機で乱数はどうやってつくってるの?
36 名前:132人目の素数さん [2005/09/19(月) 01:03:38 ] >>34 今適当に思いついた方法なので良いものかどうか分からんが, 例えば n ビットの一様乱数が得られるとして,その中の1の数を数える. 二項分布B(n,p)に従う確率変数Xは,nが大きいとき,近似的に 正規分布 N(np,np(1-p)) にしたがうという事実を利用すれば 近似的には作れるんでない?
37 名前:132人目の素数さん mailto:sage [2005/09/19(月) 02:20:48 ] >>34 ボックス・ミューラー法
38 名前:132人目の素数さん [2005/09/19(月) 03:48:34 ] >>34 12個足して6で割ればいいのでは?
39 名前:132人目の素数さん mailto:sage [2005/09/19(月) 12:30:10 ] >>38 かなり擬似的だからモンテカルロシミュレーションには使えないと思うけど、 用途によってはそれで十分かもね。ゲームとか。
40 名前:132人目の素数さん [2005/09/19(月) 14:22:01 ] 最近のパソコンはボックス=ミューラー法使うのと一様乱数N個の算術平均とるのとで どれぐらいCPU時間の差がでるんだろう?
41 名前:132人目の素数さん mailto:sage [2005/09/19(月) 15:16:35 ] >40 perl 5.8.7 + WinXP + Pen4 630でやってみた。 n=100000,N=100で >the code took: 34 wallclock secs ( 34.53 usr + 0.02 sys) >the code took: 1 wallclock secs ( 0.89 usr + 0.00 sys) と大分、差がある。
42 名前:132人目の素数さん [2005/09/19(月) 19:04:36 ] >>41 上がBM法で、下が算術平均だよね? 34倍の差とは意外と大きいね。
43 名前:132人目の素数さん mailto:sage [2005/09/19(月) 19:27:49 ] >42 逆。 上が算術平均で、下がボックス・ミューラー法。 100倍じゃなくて約38倍の差になるのは、 ボックス・ミューラー法がlogやらsinやらで時間が掛かるのに対して、 算術平均側が足して割るだけだからだろうなぁ、多分。
44 名前:132人目の素数さん [2005/09/19(月) 19:32:33 ] >>43 え? 34wallclock secs ってどういう意味よ? 上の方が速いの??
45 名前:132人目の素数さん mailto:sage [2005/09/19(月) 19:53:29 ] >44 上の方が遅い。 数字が大きい程、時間が掛かってるってこと。
46 名前:42 [2005/09/19(月) 20:33:55 ] >>45 いや、だって>>43 がいうには、上の算術平均が 速いようなことをいってるんだが・・・ やっぱ>>42 で合ってるよな?
47 名前:41兼43兼45 mailto:sage [2005/09/19(月) 21:02:57 ] >46 実は同一人物だったというオチなんだが、どうしたもんだろうね? あー、実際に作って動かしてみると分かるけど、 算術平均がO(n*N)で、ボックス・ミューラー法がO(n)になる。 乱数をN個作るんで、そこで時間を喰う。
48 名前:132人目の素数さん mailto:sage [2005/09/19(月) 21:10:44 ] >>47 「上」が34 wallclock secsで数字が大きくて遅くて時間がかかってるBM法で、 >>42 で合っていて、>>43 の「逆。」は単純な誤記って事だよね? >>42 , >>44 とは違う人だけど、端から見てて混乱した。
49 名前:41兼43兼45兼47 mailto:sage [2005/09/20(火) 00:27:09 ] ちゃんと書いておけばよかったな。 Active Perl 5.8.7 + WinXP + Pen4 630 + Memory 1G. 算術平均 the code took: 34 wallclock secs ( 34.53 usr + 0.02 sys) BM法 the code took: 1 wallclock secs ( 0.89 usr + 0.00 sys) という結果でBM法が約38倍速い。 算術平均の方ではn*N回乱数を生成しているのに対し、 BM法ではn*2回しか乱数を生成していない。 あと、BM法の方で、2個N(0,1)を得る操作をn回繰り返しているので、 計算時間を更に半分にできたりもする。 あと、こんなの見つけた。 Luc Devroye "Non-Uniform Random Variate Generation" cgm.cs.mcgill.ca/~luc/rnbookindex.html
50 名前:132人目の素数さん [2005/09/20(火) 00:32:12 ] >>49 なんで34秒かかってるに速いのかわからん その数字の定義は何?
51 名前:132人目の素数さん [2005/09/20(火) 00:35:27 ] ん?BM法が速いの?
52 名前:132人目の素数さん mailto:sage [2005/09/20(火) 00:38:25 ] また、振り出しに戻る。
53 名前:132人目の素数さん mailto:sage [2005/09/20(火) 00:38:38 ] 算術平均って、いくつの乱数の平均を取ったのよ? その数によって変わる希ガス
54 名前:132人目の素数さん mailto:sage [2005/09/20(火) 07:01:34 ] >>49 ちゃんと書けていない。 34.53/0.89≒38.80 ここみて38倍って主張はわかるが、 n*Nとn*2の関係って何?(特にNと2) もうちょっと日本語練習してからレポート書いてほしい気になってきた・・・orz
55 名前:132人目の素数さん mailto:sage [2005/09/20(火) 13:57:10 ] 38倍も差が出るわけないと思ったから、 俺もC++でプログラム書いて試してみたよ。 俺の結果は2倍ぐらい算術平均が速い。 なお、BM法は r_1, r_2 ∈ [0,1]乱数 として、 r = √(-2 log(r_1)) ・ cos(2π r_2) で与えた。 算術平均法は r_i ∈ [0,1]乱数 として、 r = ( Σ_{ i=1 }^{ 12 } r_i ) / 12 え与えた。 実験は10000個の乱数を10000回、 つまりそれぞれ1億個生成する時間を測定した。 BM method took 54 seconds. Average method took 27 seconds. Ratio BM/AV 0.5 醤油ファイル ttp://venus.aez.jp/uploda/data/dat1/upload318925.zip
56 名前:132人目の素数さん mailto:sage [2005/09/20(火) 14:12:46 ] ○ Ratio AV/BM 0.5 × Ratio BM/AV 0.5 醤油もそこ間違ってるから注意してくんろ 結論は「算術平均が2倍速い」で間違いない
57 名前:41 mailto:sage [2005/09/20(火) 14:20:22 ] >54 コード書き換えて実験し直して再検討。 目標:N(0,1)に従う乱数をn個生成し、算術平均を用いた場合と、 ボックス・ミューラー法を用いた場合での効率の差を計る。 n = 1000000 : N(0,1)に従う乱数の個数 N = 12 : 算術平均を使った場合に、1個の正規分布 とパラメータを設定する。 算術平均を用いる場合、r_iを[0,1)上の一様分布に従う乱数として、 r = 農{i=1}^{12} r_i - 6としてN(0,1)に従う乱数rを1つ得る。 一方、ボックス・ミューラー法では2個のr_iからN(0,1)に従う乱数を2個得る。 従って、算術平均を用いる場合O(n*N)time掛かり、 ボックス・ミューラー法を用いる場合O(n)time掛かることが予想される。
58 名前:41 mailto:sage [2005/09/20(火) 14:21:33 ] >57の続き 実験に用いたコードは疑似コードで書くと、以下(実際にはperl使ってます)。 算術平均 for (i=0;i<n;i++){ s = 0; for (j=0;j<N;j++){ s = s + rand(1); } r = s/N - 6 } ボックス・ミューラー法 for (i=0;i<n/2;i++){ a = rand(1); b = rand(1); r1 = sqrt(-2*log(a))*sin(2πb); r2 = sqrt(-2*log(b))*sin(2πa); } 実験結果 算術平均 the code took: 45 wallclock secs ( 45.02 usr + 0.05 sys = 45.06 CPU) ボックス・ミューラー法 the code took: 5 wallclock secs ( 4.34 usr + 0.00 sys = 4.34 CPU)
59 名前:41 mailto:sage [2005/09/20(火) 14:26:55 ] >55 全然違う結果だ(;´Д`) Math::Random::MT使ってる所為で、乱数生成がボトルネックになってるぽいな、こっちだと。
60 名前:132人目の素数さん mailto:sage [2005/09/20(火) 14:29:24 ] >>59 MTってCの乱数より速いんじゃなかったっけ?
61 名前:55 mailto:sage [2005/09/20(火) 14:36:10 ] あ、算術平均は6引くんだった・・・ というわけで、そこを 算術平均法は r_i ∈ [0,1]乱数 として、 r = ( Σ_{ i=1 }^{ 12 } r_i ) - 6 え与えた。 に直して再実験したが、変わらなかった BM method took 52 seconds. Average method took 26 seconds. Ratio AV/BM 0.5 やっぱ乱数の生成時間なんだろうね
62 名前:41 mailto:sage [2005/09/20(火) 14:48:31 ] 訂正。 >57 ×r_iを[0,1)上 ○r_iを(0,1)上 >58 ×r = s/N-6 ○r = (s-6)/N >60, >61 PerlのMath::Random::MTが遅いようで。
63 名前:55 mailto:sage [2005/09/20(火) 14:57:26 ] mt19937ar使ってみたが、 やっぱ標準関数のrand()よりは遅いようだ。 MT使うと、BM法が少し速い感じ。 ただ、俺のソースだとy成分しか計算してないから またこりゃ微妙だな。 BM method took 67 seconds. Average method took 92 seconds. Ratio AV/BM 1.37313 つまり、科学技術計算のようなちゃんとした場合は MTつかってBM法の方が速く、 ゲームみたいな適当な場合は標準関数rand()で 算術平均法の方が速いってことでいいのかね。 rand()も実装によって違うからなんともいえんが・・・ 俺はBorland C++ Compiler 5.5なんだが。
64 名前:40 [2005/09/20(火) 22:15:39 ] 自分でもいろいろ計算してみたところ、最近のPCだとほとんど差はなさげ。 よってコストの高い乱数アルゴリズムを使うほどBM法の方が早くなる模様。 あと、文献によって、二つの一様乱数αとβがある場合に √(-2logα)sin(2πβ) √(-2logα)cos(2πβ) の2つが独立に得られる、としているものと √(-2logα)sin(2πβ) √(-2logβ)sin(2πα) の2つが独立に得られる、としているものがあるが、どっちが正しいんだ? どちらも正しとすれば、2つの一様乱数から √(-2logα)sin(2πβ) √(-2logα)cos(2πβ) √(-2logβ)sin(2πα) √(-2logβ)cos(2πα) みたいに4つも正規乱数が得られてウハウハってことになるが。
65 名前:41 mailto:sage [2005/09/22(木) 23:01:31 ] >62 なんで俺割ってんだろう。 r=s-6にしても、計算時間はさっぱり変わらなかった。 Math::Random::MTが怪しいので、ちゃんと、ソース読んでみる。
66 名前:64 [2005/09/25(日) 22:25:21 ] 調べれば調べるほど微妙に違うバリエーションが出てきてわけわかめ…… 明らかに誤植を疑いたくなるようなものもあるし。 これはBoxとMullerの原典を探すしかないのかな
67 名前:64 [2005/09/25(日) 23:43:40 ] 二次元上にプロットしてみて判明。 2つの独立した正規乱数になるのは √(-2logα)sin(2πβ) √(-2logα)cos(2πβ) の組み合わせのみ。 肝心の計算速度なんだけど、 いまどきのCPUは浮動小数点演算が早いから、 そうなるとやはり乱数生成回数の少ないBM法が圧倒的に有利。 ゲーム用途でもBM法使った方がマシ。 誤差については、 BM方を使うとほとんど尖度3の分布が得られるんだけど、 加算法では尖度2.9ぐらいで、ちょっと平坦になる模様。 今のPCでわざわざ加算法を使う利点は無いと思われ。
68 名前:64 mailto:sage [2005/09/26(月) 14:35:45 ] 自分もソース公開してみる。 ttp://www.uploda.org/file/uporg202014.zip.html ちなみに乱数の統計を取るので、実行すると30MBぐらいメモリ食う。
69 名前:132人目の素数さん [2005/09/27(火) 19:18:30 ] メルセンヌツイスターを理解するための教科書なんでないんだorz
70 名前:132人目の素数さん [2005/09/27(火) 22:11:44 ID:0] >>69 工学・金融・物理その他の人間には「理解しなくても使えればいい」で、 情報数学やる人間なら「ソース読んで理解しろ」ってことかも。
71 名前:132人目の素数さん [2005/09/30(金) 20:02:04 ] しかし純粋数学が「役立ってる」のって 乱数とか暗号とかそんなのばっかりだな。
72 名前:132人目の素数さん [2005/09/30(金) 20:09:18 ] >>71 今までのパターン ・複素数なしにADSL(ry ・測量が(ry ・お前は複素数も三角関数も微積分(本質は実数)がなくても(ry
73 名前:132人目の素数さん [2005/09/30(金) 22:17:20 ] 乱数はむしろ統計とか確率論とかの方面から来てるから、 もとから応用数学のような希ガス。
74 名前:132人目の素数さん [2005/10/01(土) 01:28:02 ] >>71 役に立ったらその時点で純粋数学ではなくなるのでは? 純粋数学=役に立たない数学 これ定義でしょ?
75 名前:132人目の素数さん [2005/10/01(土) 20:44:04 ] ただのトートロジー
76 名前:132人目の素数さん [2005/10/02(日) 21:00:59 ] 物理乱数であれば、無条件に精度は問題ないと思って桶?
77 名前:132人目の素数さん [2005/10/02(日) 22:45:24 ] >>76 観測器の精度ってもんがあるっぺや
78 名前:132人目の素数さん [2005/10/02(日) 23:24:30 ] そうなるとアウトプットの質を吟味する必要があるんやね。 2つの異なる方法で生成した乱数の精度の有意な差の検定とかって あるんかな??
79 名前:132人目の素数さん mailto:sage [2005/10/02(日) 23:31:05 ] 不謹慎にも>>32 にワロタ
80 名前:132人目の素数さん [2005/10/03(月) 23:07:51 ] >>78 「乱数検定」でぐぐれ
81 名前:132人目の素数さん [2005/10/06(木) 23:51:03 ] 乱数ってrandom性と確率変数のrandom性の意味の違いを教えてください
82 名前:132人目の素数さん [2005/10/07(金) 18:00:22 ] まずお前の質問の意味を教えろ
83 名前: [2005/10/14(金) 14:34:22 ] 機動戦士ランダムSEED DESTINY pc8.2ch.net/test/read.cgi/prog/1126102170/
84 名前:132人目の素数さん [2005/10/14(金) 18:22:43 ] >>83 ワロタ ところでぽまいらは乱数の種に何を使ってる? シミュレーションで高速な擬似乱数アルゴリズムを使うにしても、 そのための種は生成遅くてもいいから物理乱数が欲しいよね。
85 名前:132人目の素数さん mailto:sage [2005/10/21(金) 10:01:42 ] 結城浩からの問題。 www.hyuki.com/d/200510.html#i20051016205402 www.hyuki.com/d/200510.html#i20051020190000
86 名前:132人目の素数さん [2005/10/24(月) 20:05:58 ] >>85 おまい、そういう面白そうなのはsageで貼るなよ……
87 名前:132人目の素数さん mailto:sage [2005/10/24(月) 20:53:50 ] しかし、乱数とまったく関係ない
88 名前:132人目の素数さん [2005/10/26(水) 18:12:06 ] くだらねぇ質問スレよりコピペ。 930 :132人目の素数さん :2005/10/26(水) 16:20:35 スレ違い板違いかもしれませんが、他に適当なところが見つからなかったので教えて下さい モンテカルロ・シミュレーションなるものをやってみたいのですが、 いろいろな分布(正規とかベルヌーイとか三角とかポアソンとか)を計算するには どうしたらよいでしょうか? 一様分布の乱数はプログラム言語にあるのですが、他の分布への変え方が分かりません よろしくお願いいたします
89 名前:132人目の素数さん [2005/10/26(水) 18:36:24 ] >>84 TBSと阪神電鉄の株価
90 名前:132人目の素数さん [2005/10/26(水) 18:53:49 ] 正規分布はBM法。 三角分布は2つの一様分布乱数を足して2で割る。 ポアソン分布は、うーん、どうしようか。
91 名前:こんなのじゃ駄目? [2005/10/27(木) 09:18:46 ] vbで Function PoissonRand(lambda) Dim x, V, Vlimit x = 0: V = 1: Vlimit = Exp(-lambda) Do V = V*Rnd() If V < Vlimit Then Exit Do x = x + 1 Loop PoissonRand = x End Function
92 名前:132人目の素数さん mailto:sage [2005/10/27(木) 22:31:37 ] 単位区間上の一様分布から一般の分布への変換は cumulative distribution function の逆関数をかませば桶。連続分布だと実際は大変だが、ポアソンみたいな 離散分布ならプログラミングも簡単。計算時間はそれなりに喰うかもしれんが。
93 名前:132人目の素数さん mailto:sage [2005/10/27(木) 22:34:18 ] それからな、物理乱数は分布の素性がはっきりしないし時間的な変動もあるから 使い方に気をつけろ。
94 名前:92 [2005/10/28(金) 10:13:51 ] よく見たら 91 の方法がまさにそれだな。
95 名前:92 [2005/10/28(金) 10:35:53 ] と思ったがよくよく見ると違うみたいだな。これで動くの? vbってよく知らんが、次みたいな感じでいけると思う。 Function PoissonRand(lambda) Dim n, x, V, Vlimit, u n=0: x = 1: V = 0: Vlimit = Exp(lambda): u=Rnd() Do V=V+x If V > Vlimit Then Exit Do n = n + 1 x = x* lambda / n Loop PoissonRand = n End Function
96 名前:92 [2005/10/28(金) 10:40:05 ] ああヒドイ。訂正です。 Function PoissonRand(lambda) Dim n, x, V, Vlimit n=0: x = 1: V = 0: Vlimit = Exp(lambda)*Rnd() Do V=V+x If V > Vlimit Then Exit Do n = n + 1 x = x* lambda / n Loop PoissonRand = n End Function
97 名前:132人目の素数さん [2005/10/28(金) 22:18:09 ] その方法だと、まさしくポアソン分布に従う低確率で 物凄く時間が掛かかる危険が付きまとっているような。
98 名前:132人目の素数さん [2005/10/28(金) 23:16:15 ] >>96 VBAだけど、ちゃんと動いた。
99 名前:92 [2005/10/29(土) 09:00:37 ] >>97 その通り。普通、乱数というのはいっぺんにたくさんの数を発生させて 使うので、期待値がきいてくる。rnd() にどれぐらい時間を喰うかも 問題だが、それを無視すれば lambda に比例した計算時間を要する ということ。 >>98 お目&トン
100 名前:132人目の素数さん [2005/11/03(木) 23:43:32 ] 事前に密度関数からテーブル作っておけばいいんじゃない?
101 名前:132人目の素数さん mailto:sage [2005/11/18(金) 11:04:28 ] 854
102 名前:132人目の素数さん [2005/11/29(火) 12:06:19 ] 152
103 名前:132人目の素数さん [2005/11/29(火) 13:03:39 ] 数学板の数字レスだけ集めて乱数表つくったら統計的にどうなんだろう
104 名前:132人目の素数さん [2005/12/23(金) 21:28:17 ] すいません、ちょっと教えてください。 チェックサムの付いている、8桁のユニークな乱数を作りたいんですけど どうしたら、いいんでしょう。 数学の知識がまるっきりないので、困ってます。 フリーソフトとか、市販のソフトとかで、生成できるものがありますか? ご存知なら教えてください
105 名前:132人目の素数さん mailto:sage [2005/12/23(金) 21:47:18 ] ハッシュ関数 暗号 で具具って見れば世ろ紙
106 名前:132人目の素数さん [2005/12/23(金) 22:01:54 ] チェックサムの付いた乱数って乱数じゃないじゃん。わけわかんね。
107 名前:132人目の素数さん [2005/12/26(月) 20:52:38 ] >>103 それより各レス毎の時間差がどういう分布になってるかが気になる。
108 名前:132人目の素数さん [2005/12/28(水) 21:07:59 ] 【かっこ悪い】建部崩れ、見参!【情けないw】 science4.2ch.net/test/read.cgi/math/1135765594
109 名前:132人目の素数さん [2005/12/31(土) 17:38:33 ] いい加減止めれこの馬鹿のアホの馬鹿のアフォの馬鹿
110 名前:132人目の素数さん [2005/12/31(土) 17:43:55 ] 修士論文がMath Ann・・・なかなかですな。これからに期待! 博士論文がMath Ann・・・研究者として、そこそこのスタート 任期助手(34歳)が会心の一撃・・・コネ教員に騙されたの? 下層崩れ=アナレン級隔年の駒場のCOE 中堅崩れ=アナレン級1本/年の学振PD 上層崩れ=建部、Invent.崩れかけ
111 名前:132人目の素数さん [2005/12/31(土) 17:44:38 ] 会心の一撃 Ko Ne ! 会心の一撃 Ko Ne ! 会心の一撃 Ko Ne !
112 名前:132人目の素数さん [2005/12/31(土) 17:46:37 ] 会心の一撃はもう出るな
113 名前:132人目の素数さん mailto:sage [2006/01/02(月) 05:23:09 ] 336
114 名前:132人目の素数さん mailto:sage [2006/01/08(日) 16:49:36 ] 止めれ馬鹿
115 名前:132人目の素数さん [2006/01/10(火) 10:07:25 ] age
116 名前:132人目の素数さん [2006/01/29(日) 14:34:44 ] english1.51hair.net/xiaorong.wmv english1.51hair.net/
117 名前:132人目の素数さん mailto:sage [2006/02/05(日) 07:34:46 ] 173
118 名前:132人目の素数さん mailto:sage [2006/03/02(木) 17:03:57 ] 446
119 名前:132人目の素数さん mailto:sage [2006/03/02(木) 17:12:00 ] 475
120 名前:うわぁ [2006/03/08(水) 12:47:11 ] 離散化した正規乱数って作れないんだっけ? 一様乱数をBM法で正規乱数に変換し、四捨五入すると 出来そうな気がするが、期待値を持ってしまう。 これって原理的なもの?
121 名前:132人目の素数さん mailto:sage [2006/03/13(月) 14:22:38 ] 正規乱数は Roth が作っている。
122 名前:132人目の素数さん [2006/03/14(火) 05:16:51 ] age
123 名前:132人目の素数さん mailto:sage [2006/03/26(日) 14:26:53 ]
124 名前:132人目の素数さん mailto:sage [2006/04/15(土) 20:05:55 ] 600
125 名前:なんつっ亭 ◆YLhguIEUXM [2006/04/16(日) 21:59:33 ] 45 元広島カープのホームランバッター なんつって^^;
126 名前:132人目の素数さん [2006/04/16(日) 22:54:54 ] このスレ 〜〜〜終了〜〜〜
127 名前:132人目の素数さん [2006/04/21(金) 19:52:18 ] サイコロふってろ
128 名前:132人目の素数さん [2006/05/08(月) 09:46:09 ] このスレ 〜〜〜終了〜〜〜
129 名前:132人目の素数さん [2006/05/08(月) 13:03:39 ] そして華麗に 〜〜〜再開〜〜〜
130 名前:132人目の素数さん mailto:sage [2006/05/13(土) 22:11:46 ] 148
131 名前:132人目の素数さん mailto:sage [2006/05/26(金) 14:29:38 ] 735
132 名前:132人目の素数さん [2006/06/09(金) 13:14:23 ] www.tv-asahi.co.jp/announcer/question/bn/0208.html
133 名前:132人目の素数さん [2006/06/09(金) 17:08:33 ] >>120 亀レスだが 四捨五入がまずいんじゃないか? 切り上げ・切捨ての範囲も正規分布に従って変化していればよさそう。
134 名前:132人目の素数さん mailto:sage [2006/06/16(金) 02:04:56 ] 678
135 名前:132人目の素数さん mailto:sage [2006/07/28(金) 16:01:59 ] 812
136 名前:132人目の素数さん [2006/08/06(日) 18:05:07 ] >>133 亀スレはスポーツ・ニュース板に立てろ
137 名前:132人目の素数さん [2006/08/22(火) 01:02:26 ] 機械屋です。以下のRの利点箇条集の(70)条は、どのように 読解すればよいですか? (70)・・・今お使いの統計ソフトがMersenne-Twister 法以外の疑似乱数 発生法を使っていたら、深刻に悩んだ方がよいかも。 Rを薦める100+の理由 www.okada.jp.org/RWiki/index.php?R%A4%F2%C1%A6%A4%E1%A4%EB100%2B%A4%CE%CD%FD%CD%B3
138 名前:132人目の素数さん mailto:sage [2006/08/22(火) 08:29:57 ] Mersenne-Twister 法マンセーってことだろ
139 名前:132人目の素数さん [2006/08/23(水) 21:41:44 ] Crystal Ballで提供されているラテンハイパーキューブ法って、 乱数生成方式は何? Crystal Ball www2.kke.co.jp/cb/index.html
140 名前:132人目の素数さん [2006/08/24(木) 22:32:47 ] 去年はあった漸化式スレが見当たらないんだが、1000レスに到達したのか。
141 名前:132人目の素数さん [2006/08/25(金) 23:28:13 ] >>138 メルセンヌ・ツイスタ法とMRG法は、国家が公認しております。 統計数理研究所Random Number Generatorへようこそ random.ism.ac.jp/random/index.php
142 名前:132人目の素数さん mailto:sage [2006/08/30(水) 17:34:39 ] 754
143 名前:132人目の素数さん [2006/09/16(土) 10:55:48 ] >>120 >離散化した正規乱数って・・・ 何に使うのですか?
144 名前:144 mailto:sage [2006/09/17(日) 09:36:20 ] √(144) = 12 人の小人
145 名前:132人目の素数さん mailto:sage [2006/09/17(日) 09:41:54 ] 当然ウイルス作成でしょ
146 名前:??? [2006/09/29(金) 22:41:48 ] 結局乱数の定義は何?
147 名前:132人目の素数さん mailto:sage [2006/10/03(火) 06:07:35 ] 863
148 名前:KingOfUniverse ◆667la1PjK2 [2006/10/03(火) 07:24:30 ] talk:>>146 そういうことは確率論の話には出てこないようだ。確率変数と同じものかどうかもはっきりしない。
149 名前:132人目の素数さん mailto:sage [2006/10/03(火) 10:14:04 ] 21 5 688 52 3 90
150 名前:132人目の素数さん mailto:sage [2006/11/13(月) 00:28:35 ] 415