会员登录|免费注册|忘记密码|管理入口 返回主站||保存桌面|手机浏览|联系方式|购物车
VIP   企业会员第1年

杭州小码教育科技有限公司  
加关注1

杭州小码教育科技有限公司主营青少年少儿编程培训教育!

搜索
侧栏友情链接
新闻分类
侧栏荣誉资质
侧栏联系方式
  • 联系人:(女士 )
  • 电话:4000596872
  • 邮件:3268851033@qq.com
  • 微信:18757550914
  • QQ:3268851033
侧栏站内搜索
 
首页 > 公司新闻 > python编程教程:Python的杨辉三角
公司新闻
python编程教程:Python的杨辉三角
来源:{$COM[company]  发布时间:2023-12-29 11:03:21浏览量:13

杨辉三角,是一种像三角形一样的几何排列。在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。

[代码运行结果]

[代码]

# 算法一: 递归

def pasica(n):

'''n 代表三角的层号,从0开始'''

if n==0:

return (1,)

else:

res = (1,)

for i in range(n-1):

res += ( pasica(n-1)[i]+pasica(n-1)[i+1] ,)

res += (1,)

return res

# Test code

# print( pasica(0) )

# print( pasica(1) )

# print( pasica(2) )

# print( pasica(3) )

# print( pasica(4) )

# print( pasica(5) )

# print( pasica(6) )

# print( pasica(7) )

# print( pasica(8) ) # 开始卡

# print( pasica(9) ) # 很慢了

# 算法二: 用闭包设计缓存机制

def pasica():

'''n 代表三角的层号,从0开始'''

alldata = [(1,),(1,1)] # 设计缓存

def pas(n):

lastestID = len(alldata)-1

if n<=lastestID:

return alldata[n] # 由缓存提取数据

else:

for i in range(n - lastestID ): # 需要在alldata里补充 n - lastestID

tu=[]

lastLine = list(alldata[lastestID])

lastLine = [0]+lastLine+[0]

# print(lastLine,'='*10)

for j, d in enumerate(lastLine):

if j+1

tu.append(d+lastLine[j+1])

alldata.append(tuple(tu))

lastestID = len(alldata)-1

return alldata[n]

return pas

fpas = pasica()

# Test

# print( fpas(0) )

# print( fpas(1) )

# print( fpas(2) )

# print( fpas(3) )

# print( fpas(4) )

# print( fpas(5) )

# print( fpas(6) )

# print( fpas(7) )

# print( fpas(8) )

# print( fpas(9) )

def seeOutput( n ):

aa = fpas(n)

weight = len( str( max(aa))) + 1

nline = " ".join( [ "{:<{w}}".format(e, w=weight) for e in aa] )

alldata = []

for i in range(n+1):

aa = fpas(i)

iline = " ".join( [ "{:<{w}}".format(e, w=weight) for e in aa] )

print( "{:^{w}}".format(iline, w=len(nline)) )

seeOutput(10)

print()

以上就是关于python编程教程:Python的杨辉三角的分享,希望能对你有所帮助。

免责申明:
本页面所展现的公司信息、产品信息及其他相关信息,均来源于其对应的商铺,信息的真实性、准确性和合法性由该信息来源商铺的所属发布者完全负责,黔优网对此不承担任何保证责任。如您发现该企业商铺内有任何违法/侵权信息,请立即点此【投诉举报】并提供有效线索。