Подбрасываем монетку

Какое минимальное количество раз вы должны подбросить монетку, чтобы три раза подряд выпал либо орел, либо решка? А какое максимальное количество попыток может для этого понадобиться? А в среднем? В данном упражнении мы выясним это, создав симулятор подбрасывания виртуальной монетки.

Напишите программу, использующую для подброса монетки генератор случайных чисел Python. Монетка при этом должна быть правильной формы, что означает равную вероятность выпадения орла и решки. Подбрасывать монетку необходимо до тех пор, пока три раза подряд не выпадет одно значение, вне зависимости от того, орел это будет или решка.

Выводите на экран букву О всякий раз, когда выпадает орел, и Р – когда выпадает решка. При этом для одной симуляции бросков все выпавшие значения необходимо размещать на одной строке. Также необходимо известить пользователя о том, сколько попыток потребовалось, чтобы получить нужный результат.

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

О Р Р Р (попыток: 4)
О О Р Р О Р О Р Р О О Р О Р Р О Р Р Р (попыток: 19)
Р Р Р (попыток: 3)
Р О О О (попыток: 4)
О О О (попыток: 3)
Р О Р Р О Р О О Р Р О О Р О Р О О О (попыток: 18)
О Р Р О О О (попыток: 6)
Р О Р Р Р (попыток: 5)
Р Р О Р Р О Р О Р О О О (попыток: 12)
Р О Р Р Р (попыток: 5)
Среднее количество попыток: 7,9



import random

total_attempts = 0
for i in range(10):
    result = []
    current = ''
    nexxt = ''
    count = 1
    attempts = 0
    while True:
        nexxt = random.choice('ОР')
        result.append(nexxt)
        attempts += 1
        if nexxt == current:
            count += 1
            if count == 3:
                break
        else:
            count = 1
        current = nexxt
    total_attempts += attempts
    print(''.join(result), f'(попыток: {attempts})')
print('Среднее количество попыток:', total_attempts / 10)


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: