Приведенный ниже код демонстрирует игру Пенни - вероятность появления одной последовательности голов и хвостов перед другой. В частности, я задаюсь вопросом об эффективности while not all(i in sequence for i in [pattern1, pattern2]):
и более глобально о ее оптимальном кодировании в Python. Является ли это разумной попыткой в Python или является более эффективным способом. Чем больше я думаю, что знаю о Python, тем больше я считаю, что всегда есть лучший способ!Обнаружение всех определенных подстрок в последовательности Python
import random
pattern1 = 'TTT'
pattern2 = 'HTT'
pattern1Wins = 0
pattern2Wins = 0
trials = 1000
for _ in range(trials):
sequence = ''
while not all(i in sequence for i in [pattern1, pattern2]):
sequence += random.choice(['H','T'])
if sequence.endswith(pattern1):
pattern2Wins += 1
else:
pattern1Wins += 1
print pattern1, 'wins =', pattern1Wins
print pattern2, 'wins =', pattern2Wins
print str((max([pattern1Wins, pattern2Wins])/float(trials) * 100)) + '%'
ОК, так, Что ваш вопрос сейчас? – Kasramvd
@ Kasra, на самом деле мой вопрос в том, является ли это разумной попыткой в Python или является более эффективным способом. Чем больше я думаю, что знаю о Python, тем больше я считаю, что всегда есть лучший способ! – peedurrr
Так что добавьте этот комментарий к своему вопросу и сделайте это красиво! – Kasramvd