範囲を指定したC言語の乱数の生成方法
C言語で乱数の範囲を限定するには、剰余演算子(%)を使うことができます。
まず、rand()関数で乱数を生成し、次に剰余演算子で指定した範囲に乱数を限定します。例えば、0~Nの乱数を生成したい場合は、次のコードを使用できます:
int randomNumber(int N) {
return rand() % (N + 1);
}
こうすると、生成される乱数は0~N(0、Nを含む)となります。
MからNの間の乱数を生成したい場合、次のようなコードを使用できます:
int randomNumberInRange(int M, int N) {
return M + rand() % (N - M + 1);
}
この方法を使用すると、生成した乱数はMとNの間(MとNを含む)にあります。
乱数をよりランダムにするためには、使用する前に srand() 関数で乱数の種を初期化する必要がある。種にシステムの現在時刻を使うには、以下のように time() 関数を使用できます。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int randomNumberInRange(int M, int N) {
return M + rand() % (N - M + 1);
}
int main() {
srand(time(NULL)); // 初始化随机数种子
int randomNum = randomNumberInRange(0, 10);
printf("随机数: %d\n", randomNum);
return 0;
}
プログラムを実行するたびに、生成される乱数は変化します。