高尔夫球代码:生成帕斯卡三角形
发布于 2021-01-31 15:57:55
生成一个列表列表(或打印,我不介意),以最小的代码行显示N大小的Pascal三角形!
这是我的尝试(使用技巧 python 2.6中的
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填充,另一个列表的末尾填充。
- 例如,对于第2步,我们采取
[1]
和化妆[0,1]
和[1,0]
- 例如,对于第2步,我们采取
- 将两个新列表元素相加
- 例如,我们创建一个新列表
[(0,1),(1,0)]
并使用总和进行映射。
- 例如,我们创建一个新列表
- 重复n次,仅此而已。
用法(打印漂亮,实际上超出了代码高尔夫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
关注者
0
被浏览
58
1 个回答
-
J ,APL系列的另一种语言,9个字符:
p=:!/~@i.
它使用J的内置“组合”动词。
输出:
p 10 1 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 0 1 3 6 10 15 21 28 36 0 0 0 1 4 10 20 35 56 84 0 0 0 0 1 5 15 35 70 126 0 0 0 0 0 1 6 21 56 126 0 0 0 0 0 0 1 7 28 84 0 0 0 0 0 0 0 1 8 36 0 0 0 0 0 0 0 0 1 9 0 0 0 0 0 0 0 0 0 1
推荐阅读
-
三角形态是属于持续整理形态的一类形态,三角形主要分为( )。I 对称三角形Ⅱ 等边三角形Ⅲ 上升三角形Ⅳ 下降三角形
2021-04-15 关注 0 浏览96 1答案
-
阻抗三角形与电压三角形相似,因此阻抗三角形也是向量三角形。
2021-04-21 关注 0 浏览98 1答案
-
三角形态是属于持续整理形态的一类形态,三角形主要分为()。Ⅰ.对称三角形Ⅱ.等边三角形Ⅲ.上升三角形Ⅳ.下降三角形
2021-04-15 关注 0 浏览106 1答案
-
如何有效地计算帕斯卡三角形中的一行?
2021-01-31 关注 0 浏览49 1答案
-
从点云生成三角形网格的算法
2021-01-31 关注 0 浏览74 1答案
-
Java练习:使用递归方法打印星号三角形及其倒三角形
2021-01-29 关注 0 浏览116 1答案
-
拼凑三角形
2022-03-03 关注 0 浏览33 1答案
-
数三角形
2022-03-03 关注 0 浏览47 1答案
-
组装三角形
2022-03-03 关注 0 浏览45 1答案
-
拼凑三角形
2022-03-03 关注 0 浏览30 1答案