ランダム性のアルゴリズムに関して助けが必要です。だから問題は。
8 時間の間に 50 のイベントが発生します。イベントはランダムな時間に発生する可能性があります。これは、毎秒 50/(8*60*60)= .001736 のイベントが発生する可能性があることを意味します。ランダム生成アルゴリズムでこれを行うにはどうすればよいですか?
乱数を取得できます
int r = rand();
double chance = r/RAND_MAX;
if(chance < 0.001736)
then event happens
else
no event
しかし、ほとんどの場合、rand() は 0 および 0<0.001736 を返し、必要以上のイベントを取得しています。
助言がありますか?
申し訳ありませんが、チャンスをダブルチャンスとして計算したことを忘れてしまいました = (static_cast )(r) / (static_cast)(RAND_MAX);
static_castからダブルを削除しました
ダブルチャンス = (ダブル)r/(ダブル)(RAND_MAX);