Daha da basit, rastgele jeneratörünüzün hızına bağlı olarak, sadece iki değer üretebilir ve ortalamalarını alabilirsiniz.
Ya da, daha basit, X ilk RNG, sonucudur nerede double y = double(1/x);
, x = y*[maximum return value of rng];
. Bu sayıları katlanarak düşük sayılar için ağırlıklandırır.
Değerleri merkeze yaklaştırma olasılığını artırmak için daha fazla değer üretin ve ortalayın.
Elbette bu sadece standart çan eğrileri dağılımları veya "katlanmış" versiyonları için işe yarar *, ancak hızlı bir jeneratör ile, sqrt gibi çeşitli matematik fonksiyonlarını kullanmaktan daha hızlı ve basit olabilir.
Zar çan eğrileri için bu konuda her türlü araştırmayı bulabilirsiniz. Aslında, Anydice.com çeşitli yuvarlanma zarları için grafikler üreten iyi bir sitedir. Bir RNG kullanıyor olsanız da, öncül sonuçlar gibi aynıdır. Bu yüzden, kodlamadan önce bile dağıtımı görmek için iyi bir yer.
* Ayrıca, ekseni alarak ve ortalama sonucu çıkardıktan sonra ekseni ekleyerek sonuç dağılımını bir eksen boyunca "katlayabilirsiniz". Örneğin, daha düşük değerlerin daha yaygın olmasını istersiniz ve en düşük değeriniz 15, en büyük değeriniz 35, en yüksek değeriniz 20 olsun, diyelim ki 20 aralığındaki iki değeri üretir ve ortalarsınız. İstediğiniz mesafenin iki katı), ki bu 20 merkezli bir çan kulesi verecektir (aralığı 20'den 40'a, 15'ten 35'e kadar kaydırmak için sonunda beşi çıkardık). Oluşturulan X ve Y sayılarını alın.
Son numara
z =(x+y)/2;// average them
If (z<20){z = (20-z)+20;}// fold if below axis
return z-5;// return value adjusted to desired range
Eğer sıfır sizin minimumunuzsa, daha iyisi yerine, bunu yapın.
z= (x+y)/2;
If (z<20){z = 20-z;}
else {z = z - 20;}
return z;