如何修改Python帕斯卡三角生成代码将偶数项设为0奇数项设为1
修改方案
最小改动方案
你只需要修改内层循环中打印组合数的一行代码,对计算出的数值做模2运算即可:奇数模2余1,直接输出1;偶数模2余0,直接输出0。
修改后的完整代码如下:
from math import factorial n = 50 for i in range(n): for j in range(n-i+1): print(end=" ") for j in range(i+1): val = factorial(i)//(factorial(j)*factorial(i-j)) print(val % 2, end=" ") print()
优化方案(可选)
如果需要提升运行效率、避免大数阶乘计算,可以利用帕斯卡三角奇偶性的位运算规则:当且仅当 i & j == j 时,对应位置的数为奇数,无需导入math模块计算阶乘,代码如下:
n = 50 for i in range(n): for j in range(n-i+1): print(end=" ") for j in range(i+1): print(1 if (i & j) == j else 0, end=" ") print()
内容的提问来源于stack exchange,提问作者ThunderWolf
相关产品推荐
相关产品推荐

