randomSeed()
randomSeed()は擬似乱数ジェネレータを初期化し、乱数シーケンスの任意の点で開始させます。 このシーケンスは、非常に長くランダムであるが、常に同じです。
書式
void randomSeed(unsigned int seed)
擬似乱数ジェネレータを初期化します。
引数
seed :乱数の種を初期化するために使用される数値。 0を指定することはできません。
解説
random()によって生成された一連の値が異なる場合、後でスケッチを実行する際にrandomSeed()を使用して、乱数ジェネレータを無作為ピンで初期化します(たとえば、未接続ピンのanalogRead()など)。
逆に、正確に繰り返す擬似乱数シーケンスを使用することが時には有用な場合もあります。 これは、ランダムシーケンスを開始する前に、固定数でrandomSeed()を呼び出すことで実現できます。
利用例
次のスケッチでは、ピン0のADC読み値に基づいて乱数の種が初期化されます。このピンが接続されていない場合、スケッチは実行されるたびに異なる値をシリアルモニタに出力する必要があります。 code:sample1.ino
long randNumber;
void setup() {
pinMode(0, INPUT_ANALOG);
randomSeed(analogRead(0));
}
void loop() {
randNumber = random(300);
SerialUSB.println(randNumber);
delay(50);
}
関連項目
このドキュメントはleafLabs, LLC.が執筆し、たま吉が翻訳・一部加筆修正したものです。