Visual Basic 2010 - Random Nummer

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ThePlexian.

    Visual Basic 2010 - Random Nummer

    Hallo,

    Ich habe einen Random Zahlen Generator gebaut. Ich möchte aber, dass nicht alle Zahlen die gleiche Warscheinlichkeit haben z.b

    Eine Zahl zwischen 1-10

    Ich möchte das z.b 1 häufig kommt und die 10 selten. Wie mache ich das ?? :)
    Es geht auch ohne Liste. Wenn du z.B. willst, dass die 1 am häufigsten vorkommt und die 10 am seltensten könntest du es auc so regeln:

    VB.NET-Quellcode

    1. Dim rnd as new Random()
    2. Function getRandom() as Integer
    3. Return 11 - CInt(Math.Ceiling(Math.Sqrt(rnd.Next(1,101))))
    4. End Function


    Die 10 taucht dabei mit einer Wahrscheinlichkeit von 1%, die 1 mit einer Wahrscheinlichkeit von 19%.
    Aber das ist dann potenziell verteilt, das ist vllt nicht erwünscht.
    Ich würde, anstatt zig Elemente einer List hinzuzufügen, erstmal jedem Endwert eine Wahrscheinlichkeit zuordnen (dict), dann eine Randomzahl zwischen 0 und 1 bekommen (Double) und dann gucken wo das reingehört.

    Bsp: 1 - 25% ; 2 - 20% ; 3 - 10% ; 4 - 35% ; 5 - 10%
    Bereich 0-0.25 ist 1; 0.25-0.45 ist 2; 0.45-0.55 ist 3; etc. (Obere Grenze ist excl.)
    Rand: 0,35783, wäre dann eine 2.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais