===》点我返回目录《===
Pascal/杨辉三角型如下:
或者是
中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现了这个三角。Pascal帕斯卡在1654年发现这一规律(13岁时发现的),所以这个表又叫做Pascal三角。
它的特点是下面一行的数字由上面一行的数字两两相加而来(从上图等腰三角形看得很清楚。)既然知道了这个特点,我们程序思路就有了,通过前一行算后一行,用循环即可以做到。
我们可以先提炼出一个函数,根据上一行得出下一行:
def calculaterow(n,lastrow):
currentrow=[]
z=0
while z < n: #initial current row
currentrow.append(0)
z+=1
currentrow[0]=1 #the first element is always 1
for i in range(1,n-1): #calculate
currentrow[i]=lastrow[i-1]+lastrow[i]
currentrow[n-1]=1 #the last element is always 1
return currentrow
这个函数的传入参数有两个,n和lastrow,n表示第几行,lastrow是上一行的数组(因为一行有多个值,所以我们用一个数组记录一行值)。currentrow是第n行的数组,元素个数等于n,开头初始化的时候全部给0,一头一尾赋值为1。
有了这个函数