Я хотел бы иметь программу, которая вызывает случайную функцию, которая дает результат 0,1,2 в виде определенного количества раз и подсчитывает результат для каждого прогона. С использованием random.randrange (0,3) я получаю равное распределение.Создать функцию распределения вероятности из заданного probalbilty
Как получить распределение со следующей вероятностью.
0: 0,4633
1: 0,3147
2: 0,2218
Эти цифры являются переменными, которые я Рассчитанные в другой функции, и они меняются после того, как я снова запустить функцию.
import random
zeros = 0
ones = 0
twos = 0
for i in range(10000):
a = random.randrange(0,3)
if a == 0:
zeros = zeros + 1
if a == 1:
ones = ones + 1
if a == 2:
twos = twos + 1
print "zeros = ", zeros
print "ones = ", ones
print "twos = ", twos
нули = 3345
Ones = 3326
двоек = 3329
Wanted:
нули = 4633
те = 3147
двоек = 2218
Спасибо заранее :)
Soooo Вы хотите, чтобы случайное распределение не было случайным? Какой у Вас вопрос? Вы удивлены, что подсчеты меняются при каждом прогоне? – miradulo
Вы понимаете, что эти «вероятности» не суммируются до 1.0? Q.E.D., они не являются вероятностями. Кроме того, вы не должны ожидать получения одинаковых результатов в каждом испытании, так же, как вы не ожидаете того же количества 6 из 100 рулонов 6-сторонней матрицы, если вы повторите эксперимент. – pjs