アカウント名:
パスワード:
Random() で使われている線形合同法自体は良く知られた (というか定番) アルゴリズムで、確か中学生くらいの時に、今は亡き¥290 雑誌の PC マガジンに掲載されているのを読んだ記憶があります。 もっとも、当時よく使われていた Z80 にはリフレッシュレジスタという乱数源に使える便利な代物がありましたから、BASIC な人は素直に RND() を使い、マシン語では R レジスタの値に手を加えて乱数化するというのが一般的だったような気がします。 ということで、記憶がいい加減曖昧模糊としてきたので web 上の資料に当たらせていただくことにしました (大学では物理屋だったのできちんと情報数理をやったわけではない、っていうかやってない)。
通信経路の暗号化キー云々に使うとなると、記事の通り相当注意して乱数を扱わないといけないはずですが、私はちょっとしたミニゲームに使いたいだけですからこれで十分です。:-)
こういうものこそ Layer-8 [layer-8.com] に乗せてくれる人がいるとありがたいんですが、どうも自環境ベタベタなコードが好きな人が多いようで...
従来の様々な生成法の欠点を考慮して設計されています。 プログラムはCで実装されていて、 このホームページからダウンロードできます。 従来にない長周期, 高次元均等分布を持ちます。 (周期が2^19937-1で、623次元超立方体の中に均等に分布することが証明されています。) 生成速度がかなり速い。 (処理系にもよりますが、パイプライン処理やキャッシュメモリのあるシステムでは、Cの標準ライブラリのrand()より 高速なこともあります。) メモリ効率が良い。 (32ビット以上のマシン用に設計されたmt19937.cは、624ワードの ワーキングメモリを消費するだけです。1ワードは32ビット長とします。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
とても参考になります (スコア:1)
普段なにげなくプログラムで使っている乱数にもこれだけのストーリーが書けるとは知りませんでした。それ以上に、乱数だけでこれだけの考察ができるところがすごいと思います。
だから、IBMはどっかと違って素晴らしいと思うことがしばしば。
# ThinkPadは使ったことないけど。
// Give me chocolates!
Re:とても参考になります (スコア:1)
Random() で使われている線形合同法自体は良く知られた (というか定番) アルゴリズムで、確か中学生くらいの時に、今は亡き¥290 雑誌の PC マガジンに掲載されているのを読んだ記憶があります。 もっとも、当時よく使われていた Z80 にはリフレッシュレジスタという乱数源に使える便利な代物がありましたから、BASIC な人は素直に RND() を使い、マシン語では R レジスタの値に手を加えて乱数化するというのが一般的だったような気がします。 ということで、記憶がいい加減曖昧模糊としてきたので web 上の資料に当たらせていただくことにしました (大学では物理屋だったのできちんと情報数理をやったわけではない、っていうかやってない)。
通信経路の暗号化キー云々に使うとなると、記事の通り相当注意して乱数を扱わないといけないはずですが、私はちょっとしたミニゲームに使いたいだけですからこれで十分です。:-)
こういうものこそ Layer-8 [layer-8.com] に乗せてくれる人がいるとありがたいんですが、どうも自環境ベタベタなコードが好きな人が多いようで...
Mersenne Twister (スコア:1)
擬似乱数なので暗号乱数としては使えないようですが、
スペクトル拡散とかモンテカルロ法なんかには向くようです。
MD計算用に勉強してみようかなと思っていたので私にはちょうどよいです。
M系列とか忘れてしまったなぁ。