random()

名称

random()

説明

疑似乱数を生成する。

書式

long random(long max);

long random(long min, long max);

引数

min 生成させる乱数の下限値(その値を含む)。
max 生成させる乱数の上限値(その値を含まない)。

戻り値

minからmax-1までの乱数値。

使用例

以下のコードは、乱数を生成して表示する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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()によって生成される値列が異なることが重要なのであれば、何も接続していないピンをanalogRead()で読んだ値のような、とても乱雑な値をrandomSeed()に与えて、乱数生成器を初期化する。

逆に、同じ疑似乱数系列を利用することが有効な場合もある。これは、乱数系列を利用する前に、randomSeed()を同一の値を使って呼び出すことで実現できる。

パラメータのmaxは値が格納される変数のデータ型に従って選ぶ必要がある。どんな場合でも、絶対的な最大値は、long型の定数(32 bit - 2,147,483,647)である。maxをより大きい値に設定してもコンパイル時にはエラーとならないが、スケッチの実行時に生成される数値は期待した通りではない。

参照

訳者註

minを省略した場合は、min=0とみなされる。

minがmax以上の場合は、常にminが返される。

オリジナルのページ

https://www.arduino.cc/reference/en/language/functions/random-numbers/random/

Last Revision: 2019/02/21

実装の解析

まだ解析していません。

最終更新日

January 4, 2024

inserted by FC2 system