别光打印三角形了!用Python三行代码玩转杨辉三角的N种变形

用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值