猫史档案馆


【Python作品分享】杨辉三角【作品秀】

用户:Planet_CubePlanet_Cube查看:0 回复:1 评论:0 创建时间:2021-11-07T16:26:10


【作品展示】

center_image

 

【作品介绍】

杨辉三角,又叫帕斯卡系数三角,由(a+b)^n(n为正整数常数,a,b为任意实数)得到。

手动计算杨辉三角是非常困难的,所以我编写了这个程序。

鄙人编程技术不佳,各位dalao看看就好~

 

【作品源代码】

# 注:输入必须为列表形式!
# 由于计算机的编程法则是从0开始的,而且这也符合数学规则,所以在使用时请一定要注意

# 定义杨辉三角产生下一行的规则
def row_next(row):
    new_row = [1]                               # 给定初始数,杨辉三角的默认起点是1
    for i in range((len(row) - 1)):             # 遍历上一行
        new_row.append((row[i] + row[(i + 1)])) # 产生新行
    new_row.append(1)                           # 加上新行的“尾巴”
    return new_row                              # 得到结果
# 生成整个杨辉三角(由于在外国它叫帕斯卡三角所以我给它命名为pascal_tr)
def pascal_tr(row):
    num_list = [[1]]                            # 给定初始行
    for i in range(row):                        # 重复所需要的行数
        num_list.append(row_next(num_list[-1])) # 添加新行
    return num_list                             # 得到矩阵形式的杨辉三角
# 单独获取杨辉三角的一行
def get_row_PT(row):
    return pascal_tr(row)[row]
# 单独获取杨辉三角一行的一个数
def get_num_PT(row, column):
    return pascal_tr(row)[row][column]
# 测试一下
print(row_next([1,4,6,4,1]))    # 结果为[1, 5, 10, 10, 5, 1]
print(pascal_tr(10))            # 结果为[[1], [1, 1], ···, [1, 10, 45, ···, 10, 1]]
print(get_row_PT(12))           # 结果为[1, 12, 66, ···, 220, 66, 12, 1]
print(get_num_PT(12, 9))        # 结果为220

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
摸鱼真快乐摸鱼真快乐

center_image

点赞0


评论