У меня есть 6 цветов, связанных со значениями 1 до 6, которые все равновероятны:Сделать изменение числа более вероятна в Python
randc = random.randint(1,6)
if randc == 1:
print 'red'
elif randc == 2:
print 'green'
elif randc == 3:
print 'purple'
elif randc == 4:
print 'yellow'
elif randc == 5:
print 'orange'
elif randc == 6:
print 'brown'
Теперь я хочу второй цвет для печати таким образом, что 50% времени он будет таким же, как и первый цвет. В прошлом я использовал NumPy, чтобы увеличить вероятность, но только делает установленное значение более вероятное:
randcol = numpy.random.choice((1,2), p=[0.8, 0.2])
if randcol == 1:
print 'red' # will occur 80% of the time
elif randcol == 2:
print 'green' # will occur 20% of the time
Как изменить вероятность таким образом, что он будет делать предыдущий выбор более вероятно?
На боковой ноте вы можете захотеть взглянуть на перечисляемые типы для присвоения цвета числу: https://docs.python.org/3/library/enum.html –
не понимаю ваш вопрос, вы хотите сделать своего рода [цепь Маркова] (https://en.wikipedia.org/wiki/Markov_chain)? – armnotstrong