Autor Beitrag
Transmechanicus
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 03.06.03 18:59 
Ich habe eine Frage zur Random-Funktion. Selbige soll ja angeblich Zufallszahlen erzeugen - blöderweise bekomme ich in 90% der Fälle lauter "gleiche" Zufallszahlen.

Folgender Auszug aus meinem Programm sollte EIGENTLICH zufällig aus einer Ini-Datei bestimmte Werte auslesen um so ein zufälliges Gedicht zu erstellen.

Hier der Quelltext:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
inhalt:=worte.ReadString('Einleitung',inttostr((random(i))+1), '-')+' ';
randomize;
inhalt:=inhalt+worte.ReadString('Verben', inttostr(random(i)+1), '-')+' ';
randomize;
inhalt:=inhalt+worte.ReadString('Adjektive', inttostr(random(i)+1), '-')+' ';
randomize;
inhalt:=inhalt+worte.ReadString('Nominative', inttostr(random(i)+1), '-')+' ';
randomize;
inhalt:=inhalt+worte.ReadString('Endreim', inttostr(random(i)+1), '-');

Bei zwei durchläufen erhalte ich folgende Zufallszahlen:
4
4
4
4
4
4
4
8

Ach ja: die Variable i hat den Wert 9

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Di 03.06.03 19:08 
Dann mußt du dem Programm doch lediglich sagen, daß nach jedem Durchlauf die Zufallszahlen gespeichert werden sollen, sprich wenn deine erste Zahl die 4 ist, soll er danach nur eine Zufallszahl ausgeben, die nicht die 4 ist. Wenn du sagst, das Programm darf keine Zahlen doppelt lesen, mußt du es auch dem Programm mitteilen. Es kann ja nicht ahnen, daß es dir nicht paßt. :mrgreen: Und das so oft die 4 vorkommt, nenne ich Zufall. :-)

_________________
Hasta La Victoria Siempre
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: Di 03.06.03 19:13 
du darfst den zufallsgenerator (Randomize) nur ein mal initialisieren zb. in der FormCreate !!!!
Transmechanicus Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 03.06.03 19:51 
Wow viele Dank - letzteres war das Problem!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 04.06.03 01:30 
Transmechanicus hat folgendes geschrieben:
Ich habe eine Frage zur Random-Funktion. Selbige soll ja angeblich Zufallszahlen erzeugen - blöderweise bekomme ich in 90% der Fälle lauter "gleiche" Zufallszahlen.

Falls du blind tippen solltest, solltest du trotzdem mal deinen Blick auf die Tastatur senken und der F1 Taste mal 5 Minuten deiner kostbaren Zeit schenken:
Zitat:

Randomize initializes the built-in random number generator with a random value (obtained from the system clock). The random number generator should be initialized by making a call to Randomize, or by assigning a value to RandSeed.

Do not combine the call to Randomize in a loop with calls to the Random function. Typically, Randomize is called only once, before all calls to Random.

Man beachte die Hervorhebungen im zweiten Absatz. :roll: