- 1 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 02:19:35 ]
- 擬似乱数発生器について語ろうか。
- 404 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 10:51:22 ]
- boost::random::mersenne_twister「メモリぱくぱく おいちい^^^^」
- 405 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 20:33:08 ]
- >>402
>>404 だからSFMTでは短周期版も作ったんじゃないか
- 406 名前:デフォルトの名無しさん [2007/07/04(水) 20:56:27 ]
- SFMTのboost対応版マダー?
- 407 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 00:18:50 ]
- Twister 系の擬似乱数て
単にカオスの簡単な例「2重振り子」を演算で出しただけじゃん。 適度に内部ビット数増やせば、周期なんて測定不能な域にするのは容易じゃん。 ワンチップとかの超小型マイコンで作るんじゃないんだし、今のPCなら 乱数で使うメモリは捨てるほどあるわけだしな。
- 408 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 00:29:35 ]
- >単にカオスの簡単な例「2重振り子」を演算で出しただけじゃん。
それを実装したことに意味があるんじゃん。 …って開発者が言ってた。
- 409 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 23:43:55 ]
- >>408
似た事を主張した奴とか類似物を作ったやつも、正式に論文発表しなかった だけにすぎない。
- 410 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:47:42 ]
- コロンブスなんて西に航海しただけ。コロンブスがしなくても誰かがやったよね。
- 411 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:52:53 ]
- コロンブスってタダの方向音痴なんじゃないかと思う
- 412 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 10:22:53 ]
- 「西に向かえば地球は丸いそうだからアジアに辿り着ける筈だ」と言う発想は方向音痴とはいえまい。
- 413 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 13:30:58 ]
- 西に向かって最初に見つけた陸地を西インド諸島と名付けるのはどうか。
せめて西ジパング諸島と呼ぶべきだったと思う。
- 414 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 15:29:18 ]
- コロンブス以前に原始人が海をわったったという遺伝子が原住民の
遺伝子確認で分かっている点について(ry
- 415 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 20:29:40 ]
- 同時代に同じことを考えた香具師はいっぱいいる
コロンブスチームのマーケティングの勝利
- 416 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 20:40:37 ]
- このビルのガラス窓は頑丈だと証明しようと体当たりしてぶち破って死んだ弁護士もいたな
- 417 名前:デフォルトの名無しさん [2007/07/11(水) 01:10:25 ]
- >>416
荒縄静香を思い出した 確かWeb魚拓は取っといたはずだけど どこいっちゃたtかな
- 418 名前:デフォルトの名無しさん [2007/07/11(水) 01:16:28 ]
- 【総連】「安倍一味には負けない」総連弾圧に対して措置取る…朝鮮外務省代弁人声明
ttp://news21.2ch.net/test/read.cgi/news4plus/1183572310/l50
- 419 名前:・∀・)っ-○◎● mailto:sage [2007/07/11(水) 01:22:51 ]
- >>406
斉藤君に連絡とってみるかな。 個人的にはSSE2非対応CPU向けにMMX版くらいは欲しいんだが。 本人が動いてくれるくれないにかかわらず、SSE2版だけならVC8/ICC用の クラスを作ってみようと思うが。どうせ俺が使うし。
- 420 名前:デフォルトの名無しさん [2007/07/11(水) 01:28:04 ]
- で、SCEからオファーはきたの?
- 421 名前:・∀・)っ-○◎● mailto:sage [2007/07/11(水) 01:34:19 ]
- 音沙汰無いよ
- 422 名前:・∀・)っ-○◎● mailto:sage [2007/07/11(水) 01:59:55 ]
- Cスタイルのコーディングってさ、どうしてグローバル変数汚染しようとするのかねぇ。
スレッド毎にインスタンス生成すればスレッドセーフうめぇwwww
- 423 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 02:17:06 ]
- スタックに作ればいいやん
- 424 名前:・∀・)っ-○◎● mailto:sage [2007/07/11(水) 07:26:20 ]
- たとえばさ、MTのgenrand()を複数のスレッドから参照してみてごらん。必ずおかしなことがおきます。
BoostのRNGは全部クラス化してあって一時計算領域もインスタンス毎に生成するからスレッドセーフなのよ
- 425 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 07:55:00 ]
- 乱数生成ルーチンがバグってて出鱈目な値を返していても誰も気がつかない罠
- 426 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 08:19:10 ]
- 内部ベクトルでかいんだから、ミューテックスのがよくね?
- 427 名前:デフォルトの名無しさん [2007/07/12(木) 21:44:58 ]
- おいおい19937ビット+αだぜ?
- 428 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:28:42 ]
- TLS使えばしまいだろ
- 429 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:36:08 ]
- >>428は>>422宛ね
- 430 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:29:54 ]
- TLSとは何か。
Transport Layer Security Thread Local Storage True Love Story いろいろあるんだな……
- 431 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 02:11:06 ]
- いや、内部ステートをスレッド毎に持つというのは
確かに複数スレッドからの同時アクセスの点では良いのだが 例えばよく使われるsrand()はどうするのか。 スレッド毎にsrand()を呼ぶのか あるいはsrand()の内部でスレッドを数え上げるのか srand(time(NULL))の後にスレッドを作成したらどうなるのか ↑を最初に一度だけ呼んである過去のコードの扱いはどうなるのか 等々、面倒くさいことがありすぎるよ。 まともなコードで、srand()を呼ばずにrand()を使っているものがあるとは思えないし。 もちろん、「標準のrand()」を置き換えるのではなく 「自分で使う乱数生成器」をどうするか、という話なら 好きなようにどうぞ、というだけだけど。
- 432 名前:・∀・)っ-○◎● mailto:sage [2007/07/13(金) 03:11:46 ]
- そりゃ各スレッド毎にパラメータがあるわけだから、それぞれに初期化が必要になるだろうね。
種は現在時間+スレッドID+GUID/UUID+HDDシークタイムからとった自然乱数もどき+・・・・ 見たいな感じでいろいろ組み合わせればよくね? 最近のMTの派生実装は種を配列で与えることができるんで、ユニークな乱数列になるように なるべく多くのパラメータを与えるといい。 MTは種さえ被らせなきゃそこそこうまくバラけてくれる。
- 433 名前:デフォルトの名無しさん [2007/07/13(金) 08:20:03 ]
- CryptGenRandは?
- 434 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 09:29:57 ]
- そういう話かよ?
- 435 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 12:42:16 ]
- ワークメモリがスレッド毎に独立してると、たとえばモンテカルロみたいなのを複数スレッドで分割処理やりたいときに有用。
プロセスを分ければいいと言われると返す言葉がないがね。
- 436 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 22:15:41 ]
- >>386 亀レス
double win_rand2(HCRYPTPROV hProv){BYTE b[4];CryptGenRandom(hProv, 4, b); return (double)(b[0]+(b[1]<<8)+(b[2]<<16)+((b[3]&127)<<24))/2147483648;} n=0.0;t=clock();HCRYPTPROV hProv;CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0); for(i=0;i<kaisu;i++){x=win_rand2(hProv);y=win_rand2(hProv);if(x*x+y*y<=1.0)n+=1;} CryptReleaseContext(hProv, 0); printf(" winのrandの精度(値が小さいほど良い) %1.9f 生成速度%f秒\n",fabs(4*n/kaisu-PI),(double)(clock()-t)/1000);
- 437 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:40:05 ]
- CryptGenRandomって自分じゃジェネレートしてないのに、なんでGenRandomなんだ?
GetRandomじゃないのか?
- 438 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:01:44 ]
- その Gen は Generate ではなく、元、つまり集合の1要素だって
おじいちゃんがゆってた。
- 439 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 00:24:49 ]
- 「源」じゃないの?
すなわち「おじいちゃんの名前(ゲンじいちゃん)」 え?ちがう?
- 440 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 00:29:36 ]
- ララ… わしゃ悔しいわい
- 441 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:32:34 ]
- アゴなしの人か。
- 442 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:22:22 ]
- DDAで円の軌跡を計算して、それを2重にして乱数作ったんだが、
擬似乱数として性能がいいのか調べる方法はある?1から10までの分布は それらしくなっているんだけどな。
- 443 名前:・∀・)っ-○◎● mailto:sage [2007/07/19(木) 23:57:25 ]
- だんごやさんはSSE2用sfmtをboostに移植しようとしたがテンプレート地獄に涙目
- 444 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:54:11 ]
- ビット毎の出現確率でも調べたら?
- 445 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 07:35:38 ]
- >>442
どっかに基準とはる判定方法があったかも
- 446 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 09:09:19 ]
- とりあえず、こんなのは見つかった。
DieHarder: A Random Number Test Suite Robert G. Brown's General Tools Page www.phy.duke.edu/~rgb/General/dieharder.php
- 447 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:11:11 ]
- >>446
乱数検定の定番だな
- 448 名前:デフォルトの名無しさん [2007/08/15(水) 00:44:29 ]
- いろんな圧縮アルゴリズムにかけて
圧縮率を見るのってどうなの? 邪道?
|

|