簡體   English   中英

Python 中的 XOR 線性方程組求解器

[英]XOR linear equation system solver in Python

我有 n 行和 n+1 列矩陣,需要構建這樣的系統 例如矩陣是

x4 x3 x2 x1 result
1  1  0  1  0
1  0  1  0  1
0  1  0  1  1
1  0  1  1  0

那么方程將是(+是XOR)

x4+x3+x1=0
x4+x2=1
x3+x1=1
x4+x2+x1=0

我需要將答案作為 x1 的列表返回......我們如何在 python 中做到這一點?

您可以使用微軟 Z3 求解器的 Python 接口pyz3

from z3 import *

def xor2(a, b):
    return Xor(a, b)

def xor3(a, b, c):
    return Xor(a, Xor(b, c))

#  define Boolean variables
x1 = Bool('x1')
x2 = Bool('x2')
x3 = Bool('x3')
x4 = Bool('x4')

s = Solver()

#  every equation is expressed as one constraint
s.add(Not(xor3(x4, x3, x1)))
s.add(xor2(x4, x2))
s.add(xor2(x3, x1))
s.add(Not(xor3(x4, x2, x1)))

#  solve and output results
print(s.check())
print(s.model())

結果:

sat
[x3 = False, x2 = False, x1 = True, x4 = True]

學習高斯,也可以用於異或。 然后寫一個高斯python程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM