【发布时间】:2015-01-14 19:29:57
【问题描述】:
设置:
这个问题是经典概率问题的复杂形式:
70 colored balls are placed in an urn, 10 for each of the seven rainbow colors.
What is the expected number of distinct colors in 20 randomly picked balls?
我的解决方案是python的itertools库:
combos = itertools.combinations(urn, 20),
print sum([1 for x in combos])
(其中 urn 是 urn 中 70 个球的列表)。
我可以将迭代器解压到combinations(urn, 8) 的长度,而我的计算机无法处理它。
注意:我知道这不会给我答案,这只是我脚本中的障碍,换句话说,如果这有效,我的脚本就会有效。
问题:如果没有世界上最快的超级计算机,我怎样才能准确地找到预期的颜色?我的方法在计算上是否可行?
【问题讨论】:
-
projecteuler.net/problem=493 ?如果是这样,我们可以添加
[project-euler]标签。 (蛮力往往不适用于更高的 PE 问题 - 你需要一个数学/组合解决方案)。 -
我没有在标签上的唯一原因是由于标签描述:“不要使用这个标签 Project Euler 是一个不同难度的数学规划问题的集合。”
-
啊 - 我上次检查时没有那个...我猜你不使用它是对的。
-
不要解压,迭代。
-
有一个基于将计数重写为总和,然后使用期望线性度的单行数学解决方案。
标签: python math statistics probability