random()

[Véletlen számok]

Leírás

A random (véletlen) függvény pszeudo-véletlen számokat generál.

Szintaxis

random(max)
random(min, max)

Paraméterek

min: a véletlen érték alsó határa, beleértve (nem kötelező).
max: a véletlen érték felső határa, kizárva.

Visszatérési érték

Min és max-1 közötti véletlen szám. Adattípus: long.

Példa

A kód véletlen számokat generál és megjeleníti azokat.

long randNumber;

void setup() {
  Serial.begin(9600);

  // ha a 0. analóg bemeneti kivezetés nincs csatlakoztatva, a
  // véletlenszerű analóg zaj hatására a randomSeed() hívása különböző
  // magszámokat generál minden alkalommal, amikor a vázlat fut.
  // a randomSeed() ezután megkeveri a véletlenszerű függvényt.
  randomSeed(analogRead(0));
}

void loop() {
  // nyomtat egy véletlen számot 0-tól 299-ig
  randNumber = random(300);
  Serial.println(randNumber);

  // nyomtat egy véletlen számot 10-től 19-ig
  randNumber = random(10, 20);
  Serial.println(randNumber);

  delay(50);
}

Megjegyzések és figyelmeztetések

Ha fontos, hogy a random() által generált értéksorozat eltérjen egy vázlat későbbi végrehajtásakor, használja a randomSeed()-et a véletlenszám-generátor inicializálásához egy meglehetősen véletlenszerű bemenettel, mint például az analogRead() egy nem csatlakoztatott pinen.

Ezzel szemben alkalmanként hasznos lehet pontosan ismétlődő pszeudo-véletlen sorozatokat használni. Ezt úgy érheti el, hogy a randomSeed() függvényt egy fix számmal hívja meg, mielőtt elindítaná a véletlenszerű számsort.

A max paramétert annak a változónak az adattípusa szerint kell kiválasztani, amelyben az értéket tároljuk. Mindenesetre a generált érték abszolút maximuma long esetén (32 bit - 2 147 483 647). A max érték magasabbra állítása nem okoz hibát a fordítás során, de a vázlat végrehajtása során a generált számok nem az elvárásoknak megfelelően alakulnak.

Lásd még