"Wahre" Zufallszahlen wie realisieren?

dav133

Mitglied
Hallo,

ich habe ein mittelschweres Problem mit Visual Basic 6 SP6.

Mit der normalen random-Funktion bekomme ich keine wirklichen Zufallszahlen. Denn bei jedem 3ten oder 4ten Start der Funktion spuckt diese wieder die selbe Anfangszahl aus. Somit scheint VB auf eine interne Liste zurückzugreifen, und nicht wirklich "random" zu arbeiten.

Naja, ich möchte nun aber eine Zufallszahl zwischen 1 und 20 (einschließlich 1 und 20) ausgeben lassen. Mir kam es schon in den Kopf, die aktuelle Uhrzeit mit einzubauen, da die ja immer unterschiedlich ist, jedoch erstickte auch dieser Ansatz im Keim.

Wäre für Hilfe sehr Dankbar,

Mit freundlichen Grüßen
 
dividiere und multipliziere die Zufallszall die du erhälst mit dem datum bis es passt das ist die einzige möglchkeit an vernünftige Zufallswerte zu kommen.


zum beispiel so :

Code:
Private Sub Form_Load()

Randomize

Dim dblRandom As Double
Dim dblDate As Double
Dim intZufallszahl As Integer
dblDate = CDbl(Now)

dblRandom = ((Rnd * 20) + 1) / dblDate
dblDate = CDbl(Now)

dblRandom = dblRandom * dblDate

intZufallszahl = CInt(dblRandom)

Call MsgBox(intZufallszahl)

End Sub


Gruß bb
 
Zuletzt bearbeitet:
Hallo,

zuerst einmal danke für die schnelle Antwort. Leider erhalte ich durch diese Methode meines Wissens nach keine wahren und realistischen - d.h. ausgeglichenen - Zufallszahlen. Denn mit je mehr Bedingungen eine solche Abfrage verknüpft ist, desto unausgeglichener dürften die Zahlen doch schließlich auftreten.

Ich hoffe, ich irre mich nicht, denn mir geht es in erster Linie um eine ausgeglichene Verteilung auf die Einzelzahlen.

Mit freundlichen Grüßen,

David
 
da war ich nicht schnell genug mit editieren

da hast du mit sicherheit recht was die bedingungen angeht aber das problem mit den zufallszahlen ist, das die Randomize funktion (auch in anderen programmiersprachen) beim ersten Start eigentlich immer die gleiche Zahl liefert.

Um dies zu relativieren könntest du zum beispiel auch die rnd funktion mehrfach aufrufen z.b. mit einer scheinbar zufälligen anzahl (ebenfalls über rnd ermittelt ) sonst schau mal hier du bist ja nicht der einzige mit diesem problem

http://www.activevb.de/rubriken/faq/random.html


Gruß bb
 
Zurück