- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
设置:
问题是经典概率问题的复杂形式:
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)
,打印总和([1 for x in combos])
(其中 urn 是 urn 中 70 个球的列表)。
我可以将迭代器解压缩到我的计算机无法处理的 combinations(urn, 8)
长度。
注意:我知道这不会给我答案,这只是我脚本中的路障,换句话说,如果这有效,我的脚本就会有效。
问题:如果没有世界上最快的 super 计算机,我如何准确地找到预期的颜色?我的方法在计算上是否可行?
最佳答案
既然有几个人要求看数学解,那我就给吧。这是 Project Euler 问题之一,可以在合理的时间内用铅笔和纸完成。答案是
7(1 - (60 choose 20)/(70 choose 20))
要获得此值,请将 X(存在的颜色数)写为总和 X0+X1+X2+...+X6,其中如果存在第 i 种颜色,则 Xi 为 1,如果不存在,则为 0。
E(X)
= E(X0+X1+...+X6)
= E(X0) + E(X1) + ... + E(X6) by linearity of expectation
= 7E(X0) by symmetry
= 7 * probability that a particular color is present
= 7 * (1- probability that a particular color is absent)
= 7 * (1 - (# ways to pick 20 avoiding a color)/(# ways to pick 20))
= 7 * (1 - (60 choose 20)/(70 choose 20))
Expectation is always linear.因此,当您被要求找到某个随机量的平均值时,尝试将数量重写为更简单的部分(例如指示符 (0-1) 随机变量)的总和通常会有所帮助。
这并没有说明如何使 OP 的方法起作用。虽然有一个直接的数学解决方案,但最好知道如何以有组织和可行的方式迭代案例。如果您接下来想要比计数更复杂的颜色集功能,这可能会有所帮助。 Duffymo 的回答提出了一些我会更明确的建议:
您可以将 70 个调用中的 20 个调用分解为按颜色计数索引的类别。例如,索引 (5,5,10,0,0,0,0) 表示我们绘制了第一种颜色的 5 种,第二种颜色的 5 种,第三种颜色的 10 种,并且没有其他颜色。
可能的索引集合包含在和为 20 的非负整数的 7 元组集合中。其中一些是不可能的,例如 (11,9,0,0,0,0,0) 由问题的假设每种颜色只有 10 个球,但我们可以处理这个问题。非负数加起来为 20 的 7 元组的大小为(26 选 6)=230230,它有一个 natural correspondence。具有在 26 个空间中选择 6 个分隔线作为分隔线或对象的方式。所以,如果你有 a way to iterate through the 6 element subsets of a 26 element set ,您可以将它们转换为遍历所有索引。
您仍然需要根据从 70 个球中抽取 20 个球的方法数来对案例进行加权,以获得该案例。 (a0,a1,a2,...,a6) 的权重是 (10 选择 a0)(10 选择 a1)...*(10 选择 a6)。这很好地处理了不可能索引的情况,因为 10 选择 11 是 0,所以乘积是 0。
因此,如果您不知道线性期望的数学解决方案,您可以迭代 230230 个案例并计算索引向量的非零坐标数的加权平均值,由小二项式的乘积加权条款。
关于python - 统计:优化python中的概率计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27903590/
我目前正在学习数据挖掘,有以下问题。 机器学习和数据挖掘之间有什么关系? 我发现许多数据挖掘技术都与统计相关,而我“听说”数据挖掘与机器学习有很多关系。所以我的问题是:机器学习与统计学密切相关吗? 如
我有很多表的数据,例如: event_id player finish 1 a 1 1 b 2 1 c
我对 http_status_module 提供的统计数据感兴趣 特别是上游部分的统计数据。 http://nginx.org/en/docs/http/ngx_http_status_module.
除了 Cluster MBean 之外,是否有任何可以在 Akka (Java) 中启用的内置 JMX 公开监控/统计信息?我看过 Typesafe Console,但由于它需要许可证才能用于从多个节
我正在尝试在我的程序中使用“usage”统计信息来获取类似于 time 的数据工具。但是,我很确定我做错了什么。这些值似乎是正确的,但有时可能有点奇怪。我没有在网上找到好的资源。有人知道如何做得更好吗
我有一个带有统计表的 MySQL 数据库。我想以年历、月度的形式输出数据。对于没有点击率的几个月,我想花费一个“空”DIV。有两个ID。 $query = mysqli_query($db,"SELE
设置: 问题是经典概率问题的复杂形式: 70 colored balls are placed in an urn, 10 for each of the seven rainbow colors.
有哪些 Ruby gem 可以执行数据处理? 最佳答案 我知道有 3 种从 Ruby 访问 R 的方法: RinRuby RSRuby 通过 Rserve-Ruby-Client 预约 RinRuby
背景 图像领域内的一个国内会议快要召开了,要发各种邀请邮件,之后要录入、统计邮件回复(参会还是不参会等)。如此重要的任务,老师就托付给我了。ps: 统计回复邮件的时候,能知道谁参会或谁不参会。
我正在添加用户输入的几个数字并将它们添加到数组列表中。 到目前为止我的代码: package project143; import java.util.*; /** * @author -- */
正如标题所示,我需要做的是在各种 iO/Android/Windows 应用程序中跟踪各种用户事件 - 例如点击、滑动、在页面上花费的时间等。 这些应用程序基于响应式 HTML/CSS/JS,并具有简
我希望计算 HTML 表中每个唯一值的实例数,并在其自己的表中返回结果。该表是根据用户的文本输入生成的。例如,用户输入可能如下所示: Report 46 Bob Marley 4/20/2
如何使用 PHP 计算数字数组的 z 分数?我需要计算 z 分数,然后找到百分位数 (CDF)!我可以使用哪些 PHP 函数?谢谢! 最佳答案 以下代码将给出 CDF 的良好近似值(Abramowit
我只是想知道是否可以计算 GitHub 上空存储库的总数。 如果不适合所有用户,可以为自己做吗? 编辑 我已经尝试过size:0搜索,但似乎返回了很多包含数据的存储库。采用 size:0..1 之类的
public class Scanner { private HtmlProcessor hp; private String baseUrl; private int ste
我正在使用 Mule ESB 3.4。我想开发一个自定义 Java 组件来计算流收到的请求数量。流程将例如像这样: http inbound-endpoint -> counter -> vm-out
我喜欢借助 GitHub API 来统计存储库中所有开放的拉取请求和问题。我发现 API 端点 /repos/:owner/:repo 结果包含 open_issues 属性。然而,这是问题和拉取请求
如何使用 PHP 计算数字数组的 z 分数?我需要计算 z 分数,然后找到百分位数 (CDF)!我可以使用哪些 PHP 函数?谢谢! 最佳答案 以下代码将给出 CDF 的良好近似值(Abramowit
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在尝试以编程方式获取搜索字词列表的 Google 新闻搜索结果计数(即有多少个结果),但仅限于过去 1 年。使用用户界面搜索时,结果计数仅出现在常规搜索中,但在“工具 > 最近 > 过去一年”下时
我是一名优秀的程序员,十分优秀!