Бих искал да взема проби от разпространението на "zipf" от ограничен домейн.
Тоест, приемете, че домейнът е {1,...,N}, бих искал всеки елемент в домейна, i, да бъде избран с вероятност, пропорционална на i ** -a
, където a
е параметър на разпределението.
numpy
предоставя zipf семплер (numpy.random.zipf), но не ми позволява да огранича домейна.
Как мога лесно да взема проби от такова разпространение?
Ако параметърът за разпределение, a
, е по-голям от 1, мога да използвам семплера numpy
чрез отхвърляне (и повторно вземане на проби) на всички проби, по-големи от N
. Въпреки това, тъй като не ограничава обхвата на извадката, опитът да се използват по-малки стойности на a
не работи.
Когато домейнът е ограничен, не би трябвало да има проблем да използвам такива a
s и това е, което ми трябва за моето приложение.