私はこのコードを実行しようとすると、10から19の数字も返されますが、20から30の範囲で戻り値を返します。パターンは%min + rangeですが、%50 + 50回バックナンバーは50〜99ですが、それ以外の最小値は機能しません。どうして?なぜrand()%20 + 10は10代をC++で返すのですか?
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
srand(time(0));
for(int i=1; i<100; i++)
{
cout<<rand()%20+10<<endl;
}
return 0;
}
試してみてください 'rand()%10 + 20' – harper
これはあなたの質問には答えませんが、[this](https://stackoverflow.com/questions/10984974/why-do-people-say-there-あなたの乱数分布が心配な場合は、乱数生成器を使用するときはモジューロバイアスです。 – mkal