C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: srandを1秒で何回も呼び出すときの乱数について


(過去ログ 155 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■89807 / inTopicNo.1)  srandを1秒で何回も呼び出すときの乱数について
  
□投稿者/ しー (3回)-(2018/12/30(Sun) 19:35:52)

分類:[C/C++] 

C++における乱数について

srandで時刻で乱数シードを初期化したものの、
同時刻で呼び出してしまうと同じ値が帰ってきてしまいます。

何か良い策ないでしょうか?

引用返信 編集キー/
■89808 / inTopicNo.2)  Re[1]: srandを1秒で何回も呼び出すときの乱数について
□投稿者/ Hongliang (735回)-(2018/12/30(Sun) 19:47:12)
srandは通常、プログラムの起動時に1回だけ呼び出すものです。
なお標準ライブラリのrandは擬似乱数として最低レベルの品質なので、ごく簡単な使い方をするのでもなければ他のアルゴリズムを使った実装を使った方が良いです。
引用返信 編集キー/
■89814 / inTopicNo.3)  Re[2]: srandを1秒で何回も呼び出すときの乱数について
□投稿者/ アルハンブラ (8回)-(2019/01/02(Wed) 23:05:02)
やり方はいろいろありそうです。
思いつくものでは、

1. 排他制御を入れる
  → 単純に、同じタイミングで呼び出さなければ良いだけなのでmutexなりCriticalSectionなりで良いのでは?

2. 乱数で C++11 の std::randomを使う
  → 乱数の特性を変えて複数初期化すれば同じタイミングでも問題は無いはず。
   → c.f. http://vivi.dyndns.org/tech/cpp/random.html

というものがありそうです。
引用返信 編集キー/
■89835 / inTopicNo.4)  Re[3]: srandを1秒で何回も呼び出すときの乱数について
□投稿者/ しー (4回)-(2019/01/07(Mon) 16:44:33)
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -