通知
すべてクリア
Topic starter
2001年2月12日 10:37 AM
ランダムで
srand(GetTickCount());
long lRand = rand()%10;
ってやっているのですが、
ランダムはランダムですがどうもあんまり散らばってないような気がするのです。
もっとランダムにランダムになる方法を知っていたら教えて下さい。
2001年2月12日 1:45 PM
> long lRand = rand()%10
rand()の乱数を10で割った余りってことは0~9の10通りしか出てこないので、
それほど散らばらないかと思います。
Topic starter
2001年2月12日 10:15 PM
すいません。上記のは例なのです。
実際にあんまりランダムになってないと思うというのは
30ぐらいあったとして、5個ランダムに取り出したいとします。
そのとき,ランダムで取ったのが2,5,14,20,22だったとします。
そしてアプリを終了し、また立ち上げ同じ関数を通った時に
同じような数値が取られるのが多いような気がしてるんです。
例えば2回目は,2,6,14,20,25とか。(3つダブってる)
ここまでじゃないにしても何回やっても結構ダブり、
何回やっても全然取られないのもあるのですが、なぜでしょう。
関数内で毎回
srand( GetTickCount() );
とやってるのがまずいのでしょうか?
もっとランダムなランダムはないのでしょうか?
2001年2月12日 10:32 PM
> もっとランダムなランダムはないのでしょうか?
やってみていないので何ともいえませんが、以前(DOS)の頃には
秒数 or m秒数でランダムを取り出したことがあります。
Topic starter
2001年2月13日 11:07 AM
何とかなりました。
ありがとうございました。