6 yıldır web sitemde rastgele sayı üreteci sayfam var. Uzun bir süredir, Google'da "rastgele sayı oluşturucu" için birinci veya ikinci sonuçtu ve tartışma forumları ve bloglarda yüzlerce yarışma ve çizim olmasa bile düzinelerce karar vermek için kullanıldı (biliyorum çünkü web günlükleri ve genellikle bir göz atın).
Bugün, düşündüğüm kadar rastgele olmayabileceğini söylemek için biri bana e-posta gönderdi . Çok büyük rasgele sayılar üretmeyi denedi (örneğin, 1 ile 10000000000000000000 arasında) ve neredeyse her zaman aynı sayıda basamak olduğunu buldu. Aslında, işlevi bir döngüye sardım, böylece binlerce sayı üretebildim ve çok büyük sayılar için, varyasyonun yalnızca 2 büyüklük sırası olduğu kesin.
Neden?
İşte döngü versiyonu, böylece kendiniz deneyebilirsiniz:
http://andrew.hedges.name/experiments/random/randomness.html
Hem Mozilla Developer Network'ten alınan basit bir uygulamayı hem de 1997'de artık var olmayan bir web sayfasından kaydırdığım bazı kodları içerir (Paul Houle'nin "Central Randomizer 1.3"). Her yöntemin nasıl çalıştığını görmek için kaynağı görüntüleyin.
Burada ve başka yerlerde Mersenne Twister hakkında okudum . Benim ilgilendiğim şey, JavaScript'in yerleşik Math.random işlevinin sonuçlarında neden daha fazla varyasyon olmayacağıdır . Teşekkürler!