Matematik.Rastgele versus. () rastgele nextİnt(int) | Netgez.com
SORU
10 NÄ°SAN 2009, Cuma


Matematik.Rastgele versus. () rastgele nextÄ°nt(int)

n bir tamsayı ise Math.random() * n Random.nextInt(n) arasındaki fark nedir?

CEVAP
10 NÄ°SAN 2009, Cuma


Burada "Random.nextInt(n) hem" Güneş forum sonrası Gili bağlı:. Math.random() * n daha verimli ve daha az önyargılı neden the detailed explanation

Matematik.() rastgele Rastgele kullanır.() nextDouble içten.

Rastgele.() nextDouble Rastgele kullanır.() bir sonraki düzgün 1-(2^-53)aralığında 0 dağıtılır çok düzgün onun mantis bit dağıtılmış, yaklaşık olarak bir çift oluşturmak için iki kez.

Rastgele.nextİnt(n) Rastgele kullanır.sonraki() en az iki kez ortalama kullandığı bir kez, ve eğer değer alınır yukarıdaki en çok n altında MAX_İNT çalışır yine, aksi takdirde değer mod n (bu engeller yukarıdaki değerler en çok n altında MAX_İNT eğme dağıtım), bu yüzden geri dönen bir değer olan birörnek dağıtılmış aralığı 0-n-1.

Ölçekleme önce 6, Matematik çıktı.() rasgele 2^53 olası değerleri düzgün bir dağıtım çekilen biridir.

Ölçekleme tarafından 6 değiştirmez sayısı mümkün değerler ve döküm için bir int sonra güçleri bu değerler bir altı 'kova' (0, 1, 2, 3, 4, 5), her bir bölüm ilgili aralıkları kapsayan ya 1501199875790165 veya 1501199875790166 olası değerleri (6 değil bir disvisor 2^53). Bu zar yeterli sayıda (ya da iki yeterince büyük bir sayı ile ölmek, ölmek, kendini daha büyük kovalar karşı önyargılı olmak olduğunu gösterir.

Çok uzun bir süre bu etki için zar göstermek için haddeleme bekliyor olacak.

Matematik.() rasgele de iki kez hakkında işlem gerektirir ve senkronizasyon tabidir.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011