0

OK 54 から 212 までの偶数の乱数を作成する必要があります。唯一の問題は、単一のステートメントで実行する必要があることです。範囲内で乱数を生成するクラスがありますが、前述のように、単一のステートメントで実行したいと考えています。これを思いついたのですが、正しく動作していません。何か案は?

int main()
{

    srand( time(NULL));
    int i;

    i =  (rand() % 106) * 2;

    cout << i;


    return 0;
}
4

1 に答える 1

10

間隔で任意の数値を生成し[27, 106]、2 を掛けます。問題は、下限がないことです。

int i = 2 * (27 + rand() % (106 - 27 + 1))  

一般に、使用中の乱数を生成するに[a, b]は:

int i = a + rand() % (b - a + 1)

これが機能する理由を確認するには[2, 4][3, 7]などの簡単な例を試してください。

于 2010-08-01T18:58:55.540 に答える