Unregelmäßige List of Integer in einer Zufallsvariable einbauen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Visual_Prog.

    Unregelmäßige List of Integer in einer Zufallsvariable einbauen

    VB.NET-Quellcode

    1. Dim rdn as New Random
    2. Dim zahlen as New List (of Integer)
    3. 'die list of integer hat folgende Zahlen drinne: 2,3,4,7,8,9 -> Wie man sieht eine unregemäßige Zahlenfolge
    4. Mein Versuch:
    5. Listbox.selsectedindex = rdn.Next(zahlen(0),zahlen(zahlen.count - 1))
    6. ' Probem: meine Zufallsvariable erfasst nur die ZAHLENSPANNWEITE aus der List of integer.
    7. ' Ich würde aber gerne die Zahlen INNERHALB der Liste zufällig durchlaufen lassen

    Erst einmla: Könntest du bitte versuchen deine Fragestellung mit klarer, verständlicher Schrift auszudrücken?

    Visual_Prog schrieb:

    2,3,4,7,8,9 -> Wie man sieht eine unregemäßige Zahlenfolge
    ? Wieso unregelmäßig? Unregelmäßig wäre 4,8,9,7,3,2. Das was du da hast ist allerhöchstens "Eine Folge von Zahlen mit Lücken".

    Visual_Prog schrieb:

    Ich würde aber gerne die Zahlen INNERHALB der Liste zufällig durchlaufen lassen
    Ich denke du hast die Zufallsfunktion falsch verstanden: Es ist nicht so, dass du der Funktion eine Liste von Elementen gibst und sie dir ein Element AN einer zufälligen Stelle/Position IN der Liste liefert, sondern viel mehr, dass die Funktion dir eine Zufallszahl gibt, also nicht das Element selber, sondern einfach nur eine Zahl. Die ist dann auch gar nicht abhängig davon, welche Liste du vorher übergeben hast.

    Ganz davon abgesehen, gibst du der Next() Funktion keine Liste von "Quellzahlen" sondern einen sogennanten "Seed". Da der Zufallsalgorithmus (falls man das überhaupt so nennen darf - bezieht seine "Random Werte" aus der Quarzuhr, welche in deinem PC läuft) liefert dir nie einen perfekten Zufall. Das ganze ist mehr pseudo-zufall zu sehen! Der Seed wird - afaik - als Multiplikator für den Random-Wert verwendet. Dadurch entsteht ein Eindruck von Zufälligkeit.

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    @Radinator
    Ja du hast Recht die Zahlenfolge ist nicht unregelmäßig aber mit Lücken.

    OKay ja so wie du das beschrieben hast beschreibst du ja auch genau das Problem was ich meine.

    Die Methode versteht sozusagen "Anfangszahl" und "Endzahl".

    Nur ist das Problem, dass ich eher eine Art "Zahlenarray" habe.

    Ist halt die Frage, ob man dieses Zahlenarray noch mit der Methode Random.next auffassen kann oder ob man auf einen anderen Ausruck ausweichen muss. Mir fällt leider keiner ein :/

    Visual_Prog schrieb:

    Die Methode versteht sozusagen "Anfangszahl" und "Endzahl".
    Ich denke, so kann man das auch sagen.

    Visual_Prog schrieb:

    Nur ist das Problem, dass ich eher eine Art "Zahlenarray" habe.
    Mit dem du was genau machen willst? Du hast bisher immer noch keine konkrete Fragestellung.
    WAS genau ist dein Plan?
    WELCHES Verhalten legt dein Programm bisher an den Tag? (Ok das hast du einigermaßen rübergebracht)
    WAS ist das gewünschte Verhalten?

    Visual_Prog schrieb:

    oder ob man auf einen anderen Ausruck ausweichen muss
    Vielleicht kann man deinen bisherigen Versuch ja verwenden, wenn du uns sagst, was du erreichen willst.

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Ich glaub das was @Visual_Prog meint ist das hier

    VB.NET-Quellcode

    1. Option Strict On
    2. Option Explicit On
    3. Public Module Module1
    4. Dim rnd As New Random
    5. Public Sub Main()
    6. Dim zahlen As New List(Of Integer) From {2, 3, 4, 7, 8, 9}
    7. Dim x As Integer
    8. For i As Integer = 0 To 10
    9. x = zahlen(rnd.Next(zahlen.Count))
    10. Console.WriteLine(x.ToString)
    11. Next
    12. Console.ReadKey()
    13. End Sub
    14. End Module



    Freundliche Grüsse

    exc-jdbi
    OKay vielen Dank schon mal fuer die Vorschlaege.
    Das kommt dem schon näher was ich meine aber so richtig trifft es noch nicht.
    Was ich will ist eigentlich recht banal:

    Es liegen zwei Zahlenspannen vor, wie eben die erwaehnten 2,3,4 und 7,8,9.
    Durch einen Button.Click soll eine dieser Zahlen als listbox.selectedindex ausgewählt werden, und zwar zufällig und so dass es für alles Zahlen die gleiche Warscheinlichkeit gibt, ausgewählt zu werden.

    LG
    @exc-jdbi's Code tut genau dies. Mit der zahlen-List hast du eine Liste an möglichen Indizes (234789) und mit Random.Next(zahlen.Count) wird zufällig ein Index zwischen 0 und 5 genommen (da die zahlen-Liste 6 Einträge hat). Dieser Index wird dann auf die zahlenListe angewandt und du hast eine deiner Zahlen, zufällig (und mit einer uniform distribution, weiß nicht wie das in Deutsch heißt) ausgewählt.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Plexian“ ()

    Guten Morgen @Visual_Prog

    Random gibt Pseudozahlen raus, die mit einer gleichen Wahrscheinlichkeit ausgestattet sind.

    siehe hier von Donald E. Knuth

    Quellcode

    1. "Pseudozufallszahlen werden mit gleicher Wahrscheinlichkeit aus einer endlichen Menge von Zahlen ausgewählt. ..."


    Man spührt jedoch deine Unzufridenheit. Villeicht können wir dir helfen, wenn du erklärst, was du von Random erwartest. Ich meine dazu, was du wirklich erwartest. Wie müsste die Lösung deiner Ansicht nach aussehen? Warum bist du mit den jetzigen entstehenden Zahlen nicht zufrieden. Wie würde dein Idealbild aussehen?

    Am Besten zeige uns eine/mehrere Zahlenreihe, wie es deiner Meinung nach aussehen soll. Was ist für dich akzeptabel, und was ist für dich nicht akzetabel.

    Freundliche Grüsse

    exc-jdbi

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „exc-jdbi“ ()

    Das Thema gab's vor einiger Zeit schon mal - sogar von Dir selbst: zum Thread, wobei der damalige Beitrag von @exc-jdbi wohl am besten passt.
    Ich vermute mal, dass damals die Fragen nicht ausreichend beantwortet werden konnten, oder?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo sorry für die späte Antwort.

    So ich habe jetzt nochmal den Thread von exc-jdbi gelesen und denke mal damit kommt das hin! Hab das erst nicht gecheckt!

    Ja einen ähnlichen Thread gabs es schon aber darin enstand ja dann das Problem der ungleichmäßigen Verteilung.

    Werde es bald mal testen obs klappt dann melde ich mich, am sonsten schon mal vielen Dank!