擅长:python、mysql、java
<p>实际上,您的代码中有几个错误:</p>
<ul>
<li>执行<code>for i in list:</code>操作时<code>i</code>将被分配给列表的元素,而不是索引</李>
<li>如果你浏览了整个列表,那么当你访问<code>list[i+5]</code>时,你就有溢出的风险</li>
<li>如果你发现一条长度为6的条纹,你应该停止研究该示例,转而研究下一个示例(否则一个示例可能会被计算多次)</li>
<li>最终百分比需要计算为\u条纹数除以\u示例数(乘以100)</li>
</ul>
<p>另外,我建议您避免使用关键字作为变量名(就像您使用<code>list</code>)</p>
<p>以下是一个更正的版本(使用python3)</p>
<pre class="lang-py prettyprint-override"><code>import random
number_of_streaks = 0
number_of_experiments = 10000
for _ in range(number_of_experiments):
lst = [random.randint(0, 1) for _ in range(100)]
for i in range(len(lst) - 5):
if sum(lst[i : i + 6]) in (0, 6):
number_of_streaks += 1
break
print(f"Chance of streak: {number_of_streaks / number_of_experiments * 100:.2f}%")
</code></pre>
<p>结果表明,翻动100枚硬币时,很可能会出现长度为6的连击(大约80%)</p>