vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Pringlos
Datum: 06.10.10 10:21

Hallo.

Mein Programm "würfelt" 6 unterschiedliche Zahlen aus, niemals doppelte.
Diese sind dann in einer Collection. Wie kann ich die jetzt einer Textbox oder einer Listbox übergeben?

Code des gesamten Programms...

Public Class form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
 
 
        ListBox1.Text = GibSechsZahlen(ListBox1.Text)
 
 
    End Sub
 
 
    Private Function GibSechsZahlen() As Collection
 
 
        ' Initialize den random-number generator.
        Randomize()
        ' Generiere zufällige Zahl zwischen 1 und 6.
        Dim zahl As Integer
        Dim i As Integer
        Dim cLottoZahlen As New Collection                                  _
          'Mit einem Collection-Objekt von Visual Basic lässt sich auf eine  
        For i = 1 To 6                                                      _
        'zusammenhängende Gruppe von Elementen bequem in Form eines einzelnen 
        ' Objekts verweisen.
 
 
            Dim bbadinteger As Boolean = False
            zahl = GibLottoZahl()
            MessageBox.Show("LOTTOZAHL:" & zahl)
 
            If cLottoZahlen.Count > 0 Then
                Dim j As Integer
                For j = 1 To cLottoZahlen.Count
                    If cLottoZahlen.Item(j) = zahl Then
                        bbadinteger = True
                        Exit For
                    End If
                Next j
            End If
 
 
            If bbadinteger = True Then
                'zurueck zum Anfang, damit wir eine neue Zahl bekommen!
                i = i - 1
            Else
                cLottoZahlen.Add(zahl)
            End If
 
        Next i
 
        Return cLottoZahlen
 
    End Function
 
 
    Private Function GibLottoZahl() As Integer
        Return CInt(Int((49 * Rnd()) + 1))
    End Function
 
End Class
Ich bekomme hier immer folgenden Fehler.

ListBox1.Text = GibSechsZahlen(ListBox1.Text)
[u]Das Argument Index ist kein gültiger Wert.



Was mache ich falsch?

Danke schonmal.


______________________________________________________


-----

-.-

Beitrag wurde zuletzt am 06.10.10 um 10:27:03 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Return collection aber wie benutzen ? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 10:29

Vergiss Collection, verwende zB List(Of Integer). Das kannst du listBox.DataSource direkt zuweisen. Umd eine TextBox damit zu befüllen kannst du in einer Schleife einen String zusammenstellen. Für diese Aufgabe hast du ja schon eine ganze Menge Hilfe bekommen.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Return collection aber wie benutzen ? 
Autor: Pringlos
Datum: 06.10.10 10:53

Ja okay, danke.

Das Ding ist halt dass ich das mit einer Collection realisieren möchte.

Wieso bekomme ich dabei einen Indexfehler? Wie lässt sich der in meinem Code beheben?

____________________


-----

-.-

Beitrag wurde zuletzt am 06.10.10 um 10:54:53 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Return collection aber wie benutzen ? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 11:11

Naja, oder du könntest auch .Net lernen und benutzen anstatt dich noch mit uralten VB6 Sachen zu beschäftigen. Aber du übergibst ListBox1.Text als Parameter zu einer Routine, die keine Parameter hat. Der Parameter wird deswegen als Index des Rückgabewertes (der Collection) betrachtet. Und du weist der listBox1.Text Eigenschaft dann eine Collection zu. Ich weiß nicht wozu das gut sein soll, klappen wie du erwartest wird es wohl auch nicht.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Return collection aber wie benutzen ? 
Autor: Pringlos
Datum: 06.10.10 11:49

Und wie würde es im Programmcode dann richtig heißen? Kannst du freundlicherweise
die fehlenden Programmcodes einbauen?

Wäre dir ultradankebar.

Ich weiss jetzt nämlich nicht was in die Funktion reinkommt. Ich mein, ich übergebe der Funktion ja nichts ?!


-----

-.-

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Return collection aber wie benutzen ? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 12:11

Ich weiß nicht was du erreichen willst. Außerdem ist das Forum nicht wirklich hier um Code fertig zu schreiben. Deine Routine liefert eine VB Collection:
Dim c As Collection = GibSechsZahlen()
Dann musst du wissen was du damit machen willst. Du kannst ein VB Collection zB auch als Datenquelle verwenden:
ListBox1.DataSource = c
Dann siehst du immerhin die sechs Werte.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Pringlos
Datum: 06.10.10 13:09

Ja und genau das tu ich nicht, weil Collection nicht zu einem String konvertiert werden kann und ich will meine 6 Werte in einer Textbox oder Listbox angezeigt haben.


Sprich:

Public Class form1
 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
 
        Dim myLottoZahlen As New Collection
 
        myLottoZahlen = GibSechsZahlen()
 
        Dim sAusgabeString As String
 
        sAusgabeString = ""
 
        TextBox1.Text = sAusgabeString
    End Sub
 
 
    Private Function GibSechsZahlen() As Collection
 
 
        ' Initialize den random-number generator.
        Randomize()
        ' Generiere zufällige Zahl zwischen 1 und 6.
        Dim zahl As Integer
        Dim i As Integer
        Dim cLottoZahlen As New Collection                      'Mit einem 
        ' Collection-Objekt von Visual Basic lässt sich auf eine  
        For i = 1 To 6                                          _
          'zusammenhängende Gruppe von Elementen bequem in Form eines einzelnen 
        ' Objekts verweisen.
 
 
            Dim bbadinteger As Boolean = False
            zahl = GibLottoZahl()
            MessageBox.Show("LOTTOZAHL:" & zahl)
 
            If cLottoZahlen.Count > 0 Then
                Dim j As Integer
                For j = 1 To cLottoZahlen.Count
                    If cLottoZahlen.Item(j) = zahl Then
                        bbadinteger = True
                        Exit For
                    End If
                Next j
            End If
 
 
            If bbadinteger = True Then
                'zurueck zum Anfang, damit wir eine neue Zahl bekommen!
                i = i - 1
            Else
                cLottoZahlen.Add(zahl)
            End If
 
        Next i
 
        Return cLottoZahlen
    End Function
 
 
    Private Function GibLottoZahl() As Integer
        Return CInt(Int((49 * Rnd()) + 1))
    End Function
End Class
Und wie lassen sich die 6 Zahlen die ich mir generieren lasse in den beiden Funktionen in einer Textbox anzeigen? Dabei muss ich aber eine Collection verwenden.

Deswegen hab ich dich ja um paar Codes gebeten.

Ich habs jetzt hinbekommen. Nur müssen die einzelnen Elemente der Collection ausgelesen werden und in sAusgabeString eingelesen werden.

Kannst du mir dabei helfen?

__________________________________________________________________________________


-----

-.-

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 13:26

Der Code, den ich dir gerade gegeben habe zeigt die Liste in der ListBox. Und du hattest ja schon zig Beispiele wie du aus einer Collection einen Komma-getrennten String anlegst.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Pringlos
Datum: 06.10.10 14:15

Ich bekomms einfach nicht hin.

___

Nein nicht aus einer Collection, aus einem String.



So funktionierts auch nicht.


   Private Function GibSechsZahlen() As Collection
 
 
        ' Initialize den random-number generator.
        Randomize()
        ' Generiere zufällige Zahl zwischen 1 und 6.
        Dim zahl As Integer
        Dim i As Integer
        Dim cLottoZahlen As New Collection                      'Mit einem 
        ' Collection-Objekt von Visual Basic lässt sich auf eine  
        For i = 1 To 6
 
            'zusammenhängende Gruppe von Elementen bequem in Form eines 
            ' einzelnen Objekts verweisen.
 
 
            Dim bbadinteger As Boolean = False
            zahl = GibLottoZahl()
            MessageBox.Show("LOTTOZAHL:" & zahl)
 
            Dim k As Integer
            Dim sAusgabestring As String
            sAusgabestring = ""
 
            For k = TextBox2.Text To TextBox3.Text
                If k = zahl Then
                    sAusgabestring = sAusgabestring & CStr(zahl)
                End If
            Next k
 
            If cLottoZahlen.Count > 0 Then
                Dim j As Integer
                For j = 1 To cLottoZahlen.Count
                    If cLottoZahlen.Item(j) = zahl Then
                        bbadinteger = True
                        Exit For
                    End If
                Next j
            End If
 
 
            If bbadinteger = True Then
                'zurueck zum Anfang, damit wir eine neue Zahl bekommen!
                i = i - 1
            Else
                cLottoZahlen.Add(zahl)
            End If
 
        Next i
 
        Return cLottoZahlen
    End Function


-----

-.-

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 14:23

Ich habe keine Ahnung was du damit sagen willst. Funktionierenden Code habe ich dir schon gegeben.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Pringlos
Datum: 06.10.10 14:35

Hö? Die Codes gingen bei mir nicht, oder hab ich sie falsch eingesetzt?

Kannst nochmal erläutern oder evtl zeigen?


-----

-.-

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 14:51

Also, was an
ListBox1.DataSource = GibSechsZahlen()
was mit deinem Code am Anfang problemlos funktioniert, ist schwer zu verstehen? Wenn das zu schwer ist solltest du schleunigst etwas Zeit dazu widmen die Grundlagen zu studieren.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Pringlos
Datum: 06.10.10 15:37

Ich versteh es ja nur funktioniert dies bei mir nicht. DataSource geht bei mir nicht.

Ist ja jetzt auch egal, ich würde jetzt gerne eine Funktion schreiben die mir eine Collection zu einem String konvertiert. Könntest du mir dabei helfen?

Wie würde man das am Besten machen?


-----

-.-

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorFZelle (Moderator)
Datum: 06.10.10 16:08

Pringlos schrieb:
Zitat:

Ist ja jetzt auch egal, ich würde jetzt gerne eine Funktion
schreiben die mir eine Collection zu einem String
konvertiert.

Stiimmt doch garnicht.

Du willst das DaveS dir diese Funktion schreibt weil du gar keine Lust hast dich überhaupt mit Grundlagen zu beschäftigen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Pringlos
Datum: 06.10.10 16:27

Stimmt nicht. Sinnlose Behauptung. Ich bin DaveS sehr dankbar, dass er mir das schreibt was er schreibt. Und mehr nicht.
rundlagen müssen her, stimmt schon, aber wieso sollte ich nicht mit Hilfe anderer das Problem lösen?

Ich nutze das alles nur damit ich Verständnis für das Programmieren bekomme.
Attackier mich nicht nur weils bei mir nicht funktioniert.


-----

-.-

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 18:38

DataSource geht bei mir nicht. Natürlich geht das. Warum schreibst du solchen Quatsch? Und du hast einen ganzen Thread mit Code wo du einen String zusammenstellst mit For-Schleife. Das machst du mit For Each für deine Collection. So einfach ist das.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Manfred X
Datum: 06.10.10 19:16

Hallo Pringlos!

[I]"DataSource geht bei mir nicht."[/I] Rätselhaft!

Kann es sein, dass Du nicht mit der VB.Net Listbox arbeitest,
sondern dass sich ein veraltetes Com-Steuerelement auf Deiner Form
befindet z.B. die Microsoft Forms 2.0 Listbox? (Deklariert wäre die
im Eigenschaftenfenster als AXMSForms.AXListbox)

Übrigens: In VB.Net steht mit der Klasse Random ein wesentlich
besser ausgestatteter Pseudozufallszahlengenerator zur Verfügung,
der bestimmten statistischen Anforderungen genügt.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 19:35

Was für eine recherché* Idee, vielleicht befindet sich sogar eine Java Swing ListBox in seiner ToolBox, wäre mir nie eingefallen.

* Englisch

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Christian25
Datum: 06.10.10 20:13

Vielleicht weil andere im Forum nicht unbedingt da sind, die elementarsten Grundlagen zu vermitteln. Wenn ein ganz spezifisches Problem da ist, dann hilft man auch gerne, aber das sind Sachen, die ganz am Anfang stehen und nicht wirklich unmöglich sind.

Mit den Informationen, die Dave und die anderen dir gegeben haben könnte man das z.B. auch so schreiben.

    Private Function GibZahlen() As List(Of Integer)
        Dim zahl As Integer
        Dim zahlen As New List(Of Integer)
        Dim rnd As New Random
 
        Do
            zahl = rnd.Next(1, 50)
 
            If Not zahlen.Contains(zahl) Then
                zahlen.Add(zahl)
            End If
        Loop Until zahlen.Count = 6
 
        Return zahlen
    End Function
 
    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles btnStart.Click
        lstLottozahlen.DataSource = GibZahlen()
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Snoopy
Datum: 06.10.10 20:21

Und wenn Du dann noch ein zahlen.sort() vor dem Return setzt, dann sind die Lottozahlen noch sortiert
Aber was ist mit der Zusatzzahl, Super6 und Spiel 77

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 20:33

Gibt's nur bei Ultimate.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: keco
Datum: 06.10.10 20:57

Vorsicht Snoopy, nicht so viele Ideen einbringen. Bei seiner letzten Frage mit den Umdrehen gab es so viele mögliche Methoden, dass er vermutlich vollständig verwirrt wurde. So wie jetzt auch. ;)

@Pringlos:
Du verschwendest von anderen aus dem Forum einfach wertvolle Zeit. Wir wollen zwar helfen, aber nicht uns die Zeit rauben lassen, weil jemand schlichtweg zu faul ist sich die Grundlagen anzuschauen. Ich selbst habe folgendes Buch durchgearbeitet und konnte mein Wissen damit festigen: http://openbook.galileocomputing.de/visual_basic/

Das ist wirklich grundlegend, einfach, strukturiert und verständlich erklärt. Ich hoffe auch, dass du dir diesen Beitrag zu Herzen nimmst, ich möchte nicht, dass ich damit meine Zeit verschwendet habe und bei einer Wand mehr Erfolg hätte. Enttäusch uns nicht. Viel Erfolg dabei.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 06.10.10 21:10

Und eine Ergänzung für TextBox
        Dim sep As String = String.Empty
        TextBox1.Clear()
        For Each item In GibZahlen()
            TextBox1.AppendText(sep & item)
            sep = ","
        Next

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Snoopy
Datum: 06.10.10 21:21

Ok, keco - ich habe noch eine Idee. Einen automatischen "Tippschein Ausfüller"
Dafür müssen wir aber erst eine Steuerplatine entwickeln - einfach auf einen Drucker jagen ist zu
einfach. Dann fehlt nur noch die Steuerung in mativem Assembler Code. Da muss ich passen, dass übersteigt
meine Fähigkeiten. Mal Dave fragen

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Manfred X
Datum: 06.10.10 21:42

Hallo Christian!

Ergänzender Hinweis zum Pseudozufallszahlengenerator:

Du erstellst bei jedem Aufruf von GibZahlen (lokal) eine
neue Instanz von Random.
Die VB-Doku empfiehlt aber, den Generator nur einmal zu
erstellen (und ggf. zu initialisieren). Alle Abfragen von
Zufallszahlen in einem Programm sollten über die gleiche
Instanz erfolgen. Dadurch ist gewährleistet, dass die
mathematischen Eigenschaften dieser Klasse zum Tragen kommen
und ein optimaler (Pseudo-)Zufallsprozess läuft.

Z.B. so:

     Static rnd As Random
 
     If rnd Is Nothing Then
        rnd = New Random(CInt(Microsoft.VisualBasic.Timer * 1000))
     End If


Beitrag wurde zuletzt am 06.10.10 um 21:43:29 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 07.10.10 10:26

Um genau richtig zu sein steht in MSDN:

Da die Uhr jedoch eine endliche Auflösung hat, werden durch das Erstellen von unterschiedlichen Random-Objekten mit dem parameterlosen Konstruktor unmittelbar nacheinander Zufallszahlengeneratoren erstellt, die identische Sequenzen von Zufallszahlen erzeugen. Dieses Problem kann vermieden werden, indem nur ein Random-Objekt erstellt wird und nicht mehrere.

und weiter

Erstellen Sie zum Verbessern der Leistung ein Random-Objekt, mit dem im Lauf der Zeit viele Zufallszahlen generiert werden können, anstatt wiederholt ein neues Random-Objekt zu erstellen, um eine Zufallszahl zu generieren.

Es geht also um Leistung, oder Probleme wenn die Objekte schnell nacheinander neu angelegt werden, was bei einer Button_Click() Routine eher unproblematisch sein wird. Die Auflösung von Microsoft.VisualBasic.Timer (1 Sekunde, mit nur 86.400 unterschiedlichen Werten) kann übrigens eventuell verbessert werden wenn man stattdessen Environment.TickCount verwendet (Millisekunden, 2,147,483,647 Werte). Oder vielleicht den parameterlosen Konstruktor. Aber noch besser

Verwenden Sie zum Generieren einer kryptografisch sicheren Zufallszahl, z. B. für das Erstellen eines zufälligen Kennworts, eine von System.Security.Cryptography.RandomNumberGenerator abgeleitete Klasse wie System.Security.Cryptography.RNGCryptoServiceProvider.

(wie ich hier immer empfohlen habe.)

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Christian25
Datum: 07.10.10 21:50

Normalerweise erstelle ich eine Instanz der Random Klasse auch global in einer Klasse und verwende dann diese. Ich habe aber diesen Weg gewählt, weil es übersichtlicher aussieht und einfacher nachzuvollziehen ist. Es sollte einfach ein Beispiel sein, mit dem Pringlos das nachvollziehen kann.

Wenn es um Performance geht, dann geb ich dir Recht, dann sollte man nur eine Instanz der Random Klasse verwenden.

Hier muss man halt immer zwischen Einfachheit und Nutzen unterscheiden.

Viele Grüße,

Christian
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: Manfred X
Datum: 08.10.10 01:05

Hallo!

Mein Beitrag zielt nicht auf Effizienz oder Verschlüsselung,
sondern soll auf einen statistisch relevanten Gesichtspunkt
von Pseudozufallszahlen-Generatoren hinweisen.

Wenn man eine große Anzahl von Zufallsfolgen benötigt und
alle Zahlen in allen Folgen über die gleiche Instanz
von Random abfragt, dann gelten auch im Hinblick auf die
Abhängigkeiten ZWISCHEN diesen Folgen die (ausgeklügelten)
mathematischen Eigenschaften des Algorithmus, der bei der
Klasse "Random" genutzt wird.

Wenn man für jede Folge von Zufallszahlen eine neue Instanz erstellt
bzw. eine Re-Initialisierung durchführt, dann gelten die
Eigenschaften des Random-Verfahrens nur innerhalb
der einzelnen Folge (weil der Algo. stets eine Startfolge
erstellt). Es ist NICHT SICHERGESTELLT, dass eine solche Menge
von (zufällig intialisierten) Startfolgen einen im Hinblick auf
die üblichen Beurteilungskriterien qualitativ vergleichbaren
statistischen Gesamtprozess erstellt.

Eine Re-Initialisierung des PZ-Generators sollte deshalb erst nach der
Abfrage einer "hinreichend großen" Anzahl von einzelnen Zufallsfolgen
durchgeführt werden.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Lottozahlengenerator. Indexfehler. Wieso? 
Autor: ModeratorDaveS (Moderator)
Datum: 08.10.10 09:18

Jaja, ist alles ganz egal und auch endlos bestreitbar, wenn die Zahlen möglichst echt zufällig sein sollen verwendet man solche Klassen gar nicht. Wie immer denkst du viel zu klug und verpasst wie üblich den Anschluss.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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