加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 计算成对产品,三元产品等的总和

发布时间:2020-12-20 11:06:30 所属栏目:Python 来源:网络整理
导读:1)问题表述: 给定长度为n的向量:a = [a1,a2,..,an],我需要计算向量b = [b1,b2,… bn],这样: b1=a1+a2+...+anb2=a1a2+a1a3+...+a1an+a2a3+...+a2an+...+a{n-1}anb3=a1a2a3+a1a2a4+...+a1a2an+a1a3a4+......bn=a1a2a3...an b的每个连续条目包含a,成对产品的
1)问题表述:

给定长度为n的向量:a = [a1,a2,..,an],我需要计算向量b = [b1,b2,… bn],这样:

b1=a1+a2+...+an
b2=a1a2+a1a3+...+a1an+a2a3+...+a2an+...+a{n-1}an
b3=a1a2a3+a1a2a4+...+a1a2an+a1a3a4+...
...
bn=a1a2a3...an

b的每个连续条目包含a,成对产品的总和,三元产品等的条目的总和.

有没有人知道有效的算法,或者可能是现有的库实现?

我在想类似的东西

b1=sum(a)
b2=a1*sum(a[1,:])+a2*sum(a[2,:])+...

同样适用于所有其他条目.

2)为什么我需要这个:

我想使用拉格朗日插值多项式展开来执行一维函数积分.我的问题是Newton-Cotes公式的扩展.该公式用于计算定积分.与Newton-Cotes不同,我想在选定的搭配点计算给定函数f的完全反微分特征,因此我必须整合每个拉格朗日插值多项式.

我不需要工作代码.我对算法更感兴趣,是否已经实现了.

谢谢,
米哈伊尔

编辑:示例:

设a = [1,2,3,4].

然后

b = [1 2 3 4,1 * 2 1 * 3 1 * 4 2 * 3 2 * 4 3 * 4,1 * 2 * 3 1 * 2 * 4 1 * 3 * 4 2 * 3 * 4,1 * 2 * 3 * 4] = [10,35,50,24]

解决方法

from functools import reduce
from itertools import combinations
from operator import mul
a = [1,4]
print([sum(reduce(mul,c) for c in combinations(a,i + 1)) for i in range(len(a))])

这输出:

[10,24]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读