APP下载

Python玩转数学之阶乘

2020-06-30

电脑报 2020年21期
关键词:罗列正整数代码

今天我们来学习阶乘n!,阶乘是基斯顿·卡曼于 1808年发明的运算符号。一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,且0的阶乘为1。自然数n的阶乘写作n!,即n!=1×2×3×…×(n-1)×n。比如4!=4×3×2×1。

下面我们把累加和阶乘相结合,用Python计算出1!+2!+3!+…+20!的和。

第一步先找到階乘的计算规律,用程序列出从1到20的参与阶乘所需的数字(如图1),把需要相乘的数字分行罗列出来,你从图中发现了什么规律(如图2)?

从图2中我们不难发现后一行比前一行每次都会多出一个数字。从最初的一个数字一直到最后一行二十个数字。

数列已经罗列出来了,那么计算出每行数相乘的积,并把它们都加起来就得出结果了。具体方法给你一个小的提示,可以采用保存变量的方法。由小到大累加每次阶乘的值,随着阶乘数值的增加随时求和,直到最后计算完20!,得出总和(如图3)。注意希望函数range()中生成数列是1到20,需要多写一个range(1,21)才符合需要。

分析一下代码,分别设置三个变量,N、S、T。

N是一个循环,循环的范围在1到20之间,目的是为了实现逐步递增的效果。

T作为中间的变量,存储每次阶乘的值,每次每行计算出来的值都保存在T中。

S用来把每次阶乘的值(也就是T的值)累加起来。循环结束,打印出结果。

课后给大家出个拓展练习:

这道题既有阶乘的乘法又有阶乘的加法。请你动手敲敲代码试试看吧。

猜你喜欢

罗列正整数代码
最强大脑
罗列计
接 访
神秘的代码
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
近期连续上涨7天以上的股
对一道IMO题的再研究
使用广泛的“出”
勾股数杂谈