간단하게 5개의 레버가 있다고 보자.
레버 5개를 순서대로 A,B,C,D,E 라고 하고,
스크린샷 순서는
1. 5개 중 1개
2. 5개 중 2개
3. 5개 중 3개
4. 5개 중 4개
5. 5개 중 5개를 켰을 때 신호를 주는 방법이면
1. 5개 중 1개를 켰을 때 신호를 주는 방법
>OR게이트에 5개의 레버를 모두 연결해서 건너편의 ONCE 게이트로 신호를 전달한다.
2. 5개 중 2개를 켰을 때 신호를 주는 방법
>5개 중 2개를 켰을 경우의 수를 AND 게이트로 만들 때
필요한 AND게이트: AB+AC+AD+AE+BC+BD+BE+CD+CE+DE
AND 게이트의 가장 왼쪽부터 오른쪽 순으로
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
이라고 치면
레버마다 각 AND 게이트에 연결되는 부분은
A:1,2,3,4,
B:1,5,6,7
C:2,5,8,9
D:3,6,8,10
E:4,7,9,10
3. 5개 중 3개를 켰을 때 신호를 주는 방법
>5개 중 3개를 켰을 경우의 수를 AND 게이트로 만들 때
필요한 AND게이트: ABC+ABD+ABE+ACD+ACE+ADE+BCD+BCE+BDE+CDE
AND 게이트를 왼쪽 위에서 오른쪽 아래 순으로
1, 2, 3, 4, 5
6, 7, 8, 9, 10
이라고 치면
레버마다 각 AND 게이트에 연결되는 부분은
A:1,2,3,4,5,6,
B:1,2,3,7,8,9
C:1,4,5,7,8,10
D:2,4,6,7,9,10
E:3,5,6,8,9,10
레버 하나당 연결해야 하는 횟수가 각각 6개라서
먼저 2개의 RELAY 게이트로 나눠서
1개의 RELAY 게이트당 AND 게이트로 3개씩 나눠보낸다.
4. 5개 중 4개를 켰을 때 신호를 주는 방법
>5개 중 4개를 켰을 경우의 수를 AND 게이트로 만들 때
필요한 AND게이트: ABCD+BCDE+CDEA+DEAB+EABC
AND 게이트를 왼쪽부터 오른쪽 순으로
1, 2, 3, 4, 5
라고 치면
레버마다 각 AND 게이트에 연결되는 부분은
A:1,3,4,5
B:1,2,4,5
C:1,2,3,5
D:1,2,3,4
E:2,3,4,5
5. 5개 중 5개를 켰을 때 신호를 주는 방법
>AND게이트에 5개의 레버를 모두 합쳐서 건너편의 ONCE 게이트로 연결한다.
만약 이 5가지 경우를 한번에 사용하고 싶다면,
위 사진처럼 한 레버당 5개의 RELAY 게이트로 연결해서
각 RELAY 게이트당 1번부터 5번 사진대로 만들면 된다.
5개의 레버 중에 1~5개의 레버를 사용했을 때 장단점이 있다면
>장점: 연결이 직관적이라 수정도 편하다.
>단점: 발적화에 개노가다. 최적화는 당신의 몫