İyi bir rastgele sayı oyunu için jeneratör nedir?
İyi bir rastgele sayı C oyun için kullanılacak jeneratör nedir ?
Benim düşünceler şunlardır:
- Rastgele sayılar çok ihtiyaç var, hızı iyi.
- Oyuncular her zaman rasgele sayılar hakkında şikayet edecek, ama gerçekten benim iş yaptığını açıklayan bir referans gelin olmak istiyorum.
- Çünkü bu terim bir ticari proje olan yok bir çok defa, bu güzel olurdu eğer algoritma ya) nispeten kolay uygulamak veya b) iyi olmayan GPL uygulama kullanılabilir.
- Zaten yerler oldukça çok
rand()
kullanıyorum, başka bir jeneratör daha gerektirecektir tüm değişiklikleri haklı göstermek için iyi bir sebebin vardır.
Bulabildiğim tek alternatif bu konu hakkında fazla bir bilgim yok, Mersenne Twister; Tüm bu gereksinimleri tatmin ediyor mu? Bu daha iyi bir şey var mı?
Düzenleme:Mersenne Twister ortak seçimi gibi görünüyor. Ama gelin #4 ne hakkında? Gerçekten rand()
den çok daha iyi mi?
Edit 2:Bana 2 nokta üzerinde biraz daha net olalım: oyuncular rasgele sayılar bilerek hile yapmak için bir yol Yoktur. Dönem. Bu insanlar (en azından Turk anlayanlar) bu konuda şikayet edemez, ama tahminler hakkında endişeli değilim rastgele yeterince istiyorum. Üst göz kadar hızlı vermemin sebebi de budur.
Edit 3:Marsaglia RNGs doğru eğilmiş değilim, ama hala daha giriş istiyorum. Bu nedenle, bir ödül kuruyorum.
Edit 4:Sadece bir not: sadece gece yarısı UTC bugün (birinin rep kap karıştırmasını önlemek için) daha önce bir cevap kabul etmek niyetindeyim. Eğer öyleyse cevap düşünüyorsan, son dakikaya kadar beklemeyin!< / ^ br . Ayrıca, Marsaglia. XORshift jeneratörler görüntüyü seviyorum. Kimse onlar hakkında herhangi bir giriş var mı?
CEVAP
Sometimes oyun geliştiricileri gerçek rastgelelik istemiyorum ve shuffle bag a daha uygun.
Eğer rastgelelik istiyorsanız, Mersenne twister beklentilerinizi karşılar. Hızlı, istatistiksel olarak rastgele, uzun bir dönem vardır ve uygulamaları vardır.
Edit: rand()
genellikle linear congruential generator olarak uygulanır. Eğer ya da amaçlarınız için yeterince iyi olup olmadığını değil, bilinçli bir seçim yapmak en iyisi.
Rastgele sayı üretimi için en güvenli ...
Nasıl Ruby rastgele bir sayı almak içi...
Nasıl C rastgele bir sayı oluşturmak i...
Neden MongoDB Java driver rastgele bir...
Neden insanlar rastgele bir sayı kulla...