关注微信公众号“酸痛鱼”,获得更多最新最全的文章。
本文中所涉及的代码,在未特殊声明的情况下,都是基于Python3程序设计语言编写的。
建议您在PC浏览器中阅读本文,以获得更好的阅读体验。
如果您未掌握知识提要中的内容,建议您先掌握这些内容之后再阅读本文。如果您看不懂本期的内容,建议您先阅读往期文章。
知识提要
1、range、lambda、reduce
2、二项式系数、组合数、杨辉三角
3、列表过滤语法
0
问题描述
杨辉三角,是二项式系数在三角形中的一种几何排列。给定一个非负索引n,返回杨辉三角的第n行。
例如:
输入:0
返回:[1]
输入:1
返回:[1, 1]
输入:2
返回:[1, 2, 1]
杨辉三解又叫Pascal’s Triangle,为了表述方便,在下文中,我们将用P(n)来代码杨辉三解的第n行。
1
问题分析
二项式系数,是二项(x+y)^n展开后各项的系数,第r列的值为C(n, r)。
杨辉三角是二项系数的几何排列,其相临两个行存在递推关系,如动图所示(图片来源于网络,若侵权,请通知删除),以及组合数的性质,我们可以推算出如下递推规律:
C(n, 0) = 1
C(n, n) = 1
C(n, r) = C(n - 1, r – 1) + C(n – 1, r) # n>1且r>0