Генератор случайных чисел с распределенной вероятностью

Я хочу сгенерировать число на основе распределенной вероятности. Например, просто скажите, что есть следующие вхождения каждого числа:

Number| Count           
1    |  150                
2    |  40          
3    |  15          
4    |  3  

with a total of (150+40+15+3) = 208     
then the probability of a 1 is 150/208= 0.72    
and the probability of a 2 is 40/208 = 0.192    

Как мне сделать генератор случайных чисел, который возвращает числа на основе этого распределения вероятностей?

Я рад, что на данный момент это основано на статическом, жестко закодированном наборе, но в конечном итоге я хочу получить распределение вероятностей из запроса к базе данных.

Я видел похожие примеры, такие как этот, но они не очень общие. Любые предложения?

22
задан Community 23 May 2017 в 12:09
поделиться