Der beste Weg, dies zu tun, besteht darin, eine Zufallszahl zu generieren, die gleichmäßig in einem bestimmten Satz von Zahlen verteilt ist, und dann eine Projektionsfunktion auf den Satz zwischen 0 und 100 anzuwenden, bei der die Projektion mit größerer Wahrscheinlichkeit die gewünschten Zahlen trifft.
Normalerweise besteht der mathematische Weg, dies zu erreichen, darin, eine Wahrscheinlichkeitsfunktion der gewünschten Zahlen zu zeichnen. Wir könnten die Glockenkurve verwenden, aber zur einfacheren Berechnung arbeiten wir einfach mit einer umgedrehten Parabel.
Lassen Sie uns eine Parabel so machen, dass ihre Wurzeln bei 0 und 100 liegen, ohne sie zu verzerren. Wir erhalten die folgende Gleichung:
f(x) = -(x-0)(x-100) = -x * (x-100) = -x^2 + 100x
Jetzt ist der gesamte Bereich unter der Kurve zwischen 0 und 100 repräsentativ für unseren ersten Satz, in dem die Zahlen generiert werden sollen. Dort ist die Generation völlig zufällig. Wir müssen also nur die Grenzen unseres ersten Satzes finden.
Die Untergrenze ist natürlich 0. Die Obergrenze ist das Integral unserer Funktion bei 100
F(x) = -x^3/3 + 50x^2
F(100) = 500,000/3 = 166,666.66666 (let's just use 166,666, because rounding up would make the target out of bounds)
Wir wissen also, dass wir irgendwo zwischen 0 und 166.666 eine Zahl generieren müssen. Dann müssen wir einfach diese Zahl nehmen und auf unseren zweiten Satz projizieren, der zwischen 0 und 100 liegt.
Wir wissen, dass die Zufallszahl, die wir generiert haben, ein Integral unserer Parabel mit einer Eingabe x zwischen 0 und 100 ist. Das bedeutet, dass wir einfach annehmen müssen, dass die Zufallszahl das Ergebnis von F (x) ist, und nach x auflösen müssen.
In diesem Fall ist F (x) eine kubische Gleichung, und in der Form F(x) = ax^3 + bx^2 + cx + d = 0
sind die folgenden Aussagen wahr:
a = -1/3
b = 50
c = 0
d = -1 * (your random number)
Wenn Sie dies nach x lösen, erhalten Sie die tatsächliche Zufallszahl, nach der Sie suchen. Diese liegt garantiert im Bereich [0, 100] und hat eine viel höhere Wahrscheinlichkeit, nahe am Zentrum als an den Kanten zu liegen.