用Python三行代码玩转杨辉三角的N种变形
杨辉三角这个古老的数学瑰宝,在编程初学者的世界里常常沦为打印图形的练习题。但今天我们要用Python彻底打破这种刻板印象——只需三行核心代码,就能生成标准杨辉三角,并在此基础上实现倒三角、左对齐、素数高亮等十余种高级变形。这种极致简洁的实现方式,正是Python函数式编程魅力的完美体现。
1. 杨辉三角的数学本质与Python实现
杨辉三角的每个数字都等于它上方两数之和,这个性质可以用递推公式表示为:
C(n, k) = C(n-1, k-1) + C(n-1, k)
传统C语言实现需要手动管理二维数组和内存分配:
int a[n][n];
for(int i=0;i<n;i++) {
a[i][0] = a[i][i] = 1;
for(int j=1;j<i;j++)
a[i][j] = a[i-1][j] + a[i-1][j-1];
}
而Python可以用生成器表达式和zip巧妙实现:
def yanghui(n):
row = [1]
for _ in range(n):
yield row
row = [x + y for x,y in zip([0]+row, row+[0])]
关键突破点:
zip([0]+row, row+[0])创造错位相加效果- 生成器避免内存预分配
- 列表推导式取代嵌套循环
2. 基础变形:从倒三角到镜像对称
2.1 倒置输出
只需反转生成器结果:
list(yang

1399

被折叠的 条评论
为什么被折叠?



