Diese Seite ist auch in 2 anderen Sprachen verfügbar.

random()

[Random Numbers]

Beschreibung

Die Zufallsfunktion generiert Pseudozufallszahlen.

Syntax

random(max)
random(min, max)

Parameter

min - Untere Grenze des Zufallswerts, inklusiv (optional).
max - Obere Grenze des Zufallswerts, exklusiv.

Rückgabewert

Eine Zufallszahl zwischen min und max-1. Datentyp: long.

Beispielcode

Der Code generiert Zufallszahlen und zeigt sie an.

long randNumber;

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

  // Wenn der analoge Eingangspin 0 nicht verbunden ist, wird zufälliges analoges
  // Rauschen mit randomSeed() benutzt, um verschiedene Seed-Zahlen bei jedem
  // Lauf des Sketches zu generieren.
  // randomSeed() ruft dann die random()-Funktion auf.
  randomSeed(analogRead(0));
}

void loop() {
  // Eine Zufallszahl zwischen 0 und 299 ausgeben
  randNumber = random(300);
  Serial.println(randNumber);

  // Eine Zufallszahl zwischen 10 und 19 ausgeben
  randNumber = random(10, 20);
  Serial.println(randNumber);

  delay(50);
}

Anmerkungen und Warnungen

Wenn es für eine von random() erzeugte Folge von Werten wichtig ist, dass diese bei nachfolgenden Ausführungen eines Skecthes unterschiedlich ist, verwende randomSeed(), um den Zufallszahlengenerator mit einer ziemlich zufälligen Eingabe zu initialisieren, z. B. analogRead() auf einem nicht verbundenen Pin.

Umgekehrt kann es gelegentlich nützlich sein, Pseudozufallssequenzen zu verwenden, die sich genau wiederholen. Dies kann durch Aufrufen von randomSeed() mit einer festen Zahl erreicht werden, bevor die Zufallssequenz gestartet wird.

Der Parameter max sollte entsprechend dem Datentyp der Variablen ausgewählt werden, in der der Wert gespeichert ist. In jedem Fall ist das absolute Maximum an die Länge des generierten Werts (32 Bit-2.147.483.647) gebunden. Wenn du max auf einen höheren Wert setzt, wird beim Kompilieren kein Fehler generiert. Während der Ausführung des Sketches werden jedoch die Zahlen nicht generiert wie erwartet.

Siehe auch