rand

提供:cppreference.com
< cpp
移動: 案内, 検索


文法:

    #include <cstdlib>
    int rand( void );

rand()関数はゼロからRAND_MAXまでの間の整数の、疑似乱数を返します。

サンプル:

     srand( time(NULL) );
     for( i = 0; i < 10; i++ )
       printf( "乱数 #%d: %d\n", i, rand() );

乱数値を希望の大きさの数値までに制限したい場合には %(割り算の余り)は使用しないようにしてください。ランダム性が著しく減少します。適切な分散を持ち、ゼロから他の数値までの乱数を返す関数を作る場合には、以下のようにしてください:

    // floatリテラルは重要です。そうでなければ、1になった場合にオーバーフローします。
    int randomNumber(int hi)  // [0,hi] までの正しい乱数を生成して返します
    {
       // [0,1)にスケールさせます
       const float scale = rand()/float(RAND_MAX);
 
       // [0,hi] の範囲の数を返します
       return int(scale*hi + 0.5); // 明示的にキャストを行い、整数に丸めて返します
    }

関連トピック: srand

個人用ツール
名前空間
変種
操作
案内
ツールボックス
他の言語