0 引言
楊輝三角,是二項式系數在三角形中的一種幾何排列,在中國南宋數學家楊輝1261年所著的《詳解九章算法》一書中出現。它具有以下的特征:1、最外層的數字始終是 1 2、第二層是自然數列 3、第三層是三角數列 4、三角數列相鄰數字相加可得方數數列 5、每一層的數字之和是一個2倍增長的數列 6、斐波那契數列(按一定角度排列) 7、素數(在楊輝三角裡,除了第二層自然數列包含了素數以外,其他部分的數字都完美避開了素數。) 8、可以被特定數整除的數字形成了奇妙的分形結構
1 問題描述
示例一:
輸入:n = 10
輸出:“1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1”
解釋:除兩邊的1之外,每個數字等于它肩上的兩數字之和
2 算法描述
解題思路:首先要明白楊輝三角的組成為,除了兩邊的1之外,每個數字等于它肩上的兩數字之和。(其實兩邊的1也可以想成在左右兩邊的1的左右還有個0)。我們由楊輝三角可得其第一行為1,所以暫定一個arr = [1],在知道運行邏輯後我們就運用循環求出所需行數的楊輝三角數(這裡運用的是while循環)。因為楊輝三角數由其肩上左右兩數之和所得,但通過觀察我們可得楊輝三角數整體是呈現對稱分布的,所以在這裡我們确定一個為左起始,一個為右起始的列表,之後我們就可以通過循環求和,得到楊輝三角數。但是之後發現得到的是個集合,所以為了美觀,我們先将其轉化為字符串(str),通過簡單内置函數“join”連接字符串,得到最終答案。當然我們發現最後會少個1,沒關系,這個直接打印,簡單又粗暴。
3 實驗結果與讨論
通過編程最終實現了楊輝三角的呈現。
附件
代碼清單 用python求出楊輝三角數
arr = [1] print(1) # 初始結果 while len(arr) < 10: # 确定行數 a = [0] + arr # [0,1,1]代表從右往左的全部三角數 b = arr + [0] # [1,1,0]代表從左往右的全部三角數 arr = [a[i] + b[i] for i in range(len(a))] # [1,2,1] 通過求和相加求出所有的楊輝三角數 s = [str(i) for i in arr] # 将答案變成字符串的類型 print(' '.join(s)) # 連接字符串,輸出答案 |
4 結語
楊輝三角的探讨是對古典數學的回顧,也是對邏輯思維的探讨,從邏輯發現數學之美,探讨編程的博大精深。
有話要說...