Python算法100例-4.3 多项式之和

完整源代码项目地址,关注博主私信'源代码'后可获取

1.问题描述

计算下列多项式的值:

在这里插入图片描述

2.问题分析

方法一:把上面多项式中的每一个分项标上记号,第一个式子的记号为1,第二个式子的记号为2,第三个式子的记号为3,以此类推。可以发现式子的分母与记号之间的关系如表所示。

在这里插入图片描述

通过上表可以发现,每一项分式的分母都是对应项标记的阶乘。所以只要求出每一项的阶乘再将其倒数和加在一起即为所求多项式的结果。

方法二:整体去看每一个分式之间的联系,每一个分式用一个字母来代替,第一个分式用t1表示,第二个分式用t2表示,以此类推,如表所示。

在这里插入图片描述

由上表可以看出,后面一项等于前一项乘以当前项数的倒数,如果这里的每一项都用同一个变量t表示,那么第i项就可以用公式表示为t=t*1/i。这样可以只用一层循环来实现,循环变量i控制对应的项数,取值范围为1~n。

3.算法分析

n的阶乘算法为:n!=1×2×3×4×5×…×n,可用循环来实现。代码如下:

t = 1                                           # t记录每一项分式的分母,每次循环之前给t赋初值
j = 1
while j <= i:
    t = t * j               # 每一项的阶乘
    j += 1

对于每一项都是求出其分母即项数i对应的阶乘,是一个循环重复的过程,故可用另外一层循环来控制项数,范围为1~n。代码如下:

i = 1
while i <= n:                # i控制对应的项数

对于存储阶乘的变量t,每一次记录新的阶乘之前都要把其值赋为1,否则下一项的阶乘值会受上一项的影响,所以在每次执行内层循环求下一项阶乘之前,要把t的值再次赋为1。

方法二的算法分析此处省略,后面将给出相关程序。

4.确定程序框架

程序流程图如图所示。

在这里插入图片描述

5.完整的程序

方法1:

# 多项式之和

if __name__ == "__main__":
    n = int(input("请输入一个整数n: "))
    print(f'输入的整数是{n}')
    s = 0                                           # s记录多项式的和
    i = 1
    while i <= n:                                # i控制对应的项数
        t = 1                                       # t记录每一项分式的分母,每次循环之前给t赋初值
        j = 1
        while j <= i:
            t = t * j                       # 每一项的阶乘
            j += 1
        s = s + 1/t
        i += 1
    print("%f" %s)
输入的整数是50
1.718282

方法2:

# 多项式之和
if __name__ == "__main__":
    s = 0                                           # s记录多项式的和
    n = int(input("请输入一个整数n: "))
    print(f'输入的整数是{n}')
    t = 1
    for i in range(1, n+1):         # i<=n,i控制对应的项数
        t = t*1/i                           #将分式的值赋给变量t
        s = s + t
    print("%f" %s)
输入的整数是50
1.718282
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飘逸高铁侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值