vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Problem mit Zufallszahlengenerator 
Autor: Kuno60
Datum: 15.05.14 16:02

Hallo,
hier noch ergänzend 2 Beispiele, die ohne Überprüfung der Zahlen funktionieren und bessere Zufallszahlen erzeugen als die Pseudozufallszahlen von Rnd oder Random.
Das 1. Beispiel verwendet die VB6 Funktionen Randomize, Rnd und Int.
Private Sub LottoZahlen1()
    'Array für alle 49 Zahlen (Index 0 wir nicht benutzt).
    Dim Zufall(49) As Integer
    '--------------------------------------------
    'Array mit allen Zahlen von 1 bis 49 füllen.
    For i = 1 To 49
      Zufall(i) = i
    Next
    '--------------------------------------------
    'Alle Zahlen im Array mischen.
    'ab 25000 Mischvorgänge sind die Zahlen wirklich zufällig.
    Randomize()
    Dim zuf1, zuf2, zw As Integer
    For i = 1 To 25000
      zuf1 = CInt(Int(49 * Rnd())) + 1 'erste Zufallszahl (Index für's Array)
      zuf2 = CInt(Int(49 * Rnd())) + 1 'zweite Zufallszahl (Index für's Array)
      'Zahlen vertauschen
      zw = Zufall(zuf1)
      Zufall(zuf1) = Zufall(zuf2)
      Zufall(zuf2) = zw
    Next
    '--------------------------------------------
    'Die ersten 6 Zahlen in ein neues Array kopieren und sortieren.
    Dim Ergebnisse(5) As Integer
    Array.Copy(Zufall, 1, Ergebnisse, 0, 6)
    Array.Sort(Ergebnisse)
    '--------------------------------------------
    'Anzeige der 6 Zahlen
    Label1.Text = Ergebnisse(0).ToString
    Label2.Text = Ergebnisse(1).ToString
    Label3.Text = Ergebnisse(2).ToString
    Label4.Text = Ergebnisse(3).ToString
    Label5.Text = Ergebnisse(4).ToString
    Label6.Text = Ergebnisse(5).ToString
  End Sub
Das 2. Beipiel verwendet nur NET Funktionen.
  Private Sub LottoZahlen2()
    'Ein Array mit allen 49 Zahlen erstellen (Index 0 bis 48).
    Dim Zufall = Enumerable.Range(1, 49).ToArray
    '--------------------------------------------
    'Alle Zahlen im Array mischen.
    'ab 25000 Mischvorgänge sind die Zahlen wirklich zufällig.
    Dim rnd As New Random, zuf1, zuf2, zw As Integer
    For i = 1 To 25000
      zuf1 = rnd.Next(49) 'erste Zufallszahl (Index für's Array)
      zuf2 = rnd.Next(49) 'zweite Zufallszahl (Index für's Array)
      'Zahlen vertauschen
      zw = Zufall(zuf1)
      Zufall(zuf1) = Zufall(zuf2)
      Zufall(zuf2) = zw
    Next
    '--------------------------------------------
    'Die ersten 6 Zahlen in ein neues Array kopieren und sortieren.
    Dim Ergebnisse = Zufall.Take(6).OrderBy(Function(x) x).ToArray
    '--------------------------------------------
    'Anzeige der 6 Zahlen
    Label1.Text = Ergebnisse(0).ToString
    Label2.Text = Ergebnisse(1).ToString
    Label3.Text = Ergebnisse(2).ToString
    Label4.Text = Ergebnisse(3).ToString
    Label5.Text = Ergebnisse(4).ToString
    Label6.Text = Ergebnisse(5).ToString
  End Sub
Kuno
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem mit Zufallszahlengenerator2.851rockitatvb03.05.14 12:49
Re: Problem mit Zufallszahlengenerator2.007Manfred X03.05.14 14:04
Re: Problem mit Zufallszahlengenerator1.947rockitatvb03.05.14 14:15
Re: Problem mit Zufallszahlengenerator1.993Manfred X03.05.14 14:50
Re: Problem mit Zufallszahlengenerator2.091rockitatvb03.05.14 15:02
Re: Problem mit Zufallszahlengenerator1.923Manfred X03.05.14 15:18
Re: Problem mit Zufallszahlengenerator1.921Franki04.05.14 01:28
Re: Problem mit Zufallszahlengenerator1.916GriZz03.05.14 15:40
Re: Problem mit Zufallszahlengenerator1.892Manfred X03.05.14 15:46
Re: Problem mit Zufallszahlengenerator1.950rockitatvb07.05.14 10:42
Re: Problem mit Zufallszahlengenerator1.963Manfred X07.05.14 11:19
Re: Problem mit Zufallszahlengenerator1.899Franki08.05.14 00:05
Re: Problem mit Zufallszahlengenerator1.963Kuno6015.05.14 16:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel