ランダムするには? – プログラミング – Home

通知
すべてクリア

[解決済] ランダムするには?


TADA
 TADA
(@TADA)
ゲスト
結合: 24年前
投稿: 28
Topic starter  

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


引用未解決
トピックタグ
重
 重
(@重)
ゲスト
結合: 25年前
投稿: 84
 

> long lRand = rand()%10
rand()の乱数を10で割った余りってことは0~9の10通りしか出てこないので、
それほど散らばらないかと思います。


返信引用
TADA
 TADA
(@TADA)
ゲスト
結合: 24年前
投稿: 28
Topic starter  

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


返信引用
重
 重
(@重)
ゲスト
結合: 25年前
投稿: 84
 

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


返信引用
TADA
 TADA
(@TADA)
ゲスト
結合: 24年前
投稿: 28
Topic starter  

何とかなりました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました