楊輝三角,是二項式係數在三角形中的一種幾何排列,在中國南宋數學家楊輝1261年所著的《詳解九章算法》一書中出現。在歐洲,帕斯卡(1623----1662)在1654年發現這一規律,所以這個表又叫做帕斯卡三角形。帕斯卡的發現比楊輝要遲393年,比賈憲遲600年。
楊輝三角是中國數學史上的一個偉大成就。
概述
- 每個數等於它上方兩數之和。
- 每行數字左右對稱,由1開始逐漸變大。
- 第n行的數字有n項。
- 第n行的m個數可表示爲 C(n-1,m-1),即爲從n-1個不同元素中取m-1個元素的組合數。
- 第n行的第m個數和第n-m+1個數相等 ,爲組合數性質之一。
- 每個數字等於上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角。即第n+1行的第i個數等於第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。
- (a+b)n的展開式中的各項係數依次對應楊輝三角的第(n+1)行中的每一項。
- 將第2n+1行第1個數,跟第2n+2行第3個數、第2n+3行第5個數……連成一線,這些數的和是第4n+1個斐波那契數;將第2n行第2個數(n>1),跟第2n-1行第4個數、第2n-2行第6個數……這些數之和是第4n-2個斐波那契數。
- 將第n行的各數值,分別乘以10的列數m-1次方,然後把這些數值相加的和等於11的n-1次方。例子:第11行數分別爲1,10,45,120,210,252,210,120,45,10,1,則11^10 = 110^0+1010^1+4510^2+...+110^10 =25937424601
以上摘自:百度百科。
方法1、
n = int(input('請輸入楊輝三角打印的行數:'))
triangle = [[1],[1,1]]
for i in range(2,n):
pre = triangle[i-1]
cur = [1]
for j in range(0,i-1):
cur.append(pre[j]+pre[j+1])
cur.append(1)
triangle.append(cur)
for k in range(n):
pir = triangle[k]
print(pir)
方法2
n = int(input('請輸入楊輝三角打印的行數:'))
triangle = []
for i in range(n):
row = [1]
triangle.append(row)
if i ==0:
continue
for j in range(i-1):
row.append(triangle[i-1][j]+triangle[i-1][j+1])
row.append(1)
for k in range(n):
pir = triangle[k]
print(pir)
方法3:
n = int(input('請輸入楊輝三角打印的行數:'))
oldline = []
newline = [1]
length = 0
print(newline)
for i in range(1,n):
oldline = newline.copy()
oldline.append(0) #尾部加0,相當於2端加0
newline.clear()
offset = 0
while offset <= i:
newline.append(oldline[offset-1]+oldline[offset])
offset +=1
print(newline)
方法4:
n = int(input('請輸入楊輝三角打印的行數:'))
oldline = []
newline = [1]
length = 0
print(newline)
for i in range(1,n):
oldline = newline.copy()
oldline.append(0) #尾部加0,相當於2端加0
newline.clear()
for j in range(i+1):
newline.append(oldline[j-1]+oldline[j])
print(newline)