説明
random 関数は、疑似乱数を生成します。
構文
random(max)
random(min, max)
min: 乱数値の下限値(これを含む)
max: 無作為な値の上限(排他的)
戻り値
minからmax-1の間の乱数。データ型:long
プログラム例
乱数を生成して表示するコードです。
long randNumber;
void setup() {
Serial.begin(9600);
// if analog input pin 0 is unconnected, random analog
// noise will cause the call to randomSeed() to generate
// different seed numbers each time the sketch runs.
// randomSeed() will then shuffle the random function.
randomSeed(analogRead(0));
}
void loop() {
// print a random number from 0 to 299
randNumber = random(300);
Serial.println(randNumber);
// print a random number from 10 to 19
randNumber = random(10, 20);
Serial.println(randNumber);
delay(50);
}
注意と警告
random()によって生成された一連の値が、スケッチの次の実行時に異なることが重要な場合は、randomSeed()を使用して、接続されていないピンのanalogRead()などのかなりランダムな入力で乱数ジェネレータを初期化します。
逆に、正確に繰り返す擬似乱数列を使用すると便利な場合もあります。これは、乱数列を開始する前に、固定値でrandomSeed()を呼び出すことで実現できます。
maxパラメータは、値が格納されている変数のデータタイプに応じて選択する必要があります。いずれにしても、絶対的な最大値は、生成される値の長さ(32ビット – 2,147,483,647)の性質に拘束されます。maxをより大きな値に設定してもコンパイル時にはエラーになりませんが、スケッチ実行時には期待通りの数値が生成されません。
