import numpy as np
#建立与门函数
def AND(x1,x2):
w1, w2, theta = 0.5, 0.5, 0.7
tmp=x1*w1+x2*w2
if tmp <= theta:
return 0
elif tmp > theta:
return 1
#建立非门函数
def NAND(x1,x2):
x = np.array([x1,x2])
w = np.array([-0.5,-0.5])
b = 0.7
tmp = np.sum(w*x)+b
if tmp <= 0:
return 0
else:
return 1
#建立或门函数
def OR(x1,x2):
x =np.array([x1,x2])
w =np.array([0.5,0.5])
b = -0.2
tmp = np.sum(w*x)+ b
if tmp <= 0:
return 0
else:
return 1
#实现异或门
def XOR(x1,x2):
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y
print(XOR(0,0))
print(XOR(1,0))
print(XOR(0,1))
print(XOR(1,1))



