我试图使用 python 计算 200 次抛硬币中最长连续正面连续的预期值。我想出了一个我认为可以完成工作的代码,但由于它需要大量的计算和数据存储,它效率不高,我想知道是否有人可以帮助我解决这个问题,使其更快更高效(上学期我只上了一门 Python 编程课程,之前没有任何相关知识)。
我的代码是
import numpy as np
from itertools import permutations
counter = 0
sett = 0
rle = []
matrix = np.zeros(200)
for i in range (0,200):
matrix[i] = 1
for j in permutations(matrix):
for k in j:
if k == 1:
counter += 1
else:
if counter > sett:
sett == counter
counter == 0
rle.append(sett)
找到 rle 后,我将对其进行迭代以获得有多少条长度的条纹,它们的总和除以 2^200 将为我提供我正在寻找的预期值。
在此先感谢您的帮助,非常感谢!