gpt4 book ai didi

algorithm - Code Golf :生成帕斯卡三角形

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:13:49 27 4
gpt4 key购买 nike

<分区>

生成列表列表(或打印,我不介意)a Pascal's Triangle大小为 N,代码行数尽可能少!

这是我的尝试(在 python 2.6 中使用 a trick 118 个字符):

c,z,k=locals,[0],'_[1]'
p=lambda n:[len(c()[k])and map(sum,zip(z+c()[k][-1],c()[k][-1]+z))or[1]for _ in range(n)]

解释:

  • 列表理解的第一个元素(当长度为0时)是[1]
  • 接下来的元素是通过以下方式获得的:
  • 把前面的列表做成两个列表,一个在开头用 0 填充,另一个在结尾用 0 填充。
    • 例如对于第 2 步,我们采用 [1] 并生成 [0,1][1,0]
  • 将两个新列表逐个元素相加
    • 例如我们创建一个新列表 [(0,1),(1,0)] 并用总和映射。
  • 重复n次即可。

用法( pretty-print ,实际上是 code-golf xD):

result = p(10)
lines = [" ".join(map(str, x)) for x in result]
for i in lines:
print i.center(max(map(len, lines)))

输出:

             1             
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com