Симулятор броска монеты с выводом результата определённой комбинации

import random
n = 1
i = 0
ifrits = []
while (ifrits[0] == 1 and ifrits[1] == 1 and ifrits[2] == 1 and ifrits[3] == 1 and ifrits[4] == 1 and ifrits[5] == 1 and ifrits[6] == 1 and ifrits[7] == 1 and ifrits[8] == 0) or (ifrits[0] == 0 and ifrits[1] == 1 and ifrits[2] == 1 and ifrits[3] == 1 and ifrits[4] == 1 and ifrits[5] == 1 and ifrits[6] == 1 and ifrits[7] == 1 and ifrits[8] == 1):
    while i < 9:
        ifrits[i] = random.random()
        i += 1
        n += 1
print(ifrits)
print(n)

Я хочу написать программу, которая заполнит список значениями 0 или 1, затем проверит список на наличие комбинации восемь единиц подряд (1,1,1,1,1,1,1,1,0) или (0,1,1,1,1,1,1,1,1). Результатом должен быть - вывод самой комбинации (списка) и номера попытки (значение счётчика), на которой выпала данная комбинация. По моим подсчётам, вероятность такой комбинации составляет - 0,4%. Моя цель - понять: может ли выпасть такая комбинация на практике вообще? Если да, то у меня будет номер попытки, на которой произошла комбинация.

Пояснение переменных:

n - общий счётчик попыток

i - счётчик для цикла

ifrits - список


Ответы (1 шт):

Автор решения: Danis
import random

n = 0
while True:
    arr = [random.randrange(2) for _ in range(9)]
    if arr == [1, 1, 1, 1, 1, 1, 1, 1, 0] or arr == [0, 1, 1, 1, 1, 1, 1, 1, 1]:
        print(arr, n)
        break
    n += 1
→ Ссылка