【发布时间】:2017-02-26 02:27:28
【问题描述】:
我试图使用 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 将给出我正在寻找的预期值。
提前感谢您的帮助,非常感谢!
【问题讨论】:
-
你有 200 个! (几乎 8e374) 排列每个矩阵,所以你的一生都不足以尝试所有这些。你最好尝试一种完全不同的方法!
-
最长连胜的期望值是指您获得的最可能的连续正面数吗?
-
我仍然看不出我的答案有什么问题,但我会阅读它。现在我已经删除了我的答案。
-
我想我搞错了。我正在完全解决一个不同的问题。
标签: python python-2.7 mean coin-flipping