Bunu yapmanın en iyi yolu, belirli bir sayı kümesinde eşit olarak dağıtılan rasgele bir sayı oluşturmak ve ardından 0 ile 100 arasındaki kümeye, bir projeksiyonun istediğiniz sayılara çarpma olasılığının daha yüksek olduğu bir projeksiyon işlevi uygulamaktır.
Genellikle bunu başarmanın matematiksel yolu, istediğiniz sayıların olasılık fonksiyonunu çizmektir. Çan eğrisini kullanabiliriz, ancak daha kolay hesaplama uğruna sadece ters çevrilmiş bir parabolle çalışalım.
Bir parabol yapalım, kökleri eğilmeden 0 ve 100'de olacak. Aşağıdaki denklemi elde ederiz:
f(x) = -(x-0)(x-100) = -x * (x-100) = -x^2 + 100x
Şimdi, 0 ile 100 arasındaki eğrinin altındaki tüm alan, sayıların üretilmesini istediğimiz ilk setimizi temsil ediyor. Orada, nesil tamamen rastgeledir. Yani, tek yapmamız gereken ilk setimizin sınırlarını bulmak.
Alt sınır elbette 0'dır. Üst sınır 100'deki fonksiyonumuzun integralidir.
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)
Bu yüzden, 0 ile 166.666 arasında bir sayı üretmemiz gerektiğini biliyoruz. Ardından, bu sayıyı almamız ve 0 ile 100 arasındaki ikinci setimize yansıtmamız gerekir.
Oluşturduğumuz rastgele sayının, 0 ile 100 arasında x girişi olan parabolümüzün bir integrali olduğunu biliyoruz. Bu, rastgele sayının F (x) sonucu olduğunu varsaymamız ve x için çözmemiz gerektiği anlamına gelir.
Bu durumda, F (x) kübik bir denklemdir ve formda F(x) = ax^3 + bx^2 + cx + d = 0
aşağıdaki ifadeler doğrudur:
a = -1/3
b = 50
c = 0
d = -1 * (your random number)
Bunu x için çözdüğünüzde, [0, 100] aralığında olduğu garanti edilen aradığınız gerçek rasgele sayı ve kenarlara göre merkeze yakın olma olasılığı daha yüksektir.