python - python中的迭代
问题描述
例如,对于 [p1,p2,p3] = [0.4,0.3,0.8],并且 k=2。{1,2,3} 的 2 个子集以及当 i 在子集中时 Xi 为 1 的相应概率是
{1,2} = 0.024 = (0.4x0.3x(1-0.8))
{1,3} = 0.224 = (0.4x0.8x(1-0.3))
{2,3} = 0.144 = (0.3x0.8x(1-0.4))
{1,2}=0.024
{1,3}=0.224
{2,3}=0.144 因此,
P(X=k)=0.024+0.224+0.144=0.392。
这将是什么python代码?我尝试使用 itertools.combination 但它在 0x00000218F0129A48 处显示 itertools.combinations 对象
解决方案
它可能很笨重,但它可以满足您的需求。
import itertools
a = [0.4,0.3,0.8]
l = list(itertools.combinations(a,len(a)-1))
print(l)
x = []
while l:
b = l.pop()
for item in a:
if not item in b:
multiply = 1
for s in b:
multiply = multiply * s
x.append(multiply * (1 - item))
print(x[-1])
print(sum(x))
输出:
0.144
0.22400000000000003
0.023999999999999994
0.392
推荐阅读
- android - 我有一个 http 发布请求,但现在在尝试运行应用程序时,主要活动在创建时崩溃
- javascript - VueJS:当URL中的路由直接在浏览器中输入时,如何确定“来自”路由?
- python - 为什么用透视相机翻转轴?
- powerbi - 使用 DAX 计算每个 ID 的最新日期
- powershell - Powershell - 基于服务器的单独输出 + 导出到 Excel
- javascript - 在 ionic v3 中应用过滤器之前验证我是否收到日期
- canvas - 如何将文本高度绑定到fabricJS文本框中的边界框
- php - symfony 路由器调试器显示奇怪
字首 - java - 如何从 java spring 获取 Microsoft 图形访问令牌
- php - 如何从 etherscan.io 获取数据?