You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现牛顿二项式(x-y)^n:如何修改现有(x+y)^n输出代码

(x-y)^n展开式符号交替逻辑实现

核心原理

(x-y)^n可以等价转换为(x + (-y))^n,展开后每一项的符号由y的幂次k决定:

  • 当k为偶数时,(-y)^k为正,对应项符号为正
  • 当k为奇数时,(-y)^k为负,对应项符号为负

最简修改方案(仅调整符号,不改动原有输出格式)

只需要替换原代码中连接符的输出逻辑即可:原代码固定输出+,现在根据下一项的k值(自增后的k)的奇偶性决定输出+还是-,修改后的代码片段如下:

print("Enter n:")
n = int(input())
k = 0
while k <= n:
   print(koef(n,k),"*x^",n-k,"*y^",k,sep = '', end = '')
   k = k+1
   if k <= n:
      print(" - " if k%2 == 1 else " + ",end = '')

该版本输出格式为1*x^10 - 10*x^9*y^1 + 45*x^8*y^2...,符号逻辑完全符合要求。

优化显示方案(匹配你给出的预期输出格式)

如果需要隐藏系数1、省略x1/y1的幂次标记,可以使用完整修改代码:

def fact(m):
   f = 1
   for i in range(1,m+1):
      f = f*i
   return f

def koef(n,k):
   x = fact(n)
   y = fact(k)
   c = fact(n-k)
   return x//(y*c)

print("Enter n:")
n = int(input())
k = 0
while k <= n:
    coeff = koef(n,k)
    # 处理x部分的显示
    if n - k == 0:
        x_part = ""
    elif n - k == 1:
        x_part = "x"
    else:
        x_part = f"x^{n-k}"
    # 处理y部分的显示
    if k == 0:
        y_part = ""
    elif k == 1:
        y_part = "y"
    else:
        y_part = f"y^{k}"
    # 拼接项内容
    if coeff == 1:
        if x_part and y_part:
            item = f"{x_part}*{y_part}"
        else:
            item = x_part if x_part else y_part
    else:
        if x_part and y_part:
            item = f"{coeff}{x_part}*{y_part}"
        else:
            item = f"{coeff}{x_part}{y_part}"
    print(item, end='')
    k += 1
    if k <= n:
        print(" - " if k%2 ==1 else " + ", end='')

输入n=10时输出结果为:
x^10 - 10x^9*y + 45x^8*y^2 - 120x^7*y^3 + 210x^6*y^4 - 252x^5*y^5 + 210x^4*y^6 - 120x^3*y^7 + 45x^2*y^8 - 10x*y + y^10,完全匹配预期。

内容的提问来源于stack exchange,提问作者606P1K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:06:01