乱数という関数のつくり


ビット  2009-10-28 19:41:08  No: 146444  IP: [192.*.*.*]

関数は便利なもので、中身はわからなくても使い方がわかっていれば
よい、とのことですが。どうしても中身が知りたくなるときが
ありますよね。
VBの乱数を発生させるRnd関数はどのようなつくりになっているのでしょうか
とても興味があるのです。
さて、この関数作りにチャレンジしてみましたが、難しい
私の手には負えないことがわかりました。
どなたかこの謎をおしえてください。お頼み申します

編集 削除
魔界の仮面弁士  2009-10-28 20:09:52  No: 146445  IP: [192.*.*.*]

> Rnd関数はどのようなつくりになっているのでしょうか
「線形合同法」による実装である事が知られています。

ついでに、このあたりが参考になるかも。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=10662&KLOG=24
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=25593&rev=&no=0


> とても興味があるのです。
Rnd とは別の生成方法で良いなら、下記はどうでしょう。

昔「成分解析」というプログラムが流行った事があるのですが、
そこで使われていた疑似乱数の生成手順が解析され、
下記の blog で公開されていたりします。
http://ledyba.ddo.jp/2006/03/28034103.php

編集 削除
もみもみ  2009-10-29 00:47:07  No: 146446  IP: [192.*.*.*]

>聖帝さん
シードが14パターンだと、乱数の精度低すぎです。
大好きなゲームならそれでも良いかもしれませんね。

私はココをお勧めします。
http://www001.upp.so-net.ne.jp/isaku/rand.html

せめて時計を使う位は知っていないとゲーム業界で
生き残れませんよ。

編集 削除
ビット  2009-10-29 09:17:13  No: 146447  IP: [192.*.*.*]

魔界の仮面弁士様  情報提供感謝致します。

編集 削除
もみもみ  2009-10-30 19:01:32  No: 146448  IP: [192.*.*.*]

私が教えていただきたいのは
並び替える時のシードの初期化の方法です。
シードには何を入れればいいんでしょうか?

完全な乱数というのを教えてください。

編集 削除
もみもみ  2009-10-30 23:49:59  No: 146449  IP: [192.*.*.*]

追記です
>乱数とランダム関数を一緒くたにしているが、本来は違う。
乱数でもいいのですが、それはあなたのPCでは実現出来てるんですよね?
それを教えて欲しいのです。


>本来のランダム関数は順次を入れ替えるが、正しい。
本来の"ランダム関数"って語句、以外と検索数少ないんですが本当の
意味ですか?あなたの造語じゃないですか?
ソースをお願いします。

提示して頂いた方法は
同じ物を二度出さないという事ですよね?
こんなのビンゴゲームで昔から確立されています。
あなたに教えて貰う必要はありません。

編集 削除