説明
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をより大きな値に設定してもコンパイル時にはエラーになりませんが、スケッチ実行時には期待通りの数値が生成されません。