Kurs starten

**** RND ****

RND: Zufallszahlen

RND liefert eine Zufallszahl zwischen 0 und 1. Erst zusammen mit INT wird daraus ein Würfel, eine Lottozahl oder ein zufälliger Buchstabe.

Schreibweise

FormBedeutung
PRINT RND(1)Gibt eine Kommazahl zwischen 0 und 1 aus.
INT(RND(1)*6)+1Ganze Zahl von 1 bis 6, also ein Würfel.
INT(RND(1)*N)+1Ganze Zahl von 1 bis N.
INT(RND(1)*(B-A+1))+AGanze Zahl von A bis B.

Die Formel verstehen

RND allein ist selten direkt brauchbar, denn es liefert Werte wie 0.5772157. Die übliche Formel macht daraus ganze Zahlen in einem festen Bereich, und sie lohnt sich einmal durchzudenken:

RND(1) ergibt eine Zahl von 0 bis knapp unter 1. Mal 6 genommen wird daraus 0 bis knapp unter 6. INT() schneidet die Nachkommastellen ab, übrig bleiben die ganzen Zahlen 0 bis 5. Das +1 verschiebt sie auf 1 bis 6.

Ein Würfel 10 FOR I=1 TO 5 20 W=INT(RND(1)*6)+1 30 PRINT "WURF";I;":";W 40 NEXT

Fünf Würfe. Bei jedem Start kommen andere Zahlen heraus.

Eine Zahl aus einem beliebigen Bereich

Für einen Bereich von A bis B multipliziert man mit der Anzahl der möglichen Werte und addiert den Startwert. Bei 10 bis 20 sind das elf mögliche Werte, also INT(RND(1)*11)+10.

Zahlenraten 10 Z=INT(RND(1)*10)+1 20 INPUT "DEINE ZAHL";G 30 IF G<Z THEN PRINT "HOEHER" 40 IF G>Z THEN PRINT "TIEFER" 50 IF G<>Z THEN GOTO 20 60 PRINT "RICHTIG!"

Das Abschlussprojekt aus Block 3 des Kurses.

Zufällige Buchstaben

Dasselbe Prinzip funktioniert mit Text: Man legt die erlaubten Zeichen in eine Zeichenkette und greift mit MID$ eine zufällige Stelle heraus.

Zufälliges Kürzel 10 Z$="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 20 K$="" 30 FOR I=1 TO 3 40 X=INT(RND(1)*26)+1 50 K$=K$+MID$(Z$,X,1) 60 NEXT 70 PRINT "KUERZEL: ";K$

Typische Stolperfallen

INT vergessen

Ohne INT bekommst du Kommazahlen wie 3.7182818. Für einen Würfel oder einen Index in einer Liste brauchst du ganze Zahlen.

Das +1 vergessen

INT(RND(1)*6) liefert 0 bis 5, nicht 1 bis 6. Ein klassischer Fehler, der beim Würfeln eine 0 ergibt.

Doppelte Zahlen

Zwei Ziehungen können dieselbe Zahl liefern. Wer eindeutige Zahlen braucht, etwa beim Lotto, muss sich die bereits gezogenen merken, üblicherweise in einem Feld.

Passt dazu

Im Kurs lernst du RND in Lektion 13: Abschlussprojekt: Zahlenraten. Die vollständige Referenz aller Befehle steht im Befehls-Lexikon.

HAEUFIGE FRAGEN

Fragen zu RND

Wie erzeuge ich eine Zufallszahl zwischen 1 und 100?

Mit INT(RND(1)*100)+1. Die 100 gibt an, wie viele verschiedene Werte möglich sind, das +1 verschiebt den Bereich von 0 bis 99 auf 1 bis 100.

Warum kommen bei jedem Start andere Zahlen?

Genau dafür ist RND da. Auf dem echten C64 konnte man mit einem negativen Argument eine feste Zahlenfolge erzwingen, hier liefert RND immer eine neue Zufallszahl.

Gleich selbst ausprobieren

Tippe die Beispiele in den freien Editor und sieh dir an, was passiert.

Freien Editor oeffnen →