<p>在您的代码中,您正在计算每套结果中的<em>总体</em>条纹数,然后将其除以100进行打印。那不是你想找到的</p>
<p>您要检查有多少<em>实验</em>包含6条或更高的条纹</p>
<p>这是我的刺拳</p>
<p>首先,让我们做个实验</p>
<pre class="lang-py prettyprint-override"><code>import random
number_of_flips = 100
number_of_experiments = 10000
streak_length = 6
streaks = 0
</code></pre>
<p>事先设置这些参数总是好的,这样在调整时就可以更改它们</p>
<pre class="lang-py prettyprint-override"><code>for experiment in range(number_of_experiments):
# We want number_of_flips random values of 0 and 1
# (0 - head, 1 tails)
flips = [random.randint(0, 1) for _ in range(number_of_flips)]
# Now we want to see if we find any streaks of streak_length
heads_streak = 0
tails_streak = 0
for i in flips:
if i == 0:
heads_streak += 1
tails_streak = 0
if heads_streak >= streak_length:
streaks += 1
break
if i == 1:
heads_streak = 0
tails_streak += 1
if tails_streak >= streak_length:
streaks += 1
break
# At this point, if we found a streak, streaks grew by 1,
# and if not, it remains unchanged
</code></pre>
<p>现在我们有很多实验在<code>streaks</code>中发现了条纹</p>
<p>我们可以用它除以实验次数,再乘以100</p>
<p><code>print(streaks / number_of_experiments * 100, "%")</code></p>