首页 > 解决方案 > 计算大指数份额/概率

问题描述

假设有一个事件空间 ES。假设有一些对象集 OS[]。选择任何对象的概率是互不相交的。

现在,假设每个集合的大小基于分配给它的数字 X[i]。每组的大小随着该数字呈指数增长。

由于其良好的特性,用于求幂的底数 (B) 可能是欧拉数 (e),但我们假设情况可能并非如此。

现在,我们正在计算随机选择选定集合中任何成员的概率,同时记住每个集合的元数可能非常大。

在知道概率序列后,它用于计算 P[i]*(C)。

我想知道这是否可以针对非常大的指数进行优化/近似,即以低内存消耗计算,即实现。

我发现的相关问题 仍然是他们似乎只解决相反的概率。

//  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 会失败。

标签: algorithmmathoptimizationprobabilityexp

解决方案


所以你有一个 number a>1,一个整数数组元素Bn并且对于每个i,你要计算a^B[i] / (a^B[1] + a^B[2] + ... + a^B[n])

C[i] = B[i] - max(B[1], ..., B[n]). 然后你计算 a^C[i] / (a^C[1] + a^C[2] + ... + a^C[n])。由于C现在的所有元素都是非正数,因此您不必关心溢出。


推荐阅读