日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【蓝桥杯每日一练】 巴斯卡三角形(杨辉三角形)

發布時間:2025/3/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【蓝桥杯每日一练】 巴斯卡三角形(杨辉三角形) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

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

返回:

總結

以上是生活随笔為你收集整理的【蓝桥杯每日一练】 巴斯卡三角形(杨辉三角形)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。