實現楊輝三角的幾種方法

2021-10-19 18:17:40 字數 1859 閱讀 5835

方法一:迭代

def ********_1(x):

""":param x: 需要生成的楊輝三角行數

:return:

"""******** = [[1], [1, 1]] # 初始化楊輝三角

n = 3 # 從第三行開始計數,逐行新增

while n <= x:

for i in range(0, n-1):

if i == 0:

# 新增初始列表[1,1],楊輝三角每行的首位和末位必為1

else:

# 逐位計算,並插入初始列表中

********[n-1].insert(i, ********[n - 2][i] + ********[n - 2][i - 1])

n += 1

return ********

x = 11

******** = ********_1(x)

# 遍歷結果,逐行列印

for i in range(x):

print(' '.join(str(********[i])).center(100)) # 轉為str,居中顯示

方法二:生成器

def ********_2(n):

""":param n: 需要生成的楊輝三角行數

:return:

"""******** = [1] # 初始化楊輝三角

for i in range(n):

yield ********

******** = [********[i] + ********[i - 1] for i in range(len(********))]

# 從生成器取值

for i in ********_5(10):

print(''.join(str(i)).center(100)) # 格式化輸出

方法三:遞迴

楊輝三角特性:

【1,1】=【0,1】+【1,0】

【1,2,1】=【0,1,1】+【1,1,0】

【1,3,3,1】=【0,1,2,1】+【1,2,1,0】

【1,4,6,4,1】=【0,1,3,3,1】+【1,3,3,1,0】

第n行等於第n-1行分別首尾補0,然後按位相加

def ********_4(n):

""":param n:需要生成的楊輝三角行數

:return:

"""******** = [1] # 初始化楊輝三角

楊輝三角的幾種 Python 實現方法

楊輝三角,是二項式係數在三角形中的一種幾何排列,中國南宋數學家楊輝1261年所著的 詳解九章演算法 一書 現 特點每個數等於它上方兩數之和。每行數字左右對稱,由1開始逐漸變大。第n行的數字有n項。第n行的m個數可表示為 c n 1,m 1 即為從n 1個不同元素中取m 1個元素的組合數。第n行的第m...

楊輝三角實現

楊輝三角是二項式係數在三角形中的一種幾何排列,最早是由楊輝在 詳解九章演算法 提出的,比國外要早了393年。著名的數學問題比如兔子生小兔子 斐波那契數列 猴子吃桃子 每天吃一半多乙個,最後還剩乙個 氣泡排序等等。下面試著用c來實現楊輝三角 怎麼實現它呢?include void main for i...

Python實現 楊輝三角 的兩種方法

給定乙個非負整數k k 33 返回楊輝三角的第k行 注意 返回行從0開始 在楊輝三角中,每個數是它左上方和右上方的數的和 example input 3 output 1,3,3,1 高階 你可以優化你的演算法到o k 的空間複雜度麼?def getrow self,rowindex type ro...