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

已知y和z,求解模运算方程(x*y-z)%4==0中的变量x

求解满足(x*y - z) %4 ==0的整数x

首先把原方程转化为模运算的等价形式:

(x*y - z) %4 ==0 等价于 x*y ≡ z (mod4)

这是一个同余方程,不能直接用普通代数除法求解(你之前想的x=z/y%4是错误的,因为模运算下的除法需要考虑逆元,且仅当除数和模数互质时存在逆元)。下面分情况讨论所有可能的解:


分情况讨论(基于y模4的结果)

模4的情况下,y的取值可简化为0、1、2、3四种情况(任何整数mod4的结果都属于这四个数):

情况1:y ≡1 (mod4)

此时y和4互质,逆元是1(因为1*1=1≡1 mod4),方程变为:
x ≡ z (mod4)
即x可以是所有形如4k + (z%4)的整数(k为任意整数)。
比如z=5(z%4=1),则x可以是1、5、9...或-3、-7...

情况2:y ≡3 (mod4)

y和4互质,逆元是3(因为3*3=9≡1 mod4),方程两边乘3得:
x ≡ z*3 (mod4)
即x可以是所有形如4k + ((z*3)%4)的整数。
比如z=2,(2*3)%4=6%4=2,则x可以是2、6、10...或-2、-6...

情况3:y ≡2 (mod4)

此时x*y mod4的结果只能是0或2(2乘偶数得0 mod4,乘奇数得2 mod4):

  • 如果z%4是0或2:存在解
    • 若z%4=0:x必须是偶数(x=2k,k为任意整数)
    • 若z%4=2:x必须是奇数(x=2k+1,k为任意整数)
  • 如果z%4是1或3:没有整数解

情况4:y ≡0 (mod4)

此时x*y mod4=0,所以只有当z%4=0时才有解,此时x可以是任意整数;若z%4≠0,无整数解


Python代码示例

如果要生成指定范围内的满足条件的x,可以这样写:

def find_x(y, z, range_start=-10, range_end=10):
    solutions = []
    y_mod4 = y %4
    z_mod4 = z %4
    for x in range(range_start, range_end+1):
        if (x*y - z) %4 ==0:
            solutions.append(x)
    if not solutions:
        print("该范围内无满足条件的x")
    else:
        print(f"范围内满足条件的x: {solutions}")
    # 输出解的通用规律
    print("\n解的通用规律:")
    if y_mod4 ==1:
        print(f"x ≡ {z_mod4} (mod4),即x=4k+{z_mod4},k为任意整数")
    elif y_mod4 ==3:
        res = (z*3)%4
        print(f"x ≡ {res} (mod4),即x=4k+{res},k为任意整数")
    elif y_mod4 ==2:
        if z_mod4 in (0,2):
            if z_mod4 ==0:
                print("x必须是偶数,即x=2k,k为任意整数")
            else:
                print("x必须是奇数,即x=2k+1,k为任意整数")
        else:
            print("无整数解")
    else: # y_mod4==0
        if z_mod4 ==0:
            print("x可以是任意整数")
        else:
            print("无整数解")

# 测试示例
find_x(y=3, z=2)

运行这个函数会输出指定范围内的解,以及解的通用规律。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:05:33