random

説明

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

タイトルとURLをコピーしました