-요약 : 딥러닝, 퍼셉트론, gate(and, or, xor), 2진수덧셈기
#and_gate
def and_gate(x1, x2):
if x2 > -x1 + 1.5:
result = 1
else:
result = 0
return result
#or_gate
def or_gate(x1, x2):
if x2 > -x1 + 0.5:
result = 1
else:
result = 0
return result
print(or_gate(0, 1))
#nand_gate
def nand_gate(x1, x2):
if x2 > -x1 + 1.5:
result = 0
else:
result = 1
return result
print(nand_gate(0, 1))
#xor_gate
def xor_gate(x1, x2):
p = nand_gate(x1, x2)
q = or_gate(x1, x2)
return and_gate(p, q)
print(xor_gate(0, 1))
def half_adder(a, b):
sum = xor_gate(a, b)
if a == 1 and b == 1:
carry = 1
else:
carry = 0
return sum, carry
print(half_adder(1, 1))
def full_adder(a, b, c):
p = xor_gate(a, b)
sum = xor_gate(p, c)
q = and_gate(p, c)
r = and_gate(a, b)
carryout = or_gate(q, r)
return sum, carryout
print(full_adder(1, 1, 0))
a = [0, 0, 1, 1]
b = [0, 1, 0, 1]
s = []
def four_bit(a, b):
s0, carry = half_adder(a[0], b[0])
s1, c1 = full_adder(a[1], b[1], carry)
s2, c2 = full_adder(a[2], b[2], carry)
s3, c3 = full_adder(a[3], b[3], carry)
s = [s0, s1, s2, s3]
return s, c3
print(four_bit(a,b))
def f1(x1, x2):
if x2 > x1 + 0.5:
result = 0
else:
result = 1
return result
def f2(x1, x2):
if x2 > x1 - 1.5:
result = 1
else:
result = 0
return result
def f3(x1, x2):
if x2 > x1 - 1.5:
result = 0
else:
result = 1
return result
def result(x1, x2):
p = f1(x1, x2)
q = f2(x1, x2)
return f3(p, q)
print(result(1, 1))
ㄴ아직해결못함ㅋㅋ