【发布时间】:2020-01-23 20:10:20
【问题描述】:
假设有一个事件空间 ES。 假设有一些对象集合 OS[]。 选择任何对象的概率是互不相交的。
现在,假设每个集合的大小基于分配给它的数字 X[i]。 每组的大小随着该数字呈指数增长。
用于求幂的底数 (B) 可能是欧拉数 (e),因为它具有良好的属性,但我们假设情况并非如此。
现在,我们在计算随机选择选定集合的任何成员的概率之后,同时记住每个集合的元数可能非常大。
知道概率序列后,它用于计算 P[i]*(C)。
我想知道这是否可以针对非常大的指数进行优化/近似,即以低内存消耗计算,即实现。
我发现的相关问题是here,但他们似乎只处理相反的概率。
// Numerical example:
// A,C - constants, natural numbers
//exponents
X[1] = 3432342332;
X[2] = 55438849;
X[3] = 34533;
//probabilities
P1 = A^X[1]/(A^X[1]+A^X[2]+A^X[3]);
P2 = A^X[2]/(A^X[1]+A^X[2]+A^X[3]);
P3 = A^X[3]/(A^X[1]+A^X[2]+A^X[3]);
//Results
R1 = P1 *C;
R2 = P2 *C;
R3 = P3 *C;
当指数大于几百时,Excel 会失败。
【问题讨论】:
-
你能添加一个数值例子吗?这肯定会有所帮助。
-
@Stratubas 我已经包含了一个示例。
-
“我使用幂运算的原因是我需要增加指数才能导致份额呈指数变化”您能否更彻底地解释这一点或为此添加一个示例?也许你可以通过不同的计算得到相同的结果
-
@Damien,我已经重构了整个问题。
-
我们在谈论什么样的精度?乍一看,如果 P1 是 64 位浮点数,那么答案是 P1 = 1/3 for A = 1 and P1 = 1 for A >= 2。第二个结果的原因是 A^(X[1] - X[2]) 对于 A >= 2 来说是一个很大的数字,因此 A^X[1] 将比分母中的其余部分大得多,概率基本上为 1。或者我错过了什么?
标签: algorithm math optimization probability exp