tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
817
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dav133 dav133 ist offline Mitglied Bronze
    Registriert seit
    Dec 2004
    Beiträge
    44
    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
     

  2. #2
    Avatar von Alex F.
    Alex F. Alex F. ist offline Mitglied Smaragd
    Registriert seit
    Jul 2004
    Beiträge
    1.034
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    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
    Geändert von Alex F. (26.04.05 um 19:41 Uhr)
     

  3. #3
    dav133 dav133 ist offline Mitglied Bronze
    Registriert seit
    Dec 2004
    Beiträge
    44
    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
     

  4. #4
    Avatar von Alex F.
    Alex F. Alex F. ist offline Mitglied Smaragd
    Registriert seit
    Jul 2004
    Beiträge
    1.034
    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
     

  5. #5
    dav133 dav133 ist offline Mitglied Bronze
    Registriert seit
    Dec 2004
    Beiträge
    44
    Hallo,

    vielen Dank für deine Hilfe

    Mit freundlichen Grüßen
     

Ähnliche Themen

  1. Kann man dieses Query auch ohne "like" realisieren?
    Von port29 im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 15.09.10, 11:36
  2. "Das wahre Office" - Probleme mit digitalriver
    Von t0ny im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 15.03.10, 18:19
  3. Aufgaben-"Verwaltung" - Wie realisieren?
    Von String im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 08.02.10, 10:39
  4. Wie kann ich einen "Schwebe-Effekt" realisieren?
    Von boelky im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 2
    Letzter Beitrag: 16.04.09, 13:37
  5. Count"up" realisieren
    Von poorboy im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 28.11.03, 09:58