第m行有m項,m是正整數,因此k一定不會大於m,這個需求需要儲存m行的資料,那麼可以使用乙個巢狀結構[,,]
m=int(input('行》'))
k=int(input('第幾個數》'))
********=
for i in range(m):
row=[1] #所有行都以1開頭
if i==0:
continue
for j in range(1,i):
print("--------------------------------")
print(********)
print("--------------------------------")
print("第%d行第%d個數為:%d"%(m,k,********[m-1][k-1]))
組合數方式:根據楊輝三角的定理,第n行的m個數(m>0且n>0)可表示為c(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數
組合數公式:有m個不同的元素,任意取n(n≤m)個元素,記作c(m,n),則c(m,n)=m!/(n!(m-n)!) =c(m,m-n)
m = int(input('行》'))
k = int(input('列》')) # 則c(n,r)=c(m-1,k-1)=(m-1)!/((k-1)!(m-r)!)= n!/(r!(n-r)!)
n = m - 1
r = k - 1
d = n - r
targets = #r, n-r, n
factorial = 1 #可以加入k為1或m的判斷,返回1
for i in range(1,n+1):
factorial *= i
if i == r:
if i == d:
if i == n:
print(targets[2]//(targets[0]*targets[1]))
n = int(input('>>'))
tiangle=[[1],[1,1]] #預先定義前兩行
for i in range(2,n):
per=tiangle[i -1]
cur = [1] #建立新行,首位為1
for j in range(i-1): #迴圈新增中間值
print(tiangle) #將新生成的行新增到總列表
n = int(input('>>'))
******** = [[1],[1,1]]
for i in range(2,n):
row = [1]*(i + 1) #列印第n行先建立出n個元素列表
pre = ********[i - 1]
for j in range(i//2): #推算該行前一半的值
val = pre[j] + pre[j + 1]
row[j + 1] = val
row[ - j - 2] = val #對稱賦值
print(********)
舉例:計算前6行
n = 6
row = [1] * n #一次性開闢足夠的空間
for i in range(n):
offset = n – i
z = 1 #因為會有覆蓋影響計算,所以引入乙個臨時變數
for j in range(1,i//2+1): #對稱性
val = z + row[j]
row[j],z = val,row[j]
if i != 2*j:
row[-j-offset] = val
print(row[:i+1]) #從row的第乙個元素列印到第i個
一次性開闢好n個長度的空間,每次推算新行時不生成新的列表,在原來的基礎上賦值替換。
n = int(input('>>'))
row = [1]*n #一次性開闢空間
for i in range(n):
z = 1
for j in range(i//2):
val = z +row[j+1] #計算出來的新值會影響後面的計算,使用臨時變數置換一下
z = row[j+1]
row[j+1]=val
row[i-j-1]=val #對稱賦值 row[j+1]=row[i-j-1]
print(i,end='\t')
print(row[:i+1]) #最後在總列表中擷取當前計算的行長度列印出來
Python列印楊輝三角
最近在看廖雪峰的python教程,學到生成器時用生成器輸出楊輝三角 def s l1 l2 m 0while true if m 0 elif m 1 else for k in range len l1 print k if k 0 l1 k l2 k l2 k 1 l2 l1 m m 1 yie...
python 列印楊輝三角
楊輝三角最本質的特徵是,它的兩條斜邊都是由數字1組成的,而其餘的數則是等於它肩上的兩個數之和。def yanghui n result 1 1,1 初始化楊輝三角 line 1,1 楊輝三角的特徵,斜邊都是數字1 for i in range 2,n r for j in range len lin...
列印楊輝三角python
特點 楊輝三角的每行行首與每行結尾的數都為1.而且,每個數等於其左上及其右上二數的和 def yanghui num 列印楊輝三角 param num 列印的行數 return yh num for row in range len yh yh row none row 1 for col in r...