【蓝桥杯每日一练】 巴斯卡三角形(杨辉三角形)
目錄
1.說明
?2.python實現
1.說明
巴斯卡三角形又叫楊輝三角,賈憲三角形 他有以下?性質:
前提:端點的數為1(這不是廢話嗎,頭上那個端點不是1還是三角形嗎)
1、每個數等于它上方兩數之和。
2、每行數字左右對稱,由1開始逐漸變大。
3、第n行的數字有n項。
4、第n行數字和為2n-1。
5、第n行的第m個數和第n-m+1個數相等,即C(n-1,m-1)=C(n-1,n-m)(組合數性質之一)
6、每個數字等于上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角。即第n+1行的第i個數等于第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即
7、第n行的m個數可表示為C(n-1,m-1)(n-1下標,m-1上標),即為從n-1個不同
元素中取m-1個元素的組合數。組合數計算方法:C(n,m)=n!/[m!(n-m)!]
8、(a+b)^n的展開式中的各項系數依次對應楊輝三角的第(n+1)行中的每一項。
9、將第2n+1行第1個數,跟第2n+2行第3個數、第2n+3行第5個數……連成一線,這些數的和是第4n+1個斐波那契數;將第2n行第2個數(n>1),跟第2n-1行第4個數、第2n-2行第6個數……這些數之和是第4n-2個斐波那契數。
10、將各行數字相排列,可得11的n-1(n為行數)次方:1=11^0; 11=11^1; 121=11^2……;細心的人可能會發現當n≥5時會不符合這一條性質,其實是這樣的:把第n行的最右面的數字"1"放在個位,然后把左面的一個數字的個位對齊到十位... ...,以此類推,把空位用“0”補齊,然后把所有的數加起來,得到的數正好是11的n-1次方。以n=11為例,第十一行的數為:1,10,45,120,210,252,210,120,45,10,1;
2.python實現
def yanghui():# 定義第一行列表為[1]L=[1]while True:# yield的作用:把一個函數變成生成器,同時返回一個list,下次從yield的下條語句執行yield L# 設上一個為[1],通過式子可得[1,1],繼而[1,2,1]......L = [1] + [ L[i-1] + L[i] for i in range(1,len(L)) ] + [1]n = 0 for i in yanghui():print(i) n = n+1if n == 10 :break返回:
?這里是列表的,我們接下來看看字符串的
# python實現楊輝三角形 def yanghui():# 定義第一行列表為[1]line = [1]while True:# yield的作用:把一個函數變成生成器,同時返回一個list,下次從yield的下條語句執行yield line# 設上一個為[1],通過式子可得[1,1],繼而[1,2,1]......line = [1] + [line[i] + line[i + 1] for i in range(len(line) - 1)] + [1]n = 0 # 生成器可迭代,做個遍歷 for i in yanghui():# 打印每行的列表的元素,用空格連接print(" ".join(str(j) for j in i))# 打印完一行,n+1n += 1# 如果變量n等于輸入的行數,跳出for循環if n == 10:# 跳出循環break返回:
?前兩個,我們都是設置的固定,到第十行就結束,那么可不可以我們自己設置多少行結束呢?
# python實現楊輝三角形 def yanghui():# 定義第一行列表為[1]line = [1]while True:# yield的作用:把一個函數變成生成器,同時返回一個list,下次從yield的下條語句執行yield line# 設上一個為[1],通過式子可得[1,1],繼而[1,2,1]......line = [1] + [line[i] + line[i + 1] for i in range(len(line) - 1)] + [1]# 輸入楊輝三角形的行數 n = int(input("請輸入行數:")) # 定義一個結束的變量 flag = 0 # 生成器可迭代,做個遍歷 for i in yanghui():# 打印每行的列表的元素,用空格連接print(" ".join(str(j) for j in i))# 打印完一行,flag+1flag += 1# 如果變量flag等于輸入的行數,跳出for循環if flag == n:# 跳出循環break返回:
總結
以上是生活随笔為你收集整理的【蓝桥杯每日一练】 巴斯卡三角形(杨辉三角形)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 整数线性规划实现(matlab分枝界定法
- 下一篇: MATLAB教程(1) MATLAB 基