楊輝三角的四種實現方法

2021-09-17 02:29:38 字數 2427 閱讀 9413

******** = [[1], [1, 1]]

for i in range(2, 6):

cur = [1] #current當前

pre = ********[i-1] #previous 先前的

for j in range(i - 1):

print(********)

******** = 

n = 6

for i in range(n):

cur = [1]

if i == 0: continue

pre = ********[i-1]

for j in range(i - 1):

print(********)

n = 6

******** = [[1],[1,1]]

for i in range(2,n):

newrow = ********[i-1]

row = [none] * (i+1)

for j in range(i+1):

row[j] = newrow[j-1] + newrow[j]

print(********)

n = 6

newline = [1] # 第一行是特例,因為0+0不等於1

print(newline)

for i in range(1, n):

oldline = newline.copy() # 淺拷貝並補0

for j in range(i+1):

print(newline)

******** = [[1], [1, 1]] # 所有行

n = 10

for i in range(2, n): # 121

row = [1] * (i + 1) # 一次性開闢記憶體空間,效率更高

for j in range(i//2): # i=4, range(2) => 0, 1

val = ********[i-1][j] + ********[i-1][j+1] # 1 3 3 1

row[j+1] = val

if i != 2*(j+1):# i == 2*(j+1) 中點,n=7出現過3次中點

row[-(j+2)] = val # 有可能被重置

print(********)

******** = 

n = 6

for i in range(n):

row = [1] * (i + 1) # 一次開闢空間

# i為0、1不進來

# i為2,range(1,2),j取1

# i為3,range(1,2),j取1

# i為4,range(1,3),j取1 2

for j in range(1, i//2+1):

val = ********[i-1][j-1] + ********[i-1][j]

row[j] = val

if i != 2 * j:

row[-j-1] = val

print(********)

n = 6

row = [1] * n # 一次性開闢足夠的空間

print(row)

print('-' * 30)

for i in range(n):

old = 1 # 相當於每行行首1,因為i從4開始就有覆蓋了,引入這個變數

for j in range(i//2): # i為0,1不進入

val = old + row[j+1]

old = row[j+1]

row[j+1] = val

if i != 2 * (j+1):

row[i-(j+1)] = val

print(row[:i+1])

n = 6

row = [1] * n # 一次性開闢足夠的空間

print(row)

print('-' * 30 )

for i in range(n):

old = 1 # 相當於每行行首1,因為i從4開始就有覆蓋了,引入這個變數

for j in range(i//2): # i為0,1不進入

# val = old + row[j+1]

# old = row[j+1]

# row[j+1] = val

row[j+1], old = old + row[j+1], row[j+1]

if i != 2 * (j+1):

row[i-(j+1)] = row[j+1]

print(row[:i+1])

楊輝三角實現

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

楊輝三角的不同實現方法

楊輝三角形是形如 11 1 1 2 1 1 3 3 1 1 4 6 4 1 的三角形,其實質是二項式 a b 的n次方展開後各項的係數排成的三角形,它的特點是左右兩邊全是1,從第二行起,中間的每乙個數是上一行裡相鄰兩個數之和。這個題目常用於程式設計的練習。下面給出六種不同的解法。解法一 includ...

用python實現楊輝三角和倒楊輝三角

因為我只有c的基礎所以很多東西是生辦過來的,方法可能有些笨,請諒解。不說了直接附上 import numpy as np 整形輸入 n int input 根據輸入大小來建立矩陣 x,y n,2 n 1 生成全零的numpy矩陣 a np.zeros x,y dtype int 根據規律填數 for...