전기회로를 이용해 가위바위보도 만들 수 있다.
우선, 전기 신호는 0과 1 둘밖에 없으니 신호 여러개를 사용하여 더 많은 경우의 수를 만들어 보자. 가위 바위 보는 낼 수 있는 세가지 경우의 수가 있으니 전기신호 두 개를 사용하여 만들면,
가위를 00
바위를 01
보자기는 10
이라고 할 수 있다. 또, 결과 값도 세가지이니 (A와 B 두 명이서 가위바위보를 한다고 하자) 마찬가지로 전기신호 두 개를 사용하면,
비기면 11
A가 이기면 10
B가 이기면 01
로 표현할 수 있다.
각각의 경우에 대하여 표를 만들어 보자.
이제 각각에 대하여 부울식을 만들어 보자. C가 1인 식을 찾아 C0와 C1 각각 NOT과 AND로 한줄을 표현하고 다음줄을 OR로 이어쓰면 된다.
C0 =
(~A0, ~A1, ~B0, ~B1) or (0 0 0 0)
(~A0, ~A1, B0, ~B1) or (0 0 1 0)
(~A0, A1, B0, B1) or (0 1 1 1)
(~A0, A1, ~B0, B1) or (0 1 0 1)
(A0, ~A1, ~B0, B1) or (1 0 0 1)
(A0, ~A1, B0, ~B1) (1 0 1 0)
C1 =
(~A0, ~A1, ~B0, ~B1) or (0 0 0 0)
(~A0, ~A1, ~B0, B1) or (0 0 0 1)
(~A0, A1, ~B0, B1) or (0 1 0 1)
(~A0, A1, B0, ~B1) or (0 1 1 0)
(A0, ~A1, ~B0, ~B1) or (1 0 0 0)
(A0, ~A1, B0, ~B1) (1 0 1 0)
(편의상 AND를 콤마(,)로 표현했다)
조금 긴 노동이지만 표현할 수는 있다. 헌데, 여기서
(A, B) or (A, C) = A, (B or C)
~A or A = 1 (참)
이 식을 응용해 써보자.
C0 =
(~A0, ~A1, ~B1), (~B0 or B0) or
(~A0, A1, B1), (~B0 or B0) or
(A0, ~A1), (~B0, B1 or B0, ~B1)
=
(~A0, ~A1, ~B1) or (~A0, A1, B1) or (A0, ~A1)
C1 =
(~A0, ~A1, ~B0), (~B1 or B1) or
(~A0, A1), (~B0, B1 or B0, ~B1) or
(A0, ~A1, ~B1), (~B0 or B0)
=
(~A0, ~A1, ~B0) or (~A0, A1) or (A0, ~A1, ~B1)
∴
C0 = (~A0, ~A1, ~B1) or (~A0, A1, B1) or (A0, ~A1)
C1 = (~A0, ~A1, ~B0) or (~A0, A1) or (A0, ~A1, ~B1)
이와 같이 훨씬 간단히 만들 수 있다. 이것이 가위 바위 보 회로를 만드는 방법이다.
'Computer Science > 컴퓨터 과학이 여는 세계' 카테고리의 다른 글
번호 부르면 응답하기 Decoder (1) | 2017.04.27 |
---|---|
둘중 하나 결정하기 multiplexer (1) | 2017.04.25 |
스위치 회로 = 집합 (1) | 2017.04.23 |
컴퓨터과학이 여는 세계_6.2 디지털 논리회로 만들기: 판정, 선택_이광근 (1) | 2017.04.22 |
컴퓨터과학이 여는 세계_6.1 디지털 논리회로도의 조립식 구조_이광근 (1) | 2017.04.21 |