问题标签 [probability-theory]

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.

0 投票
1 回答
348 浏览

matlab - Matlab 或 Mathematica:需要帮助计算未知命名分布和正态随机变量之和的 Pdf

是否可以应用卷积定理或 Mathematica 等软件来找到 pdf 的封闭形式表达式,Z = R + X其中f_R(r;k,d) = kdr^(d-1)(1-r^d)^(k-1)X是未知方差的零均值高斯 rv。r ~ [0,1]并且 pdff_R(r;k,d)与绘制一个距离的点的概率r乘以绘制k-1距离的点的概率有关> r

我不知道如何在 Mathematica 或 Matlab 中指定未知分布,如果它需要用于在分析上难以/不可能的情况下计算封闭形式的表达式。

在 Mathematica 中,我们可以使用现有的命名分布,NormalDistribution[mu, std]但如何使用f_R(r;k,d)

0 投票
1 回答
1005 浏览

java - 随机数生成器偏向范围中间的数字,Java,libGDX

我正在 libGDX 中设计一款游戏,它会掉落不同大小的石头供用户躲避。

我的问题:我怎样才能创建一个接受低和高 int 值的方法,并返回一个随机数。但是,我希望这个随机数偏向范围的中间(类似于正态分布)。

我希望该方法看起来像这样: public int randBiasInt(int low, int high) { }

0 投票
0 回答
60 浏览

r - R概率计算与标准数量

我有具有 4 个约束的历史数据,例如 C1、C2、C3 和 C4。所有约束都采用字符串值。如果我们以足球比赛为例,说 4 个约束是

我在所有约束和游戏结果中都有具有不同值的历史数据,因此我收集了大量数据,如下所示:

现在,根据这些数据,我想计算如果我的球队在一月份晚上 7 点在美国与切尔西进行比赛的获胜概率。

我有很多很多数据,但不确定是否能找到完全符合我要求的记录。在这种情况下,如果我的 C1、C2、C3、C4 与任何记录都不匹配,我将如何计算概率,但我有一些 C1、C2、C3 的记录与 C2、C3、C4 匹配的一些记录匹配......等等上...?

有人可以给我有关如何进行的任何指示。

0 投票
1 回答
32 浏览

time-series - 估计循环布尔变量的变化

我们有一个布尔变量 X,它要么是真要么是假,并且在每个时间步以概率 p 交替。即,如果 p 为 0.2,X 将平均每 5 个时间步交替一次。我们也有一个时间线和在不同的非均匀采样时间点观察这个变量的值。

人们如何从观察中得知在 t+n 时间步之后的概率,其中 t 是观察到 X 的时间,n 是未来某个时间 X 在 t+n 处交替/改变值的概率,因为 p 是未知的并且我们只有在以前的时间观察到 X 的值吗?请注意,我将从 true 更改为 false 并再次返回 true 算作两次更改值。

0 投票
2 回答
69 浏览

math - 给定三个框 X、Y、Z。让 W 表示白球,B 表示黑球。盒子的内容是:X (2W, 3B) , Y(3W, 1B) , Z(1W, 4B)。

您需要选择 1 个框并从中随机抽取 1 个对象。画出的物体是黑色的概率是多少?

方法一:样本空间 = {(盒子编号,球)} //样本空间 = {(X,W) (X,W) (X,B) (X,B) (X,B) ... . Y 和 Z 类似 }

因此答案是 (3+1+4)/(2+3+3+1+1+4) = 8/14

方法2:求和(选择第i个盒子的概率*选择黑色的概率)=(1/3 * 3/5)+(1/3 * 1/4)+(1/3 * 4/5)= 11/ 20

哪种方法是正确的,为什么?

0 投票
1 回答
5166 浏览

python - 如何在python中生成独立同分布(iid)随机变量

我正在开发一个带有一些随机事件的模拟基础设施(例如,以一定概率生成输出的源)。到目前为止,我一直在使用 random.random() 函数。前任:

据我了解,我的列表“a”中的所有源都将从同一个伪随机 LFSR 源中获取随机数,因此 a[0] 将获得一个样本,然后 a[1] 将获得下一个样本,然后a[2] 等。如果 random.ramdom() 生成了一个真正的随机序列,我相信这仍然会生成 10 个 iid 值子集,但是,因为我假设 python 使用 LFSR 或类似的方案,其中每个随后的样本依赖于前一个样本,取这些样本的几个子集可能是独立的,也可能不是同分布的。

我有两个问题:

  1. 使用我的伪代码或类似的东西我实际上得到了什么样的分布
  2. 如何在 python 中获取多个 iid 随机变量?

我查看了其他堆栈溢出帖子,例如这个: Generate multiple Independent random streams in python 但他们没有回答我的问题。

0 投票
4 回答
1131 浏览

algorithm - 在 O(n) 时间和 O(1) 空间中生成数组的随机排列

我们必须{1,2,3,..,n}O(1)空间中生成数组。
我能够在O(n)太空中做到这一点。

O(n)通过首先存储数组然后将其随机化来完成空间解决方案。但是如何在不将数组存储在O(1)空间中的情况下做到这一点。

我只是生成随机数,而不是存储它们,我需要打印它们,因为存储需要 O(n) 空间,但我需要在 O(1) 空间中进行,我的疑问是我们是否继续生成随机数和打印它们可能会有一些介于 1 到 n 之间的数字,它们可能会生成不止一次,而有些可能不会生成。那么如何在 O(1) 空间中只打印一次所有数字呢?

PS-我没有得到任何数组。输入只是'n',我必须在 O(n) 时间和 O(1) 空间中打印数组 {1,2,3,...,n} 的排列。

0 投票
2 回答
118 浏览

algorithm - 储层抽样无法理解概率

为了明确以下是问题:

给定一个不确定长度的输入流,你如何返回该流的随机成员(每个成员的概率相等),因为你不允许存储超过恒定数量的输入,并且你只能通过输入一次

这个问题的解决方案似乎是 Reservoir Sampling,它在下面说明。“首先,你想创建一个包含 1,000 个元素的容器(数组),并用流中的前 1,000 个元素填充它。这样,如果你正好有 1,000 个元素,算法就可以工作。这是基本情况。

接下来,您要处理第 i 个元素(从 i = 1,001 开始),以便在处理该步骤结束时,您的水库中的 1,000 个元素在您迄今为止看到的 i 个元素中随机抽样。你怎么能做到这一点?从 i = 1,001 开始。在第 1001 步之后,元素 1,001(或与此相关的任何元素)应该在 1,000 个元素的集合中的概率是多少?答案很简单:1,000/1,001。”

我无法理解最后一句“答案很简单:1,000/1,001”。在 1001 个元素的数组中找到 1 个元素的概率不应该是 1/1001 而不是 1000/1001 吗?样本空间不等于 1001 且有利的结果数不等于 1 吗?

0 投票
1 回答
117 浏览

r - 进化动力学的闪亮应用:模拟错误?

我是一名刚开始学习 R 的数学研究生,我真的可以从任何 R 识字的人那里得到一些帮助!

我正在构建一个闪亮的应用程序来模拟概率进化行为(作为马尔可夫过程)。可以在以下位置看到(在展示模式下):

问题:应用程序的模拟部分抛出了 2 个我还没有发现的错误。它们如下:

当种群大小 N 很小(N<10)时,它经常(但不总是)抛出

当种群大小 N 很大(N>100)时,它经常(但不总是)抛出

您可以通过将人口滑块设置为最大 (200) 或最小 (0) 并重复单击“模拟单一人口”(在左侧边栏中)直到出现错误来复制此错误。在出现错误之前,您可能需要多次单击它。

问题似乎源于这部分代码:

我非常感谢有关如何解决此问题的任何帮助或建议!

0 投票
1 回答
113 浏览

python - Python中的高效可视化

我有一个随机过程的数据(由我为它编写的算法生成),该过程由有限空间上的合并和分支随机游走组成,我想使用 python 和可能来自 matplotlib 的东西来可视化。

数据如下所示:

当某些事情发生变化时,过程的状态列表列表(步行移动到一个空白点,与另一个人合并或新粒子诞生),所以像这样(假设过程存在于 {0, 1,2,3,4}:

[[0,1,2,0,2],...,[1,0,2,2,0]],所以一开始我从在位置 1,2 和 4 处具有粒子的过程开始(有两种不同类型的粒子,因此“1”表示存在第一种类型,“2”表示存在第二种,整个“0 " 那里什么都没有)

而且我还有改变流程的事件列表,所以表格列表的列表

所以我知道在何时何地发生了什么(这对应于在图形表示中写下适当的标记,例如,如果事件是粒子向左移动,则向左箭头)。

我写了这样的东西:

这行得通,但速度极慢,因此如果我有一个大流程,则需要花费大量时间来进行可视化(对于相当极端的参数,生成流程数据最多需要几秒钟 - 很大的空间、时间和粒子出生率很高,这意味着很多事件经常改变过程)。

我很确定使用这样的箭头非常愚蠢,但是因为到目前为止我只在 R 中可视化了一些东西(我当然可以简单地从 python 导出我的数据并在 R 中可视化它们,但我想避免这种情况)我也是在 Python 中执行此操作非常环保。

我尝试了一些谷歌搜索,发现了有关 matplotlib 并查看了那里的一些教程,除了箭头之外,我还尝试通过循环遍历plt.scatter()所有状态来可视化进程的状态(没有事件),但是虽然这稍微快了一点,但它仍然非常慢,而且看起来也很乱。

那么我将如何以合理的方式进行绘制呢?即使是“学习正确地在 Python 中绘图”之类的链接也欢迎作为答案。谢谢!