Forum: PC-Programmierung Byteviewer Control mit Zufallszahlen füllen VB 2008


von Rnd (Gast)


Lesenswert?

Hallo Leute

Ich hoffe ihr könnt mir helfen. Will in VB2008 das Byteviewer Control 
mit Zufallszahlen füllen. Leider will der Code nur bis zur Zelle 255 
arbeiten. Dann fängt er wieder von vorne an :-(

Hier mal mein code (weis könnte man schöner schreiben):

        Dim arr(5000) As Byte
        Dim i As Long
        Dim a As Byte

        For i = 0 To UBound(arr)
            Randomize()
            a = Int(System.Math.Sqrt(Int(Rnd() * 255) * Int(Rnd() * 
255)))
            arr(i) = a
        Next i
        byteviewer.SetBytes(arr)

Weis jemand eine Lösung für dieses Problem?

mfG
Rnd

von Timmo H. (masterfx)


Lesenswert?

Also bei mir gehts. Läuft 5000 mal durch.

von Rnd (Gast)


Lesenswert?

Bei mir widerholen sich die Werte nach 256 Zeichen wieder :-(

von spess53 (Gast)


Lesenswert?

Hi

>Bei mir widerholen sich die Werte nach 256 Zeichen wieder :-(

Nimm mal das Randomize() aus der Schleife raus.

>        For i = 0 To UBound(arr)
>            Randomize()

->        Randomize()
->        For i = 0 To UBound(arr)
          .....

Ab einer bestimmten Anzahl von (Pseudo)-Zufallswerten wird sich das 
immer wiederholen. Stichwort: LFSR

MfG Spess

von Timmo H. (masterfx)


Lesenswert?

Jo genau.
Das Randomize() mischt den "Zufallsstapel" von dem durch Rnd() die 
Zahlen gezogen werden. Wenn man Randomize() ständig aufruft wiederholen 
sich die Zahlen irgendwann. Es ist eben nur Psudo-Zufall.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.