使用Python实现多项式系数卷积乘法

本文介绍了如何使用Python实现复数多项式的卷积乘法,详细解析了算法逻辑,并提供了两种不同的实现方法。内容源于华为面试题,涉及多项式系数的卷积计算,适用于高阶复数多项式。
摘要由CSDN通过智能技术生成

关键字

多项式乘法 卷积乘法 Python 多项式系数 卷积系数 复数多项式 华为机考 算法

问题来源

来源于一个华为面试题。题目内容大致如下:

题目描述

多项式 的系数[b(2) b(1) b(0)]=[1 2 5]
二者相乘所得的多项式 的系数[c(3) c(2) c(1) c(0)]=[1 3 7 5]
利用上面的计算方法,我们很容易得到:
c(0)=a(0)b(0)
c(1)=a(0)b(1)+a(1)b(0)
c(2)=a(0)b(2)+a(1)b(1)+a(2)b(0)
c(3)=a(0)b(3)+a(1)b(2)+a(2)b(1)+a(3)b(0)
其中:a(3)=a(2)=b(3)=0
在上面的基础上推广一下:
假定两个多项式的系数分别为a(n),n=0n1和b(n),n=0n2,这两个多项式相乘所得的多项式系数为c(n),则:
c(0)=a(0)b(0)
c(1)=a(0)b(1)+a(1)b(0)
c(2)=a(0)b(2)+a(1)b(1)+a(2)b(0)
c(3)=a(0)b(3)+a(1)b(2)+a(2)b(1)+a(3)b(0)
c(4)=a(0)b(4)+a(1)b(3)+a(2)b(2)+a(3)b(1)+a(4)b(0)
以此类推可以得到卷积算法:
上面这个式子就是a(n)和b(n)的卷积表达式。
通常我们把a(n)和b(n)的卷积记为:a(n)b(n),其中的表示卷积运算符

输入描述

两个最高阶数为4的复数多项式系数序列。高阶系数先输入;每个系数为复数,复数先输入实数部分,再输入虚数部分; 实部或者虚部为0,则输入为0;
每个实部和虚部的系数最大值不超过1000

输出描述

求卷积多项式系数输出;先输出高阶系数,多项式算法.
输出的期望结果是多项式乘积结果,因为自己的算法研究的不太深入,所以肤浅地了解到这个可以称之为卷积。

测试Demo

输入:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

输出

0
2
0
4
0
6
0
8
0
10
0
8
0
6
0
4
0
2

思路和代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值