SORU
17 ŞUBAT 2011, PERŞEMBE


Hileli zar için veri yapısı?

Her tarafı k bazı olasılık p olduğu n-taraflı yüklü die bir ben olduğunu varsayalımkben rulo zaman geliyor. Eğer verimli bir şekilde ölmek rastgele bir rulo taklit bu bilgiler statik olarak (yani olasılıklar sabit bir dizi için) saklamak için iyi bir algoritma olup olmadığını merak ediyorum.

Şimdilik bu sorun için(lg n) bir çözüm buldum. Fikir saklamak için bir tablo kümülatif olasılık ilk k taraf için de tüm k, onları oluşturmak için rastgele gerçek sayı aralığı [0, 1) ve gerçekleştirmek bir ikili arama masanın üstünden almak en büyük dizini olan toplu değer hayır daha büyük seçilmiş değer. Ben daha çok bu çözüm gibi, ama zamanı dikkate olasılıklar almaz tuhaf görünüyor. Özellikle, extremal durumlarda her zaman bir Taraf olacaklara değerleri olmak birörnek dağıtılmış, mümkün oluşturmak için sonucun rulo O(1) kullanarak saf bir yaklaşım, ama eğer bir çözüm olacak hala al logarithmicallh pek çok adım.

Herkes bir şekilde bu sorunu çözmek için nasıl herhangi bir öneriniz var bir şekilde "o" zamanı mı? Uyumlu mu

EDİTBu sorunun cevabına göre, Yukarı yazdıman article describing many approaches to this problemonların analizleri ile birlikte. Diğer bir yöntem verir ve Teta Vose uygulanması;(n) önişleme zaman ve gerçekten etkileyici olan ölmek rulo başına O(1) zaman, gibi görünüyor. Umarım bu bilgiler cevapları içerdiği için yararlı bir ektir!

CEVAP
17 ŞUBAT 2011, PERŞEMBE


Bir sağlar alias method arıyoruzO(1)sabit kesikli olasılık dağılımı (sabit zaman uzunluğu n bir dizi giriş erişebilirsiniz varsayarak) bir zaman O(n) ile oluşturmak için yöntem. Luc Devroye "Non-Uniform Random Variate Generation" chapter 3 (PDF) belgelenmiş bulabilirsiniz.

Fikri olasılıklar p dizinizi almaktırkve n-elemanlı diziler, q üç yeni üretmekkbirkve bk. Her qkve 1, ve her bir 0 arasında bir olasılıkkve bk1 ile n arasında bir tam sayıdır.

0 ve 1 arasında rastgele sayılar, r ve s, üreterek, 1 ile n arasında rasgele bir sayı üretiyoruz. (R*N) i = 1 Kat edelim. Sbenve sonra bir dönüş ltbenbaşka dönüş bben. Diğer yöntem çalışma q üretmek için nasıl bulmaktankbirkve bk.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dive In

    Dive In

    17 Temmuz 2013
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008
  • Top10Series

    Top10Series

    26 Kasım 2008