ile tekdüze olmayan, tamsayı dağıtımı oluşturma Şu anda bir dizi ile tamsayıların eşit dağılımını oluşturmak için aşağıdaki kodu kullanıyorum. Ben twords dk değerini lehine bir dağılım verecek şekilde değiştirmek için çalışıyor ve neredeyse hiç üretir max değeri yaklaştıkça amtr1 <random>
int random(int min, int max)
{
static std::mt19937 gen;
std::uniform_int<int> dist(min, max);
return dist(gen);
}
(ı tohumlama kodu çıkardı). Önceden yapılmış tüm dağıtımları görebiliyorum, fakat bunların hiçbiri tam sayı değil. Ayrıca hangi belgelere dayanarak ihtiyacımın hangisine uyduğunu anlayamıyorum. , Tamsayılar ile kullanmak tek başına bir set izin nasıl documentation dayalı k = 2
Ama çözemiyorum wikipedia, gösterildiği gibi ben gelmiş en yakın ki-kare dağılımı ise k değeri.
Uygun olmayan üniforma, tamsayı dağıtımı kullanmak için işlevimi nasıl kurabilirim? 0 1'den daha sık olması gerektiği gibi, oldukça orada
henüz ama yardımcı olacaktır: Burada 0 ile 20 arasında std::poisson_distribution<int> dist((max - min) * .1);
sonuçları şunlardır:
hala doğru dağıtımın seçimi konusunda çalışan Bir sonraki kişi, geldikçe daha fazla sonuç yayınlayacak.
int randomDist(int min, int max)
{
static std::mt19937 gen;
std::chi_squared_distribution<double> dist(2);
int x;
do
{
x = (int)(max*dist(gen)/10) + min;
}
while (x > max);
return x;
}
sonucunu veren:
de benim nihai çözüm yöntemleri bir arada oldu
Bir Poisson dağılımında 0, 1'den küçük bir parametre seçerseniz, 0'dan daha sık olacaktır (şu anda (20−0) *. 1 = 2). Ayrıca, herhangi bir parametre ile geometrik bir dağılım ile elde edersiniz. Seçmeniz gereken, modellediklerinize bağlıdır: geometrik modeller, bir olay ortaya çıkana kadar geçen süre (örneğin, bir gol atmak için gereken atış sayısı), Poisson, bir zaman aralığı içinde sayı olayı oluşumlarını modeller (örneğin, sayı) Bir oyunda hedefler). – aaz
Eh, bunu gerçek zamanlı bir genetik algoritma için kullanıyorum. Ayrı nesillere sahip olmak yerine, yeni bir organizmayı türetmek için zaman geldiğinde, onları fitness ile sıralıyorum ve ebeveynleri bu eğriye göre seçiyorum. – Zak
@Zak - Geometrik dağılımı kullanarak seçim yaparsanız, daha sonra # 1 kazanır vs her bir ebeveynin seçimini # 1 kazanır vs (# 2 galibi (# 3 kazanan galibi)), nerede #i kazanır Herhangi bir #j'e karşı, i
aaz