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

能否用Numpy实现Z2环中的多项式除法?需自行编写函数吗?

Z2环多项式除法求余数的Numpy解决办法

直接用numpy.polydiv后对结果做模2处理即可,核心是把普通除法得到的余数系数全部对2取模,同时处理负数(Z2里没有负数,-1等价于1)。

具体步骤:

  • 先用numpy.polydiv计算普通整数域下的商和余数
  • 对余数的每个系数执行mod 2操作,负数自动转为正数(比如-1 % 2 = 1)
  • 可选:去除余数前面的零系数(避免出现[0,0,1]这种冗余形式)

代码示例:

import numpy as np

def z2_poly_remainder(dividend, divisor):
    # 计算普通除法的商和余数
    _, remainder = np.polydiv(dividend, divisor)
    # 对余数系数模2处理,转整数类型
    z2_remainder = np.mod(remainder, 2).astype(int)
    # 去除前面的零系数
    non_zero_idx = np.argmax(z2_remainder != 0)
    z2_remainder = z2_remainder[non_zero_idx:] if np.any(z2_remainder != 0) else [0]
    return z2_remainder

# 测试示例:被除数x³ + x + 1,除数x + 1
dividend = [1, 0, 1, 1]  # 对应多项式x³ + 0x² + x + 1
divisor = [1, 1]          # 对应多项式x + 1
print(z2_poly_remainder(dividend, divisor))  # 输出[1],符合Z2环下的余数结果

原理说明:

普通多项式除法的余数与Z2环下的余数在模2后等价,因为Z2的运算本质就是整数运算模2,先做普通除法再对余数取模,就能得到正确的Z2环余数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:12:50