srand((unsigned) time(NULL));
for(~~~){
~~~rand()~~
}
と使って順番に1か0を出していくプログラムを書いてるんですが
いつも最初の部分が1になっていてデバッグして調べてみたら
同じではないのですが毎回似たような数字を出していました。
26392
26535
26682
26784
このようなかんじです。
(4回デバッガを使って1番最初に呼び出されたrand()の返した値を調べました)
rand()とはそういうものなのでしょうか?
それとも何か原因があるんでしょうか。
2回目以降は一見大丈夫そうなのでただ
rand();
と呼び出す無駄な行を書いてやりすごしたのですが、
もしこれが普通の現象であったら一般的な対策方法が知りたいです。
No.3ベストアンサー
- 回答日時:
srand の引数にシステム時間を使った場合、同じような時間に
実行すると値の変化が少ないために 1回目の rand の値が似た
ような値になります。これは rand の仕様というか癖です。
これを防ぐために、最初に rand を何回か呼び出しておく、
というのは、わりと一般的な対策です。
回答ありがとうございます。
やっぱりそういう現象が一般に起こるんですね。
>>これを防ぐために、最初に rand を何回か呼び出しておく、
>>というのは、わりと一般的な対策です。
そうなんですね。勉強になりました。
1回でなく数回呼び出してから使うようにしたいと思います。
ありがとうございました。
No.2
- 回答日時:
srand とか rand とかがどのように実装されているかがわからないのであまり一般論としてどうこう言えるものでもないけど, 「
最初のうちはどうしても srand で与えた初期値に強く依存する値が出るので何回か rand を呼び出しておいた方がいい」ってのはどこかで見た気がする.お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Java Java 南京錠 2 2023/02/04 11:46
- PHP csvファイルについて教えて下さい。 2 2023/04/01 19:59
- Excel(エクセル) エクセルでの勤務表作成、インターバルの設定について 3 2022/06/03 15:35
- 分譲マンション 古い分譲の初理事(※副理事)の対応について 2 2022/11/04 01:26
- 事件・犯罪 現在在宅捜査で二回目の呼び出しを待っています2ヶ月たっても呼ばれません 質問です最初の取り調べで実際 4 2023/07/25 09:12
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- その他(病気・怪我・症状) 歯科のレジン治療の王道の方法とは 1 2022/03/29 08:38
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
VBAで配列のNULL判定
-
Nullってどういう意味ですか?
-
c++ 二体問題のソースコードを...
-
VBAのチェックボックス結果を集...
-
数字の位ごとの値を表示するプ...
-
乱数の最大値
-
VBAで72時間タイマーがオーバー...
-
1つ前の値を変数に保存する方法
-
C#の問題で2つの整数a,bの...
-
VB6.0-整数と余りを求める
-
バブルソートとクイックソート
-
VBAでC列が入力済みならそのま...
-
DWORDって
-
VB.net comboboxの操作で
-
VBAの定数の使い方で、計算値を...
-
LOG(10)2の意味は?
-
形式を選択して貼り付け 以下の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
足して100になるような乱数のア...
-
フリーランタイマーの時間差分...
-
DataGridView 複数行同時変更...
-
相関係数p値の出し方
-
世界のナベアツ
-
10進数をアスキーコードに変換
-
C#で動的にコントロールを取得...
-
ラジオボタンの値の取得につい...
-
DWORDって
-
バッチファイルで正規表現を使...
-
4択問題のプログラムでランダム...
-
1つ前の値を変数に保存する方法
-
VBAの定数の使い方で、計算値を...
-
コンボボックスの名前を変数に...
おすすめ情報