Полоски монет из "Автоматизируйте скучные вещи с Python" - PullRequest
0 голосов
/ 07 апреля 2020

Я Python новичок. Я пытаюсь написать простой, но аккуратный код для решения следующей проблемы.

Я написал это, но оно всегда как-то оценивается в ~ 325%. Что может быть не так?

import random 
numberOfStreaks = 0 
flip = []
for experimentNumber in range(10000):
# Code that creates a list of 100 'heads' or 'tails' values.

    for i in range(101):    
        flip.append(random.randint(0,1))

# Code that checks if there is a streak of 6 heads or tails in a row.
    for i in flip:
        if flip[i] == flip[i+1]:
            if flip[i] == flip[i+2]:
                if flip[i] == flip[i+3]:
                    if flip[i] == flip[i+4]:
                        if flip[i] == flip[i+5]:
                            numberOfStreaks += 1


    flip = []

print('Chance of streak: %s%%' % (numberOfStreaks / 100))

1 Ответ

0 голосов
/ 07 апреля 2020

Это происходит потому, что вы делите numberOfStreaks на 100, а не на общую численность населения.

Если вы хотите получить долю полос, которые произошли в вашей выборке, то вы должны разделить количество успехов по численности населения.

Другими словами ...

numberOfExperiments = 10000
print('Chance of streak: {}'.format(numberOfStreaks / numberOfExperiments))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...