FreePascal Zufallszahlen?

2 Antworten

Du musst einfach nur vor random Randomizeausführen, damit es klappt. Dieser Befehl setzt die aktuelle Uhrzeit als Seed.

Mein Problem ist nun, dass das Programm immer die selbe Zufallszahl ausspuckt. Wie kann ich das verhindern und was bringt der Befehl" randomize"?

Sieh dir die beiden Beispiele an, die auf diesen Seiten zu finden sind:

Damit das Programm bei jedem Start neue Zufallszahlen generiert, solltest du einmal zu Beginn Randomize aufrufen. So wird der Seed für die Zufallszahlen anhand der Uhrzeit berechnet, also immer anders sein. Ansonsten würde die Funktion Random immer den selben Seed verwenden.

Im Optimalfall wäre es noch gut zu wissen, wie ich über einen Array 6 Zufallszahlen von 1-49 generieren kann.

Verwende eine Schleife, die so lange läuft, bis 6 Zufallszahlen erzeugt wurden, die nicht gleich sind.

Eine Vorgehensweise könnte spontan gedacht so aussehen (in Pseudo-Code):

counter = 0;

A: solange counter < 6 erzeuge zufallszahl zwischen 1 und 49 B: gehe durch array wenn zufallszahl in akt. element, ueberspringe und starte nächste Iteration von A wenn akt. element null/undefined/-1/... ordne zufallszahl zu inkrementiere counter starte nächste Iteration von A

Den Rest kannst du selbst ausarbeiten.