ランダムするには?

[戻る]
TADA 2001/02/12(月) 10:37:52
ランダムで
srand(GetTickCount());
long lRand = rand()%10;
ってやっているのですが、
ランダムはランダムですがどうもあんまり散らばってないような気がするのです。
もっとランダムにランダムになる方法を知っていたら教えて下さい。

2001/02/12(月) 13:45:42
> long lRand = rand()%10
rand()の乱数を10で割った余りってことは0〜9の10通りしか出てこないので、
それほど散らばらないかと思います。

TADA 2001/02/12(月) 22:15:46
すいません。上記のは例なのです。
実際にあんまりランダムになってないと思うというのは
30ぐらいあったとして、5個ランダムに取り出したいとします。
そのとき,ランダムで取ったのが2,5,14,20,22だったとします。
そしてアプリを終了し、また立ち上げ同じ関数を通った時に
同じような数値が取られるのが多いような気がしてるんです。
例えば2回目は,2,6,14,20,25とか。(3つダブってる)
ここまでじゃないにしても何回やっても結構ダブり、
何回やっても全然取られないのもあるのですが、なぜでしょう。
関数内で毎回
srand( GetTickCount() );
とやってるのがまずいのでしょうか?
もっとランダムなランダムはないのでしょうか?

2001/02/12(月) 22:32:50
> もっとランダムなランダムはないのでしょうか?
やってみていないので何ともいえませんが、以前(DOS)の頃には
秒数 or m秒数でランダムを取り出したことがあります。

TADA 2001/02/13(火) 11:07:33
[[解決]]
何とかなりました。
ありがとうございました。

古いスレッドには追加発言できません。