问题标签 [probability]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

Filter by
Sorted by
Tagged with
0 投票
4 回答
380 浏览

找到具有相同有效负载的 TCP 数据包的概率?

今天早些时候,我与一位开发人员进行了一次讨论,重新识别在特定接口上发出的具有相同有效负载的 TCP 数据包。他告诉我,由于 TCP 数据包是在系统级别构建的方式,找到具有相同有效负载的 TCP 数据包(即使相同的数据被发送多次)的概率非常低。我知道这可能是由于系统的 MTU 设置(通常是 1500 字节)等原因,但我真正在看什么样的概率统计数据?是否有任何特定协议可以更轻松地识别匹配的有效负载?

0 投票
6 回答
3749 浏览

天真的洗牌的现实问题

我正在写一些文章,旨在通过使用与扑克相关的主题来教授初级编程概念。目前,我正在研究洗牌的主题。

正如Jeff Atwood 在 CodingHorror.com 上指出的那样,一种简单的洗牌方法(遍历数组并将每张卡片与数组中其他地方的随机卡片交换)会导致排列分布不均匀。在实际应用中,我只会使用Knuth Fisher-Yates shuffle以获得更均匀的随机性。但是,我不想用对编码器不太友好的算法来解释编程概念。

这就引出了一个问题:如果黑帽知道你使用的是 52 张牌的天真洗牌,他们会有多大的优势?似乎它会无限小。

0 投票
3 回答
836 浏览

Alias 方法的开源实现

我现在正在做一个项目,为了代码重用,我去寻找一个可以对项目执行一些概率接受/拒绝的库:

即有三个人(a,bc),每个人都有一个概率P{i}得到一个物品,其中p{a}表示a的概率。这些概率是在运行时计算的,不能硬编码。

我想要做的是生成一个随机数(对于一个项目),并根据他们获得该项目的概率来计算谁获得了该项目。此处概述的别名方法(http://books.google.com/books?pg=PA133&dq=alias+method+walker&ei=D4ORR8ncFYuWtgOslpVE&sig=TjETHBUa4odbGJmjyF4daF1AKF4&id=ERSSDBDcYOIC&output=html)解释了如何,但我想看看是否有现成的实现,所以我不必写出来。

0 投票
3 回答
2463 浏览

概率问题 - 从大篮子中选择时重复

我需要向客户解释为什么骗子会出现在 2 次据称不同的考试之间。Prob and Stats 已经 20 年了。

我有一个生成的多项选择考试。数据库中有 192 个问题,100 个是随机选择的(没有重复)。

显然,这样生成的任何两次考试之间有 100% 的机会至少有 8 次重复。(鸽笼原理)

如何计算有 25 个骗子的概率?50个骗子?75个骗子?

-- 事后编辑 -- 我通过 excel 运行这个,从 n-100 中取概率的总和,对于这个特定的问题,概率是

0 投票
8 回答
11407 浏览

创建自己的 Tinyurl 样式 uid

我正在写一篇关于 Guid/UID 的人类可读替代品的小文章,例如在 TinyURL 上用于 url 哈希的那些(通常印在杂志上,所以需要简短)。

我生成的简单 uid 是 - 6 个字符:小写字母 (az) 或 0-9。

“根据我的计算队长”,这是 6 个相互排斥的事件,虽然计算冲突的概率比 P(A 或 B) = P(A) + P(B) 更难,因为显然它包括数字和从在下面的代码中,您可以看到使用 50/50 是使用数字还是字母。

我对冲突率感兴趣,如果下面的代码是您从生成哈希中获得的预期冲突率的真实模拟。平均而言,我每百万次发生 40-50 次冲突,但请记住,uid 不会一次生成一百万次,但可能每分钟只有 10-1000 次左右。

每次发生冲突的概率是多少,有人能提出更好的方法吗?

更新: 这是这个问题的结果文章

我真的在这里问了两个问题,所以我在作弊。我所追求的答案是 rcar 的,但 Sklivvz 的也是第二部分的答案(另一种选择)。是否可以在数据库中创建一个自定义的唯一 ID 生成器,或者它是客户端(首先是 2 个可能的读取)?

我所追求的一般想法是在数据库或其他可以通过电话或印刷材料使用的商店中使用 ID,而不是巨大的 16 字节 guid。

更新 2:我将公式用于两个互斥事件而不是 2 个独立事件(因为第一次获得“a”并不意味着您第二次无法获得“a”)。应该是 P(A 和 B) = P(A) x P(B)

0 投票
6 回答
44344 浏览

How do I programmatically calculate Poker Odds?

I'm trying to write a simple game/utility to calculate poker odds. I know there's plenty of resources that talk about the formulas to do so, but I guess I'm having trouble translating that to code. Particularly, I'm interested in Texas Hold-em ...

I understand that there are several different approaches, one being that you can calculate the odds that you will draw some hand based on the cards you can see. The other approach is calculating the odds that you will win a certain hand. The second approach seems much more complex as you'd have to enter more data (how many players, etc.)

I'm not asking that you write it for me, but some nudges in the right direction would help :-)

0 投票
4 回答
3012 浏览

从集合中选择元素的概率

从一组 n 个元素中随机选择一个元素的预期概率是 P=1.0/n 。假设我使用无偏方法检查 P 足够多次。P的分布类型是什么?很明显,P 不是正态分布的,因为它不能是负数。因此,我可以正确假设 P 是伽马分布的吗?如果是,这个分布的参数是什么?此处显示了从 100 个元素集中选择一个元素 1000 次的概率直方图。

有什么办法可以将其转换为标准分布

现在假设观察到的选择给定元素的概率是 P* (P* != P)。如何估计偏差在统计上是否显着?

编辑:这不是作业。我正在做一个爱好项目,我需要这个统计数据。大约 10 年前我已经完成了我的最后一个作业:-)

0 投票
4 回答
6817 浏览

用于计算正态分布标准差的标准 C 或 Python 库

假设我们有正态分布 n(x):mean=0 和 \int_{-a}^{a} n(x) = P。

计算这种分布的标准差的最简单方法是什么?可能有适合该任务的python或C标准库吗?

0 投票
11 回答
3972 浏览

计算 C++ 中是否有 1/4 的可能性发生某事的最佳方法是什么?

我想知道是否有一个聪明的方法来找出

有 1/4 的机会发生某事。

我知道我们可以使用 rand() % 4 来执行此操作并检查它是否等于 0,但是有没有不使用 rand() 的方法?在 c++ 中,谢谢。

0 投票
10 回答
3421 浏览

表示连续概率分布

我有一个涉及连续概率分布函数集合的问题,其中大部分是根据经验确定的(例如出发时间、运输时间)。我需要的是获取其中两个 PDF 并对它们进行算术运算的某种方法。例如,如果我有两个取自 PDF X 的值 x 和取自 PDF Y 的 y,我需要获取 (x+y) 或任何其他操作 f(x,y) 的 PDF。

分析解决方案是不可能的,所以我正在寻找的是允许这些事情的 PDF 的一些表示。一个明显(但计算成本高)的解决方案是蒙特卡罗:生成大量 x 和 y 值,然后仅测量 f(x, y)。但这需要太多的 CPU 时间。

我确实考虑将 PDF 表示为范围列表,其中每个范围具有大致相等的概率,有效地将 PDF 表示为均匀分布列表的并集。但我看不出如何将它们结合起来。

有人对这个问题有什么好的解决方案吗?

编辑:目标是创建一种用于操作 PDF 的迷你语言(又名域特定语言)。但首先我需要理清底层的表示和算法。

编辑 2: dmckee 建议使用直方图实现。这就是我对统一分布列表的理解。但我不知道如何将它们结合起来创建新的发行版。最终我需要找到像 P(x < y) 这样的东西,以防它可能非常小。

编辑 3:我有一堆直方图。它们不是均匀分布的,因为我是从发生数据生成它们的,所以基本上如果我有 100 个样本并且我想要直方图中的 10 个点,那么我为每个条分配 10 个样本,并使条的宽度可变但面积不变。

我已经发现要添加 PDF,您需要对它们进行卷积,并且我已经为此做好了数学准备。当你对两个均匀分布进行卷积时,你会得到一个包含三个部分的新分布:较宽的均匀分布仍然存在,但每边都有一个三角形,其宽度与较窄的分布相同。因此,如果我对 X 和 Y 的每个元素进行卷积,我会得到一堆这些,全部重叠。现在我试图弄清楚如何将它们全部相加,然后得到一个最接近它的直方图。

我开始怀疑蒙特卡洛到底是不是一个坏主意。

编辑 4: 本文详细讨论了均匀分布的卷积。一般来说,你会得到一个“梯形”分布。由于直方图中的每个“列”都是均匀分布,我希望可以通过对这些列进行卷积并对结果求和来解决问题。

然而,结果比输入复杂得多,并且还包括三角形。 编辑 5: [删除了错误的内容]。但是,如果这些梯形近似为具有相同面积的矩形,那么您会得到正确的答案,并且减少结果中的矩形数量看起来也很简单。这可能是我一直在寻找的解决方案。

编辑6:解决!这是这个问题的最终 Haskell 代码:

其他运算符留给读者练习。