LTCT생각 놀이터

눈으로 배우는 카르노 맵 · 01 기초

카르노 맵,
네 칸부터 차근차근.

0과 1의 뜻부터 시작합니다.
표를 채우고, 같은 조건을 찾아 묶고,
간단해진 규칙이 맞는지 직접 확인해 보세요.

처음 배우는 사람을 위해19개 이야기10개 연습내 속도로 한 단계씩
네 칸으로 시작하는 카르노 맵세로는 A, 가로는 B입니다. 윗줄 결과 0, 0. 아랫줄 결과 1, 1. 네 칸을 읽고, 같은 조건을 찾아 묶습니다.B=0B=1A=0A=10011공통으로 남는 조건 · A
네 칸을 읽고, 같은 조건을 찾아 묶습니다.
읽고, 멈추고, 직접 확인하세요.
19px
차례에서 읽을 곳 찾기 · 19개 이야기
  1. 010과 1, A와 B는 무엇을 뜻하나요?
  2. 02‘그리고’, ‘또는’, ‘부정’은 어떻게 쓰나요?
  3. 03두 조건이 만드는 경우는 왜 네 가지인가요?
  4. 04입장 규칙을 진리표에 어떻게 적나요?
  5. 05진리표의 네 줄을 네 칸으로 어떻게 옮기나요?
  6. 06붙어 있는 1 두 개를 묶으면 무엇을 알 수 있나요?
  7. 07짧아진 규칙이 맞는지 어떻게 확인하나요?
  8. 08세로로 묶으면 어떤 조건이 남나요?
  9. 09묶음에서 같은 값이 0이면 어떻게 읽나요?
  10. 101이 세 개라면 어떻게 묶나요?
  11. 11혼자 남은 1은 어떻게 읽나요?
  12. 12대각선에 놓인 1들은 어떻게 읽나요?
  13. 13네 칸이 모두 1이거나 모두 0이면 어떻게 되나요?
  14. 14묶음을 만들 때 무엇을 확인해야 하나요?
  15. 15이제 직접 표를 채우고 묶어 볼까요?
  16. 16내가 만든 표도 같은 방법으로 풀 수 있나요?
  17. 17세 번째 조건이 생기면 어떻게 될까요?
  18. 18중급과 고급에서는 무엇을 더 배우나요?
  19. 19어떤 자료로 원리를 확인했나요?

카르노 맵은 여러 경우에 적용되는 규칙을 표에 적고, 그 규칙을 간단하게 표현하는 방법입니다. 작은 표에 0과 1을 채우고, 이웃한 1들을 묶습니다. 그다음 묶음에 공통으로 들어 있는 조건을 읽습니다.

그런데 처음부터 “1끼리 묶으세요”라는 설명을 들으면 질문이 생깁니다. 1은 무엇을 뜻할까요? 어떤 칸끼리 묶을 수 있을까요? 두 칸을 묶었는데 글자 하나가 사라지는 이유는 무엇일까요?

이번 기초편에서는 네 칸짜리 표로 하나씩 확인합니다. 종이에 작은 표를 그려 놓고 따라 해도 좋습니다. 마지막에는 직접 표를 채우고, 묶고, 답을 확인할 수 있게 될 것입니다.

01

0과 1, A와 B는 무엇을 뜻하나요?

연습용 행사를 하나 열었다고 생각해 봅시다. 행사 담당자는 방문자의 입장권과 초대 명단을 확인합니다.

이 글에서 사용할 문장은 다음과 같습니다.

글자 글자가 가리키는 문장 값이 1일 때 값이 0일 때
A 이 방문자에게 입장권이 있다. 입장권이 있다. 입장권이 없다.
B 이 방문자의 이름이 초대 명단에 있다. 이름이 있다. 이름이 없다.
F 이 방문자의 입장을 허용한다. 입장을 허용한다. 입장을 허용하지 않는다.

A와 B는 확인할 조건입니다. F는 그 조건들을 확인한 뒤 정하는 결과입니다. 1은 해당 문장이 참이라는 뜻이고, 0은 해당 문장이 거짓이라는 뜻입니다.

예를 들어 A=1, B=0인 방문자는 입장권을 가지고 있고, 초대 명단에는 이름이 없습니다. 아직 입장 규칙을 정하지 않았으므로 이 정보만으로 F를 정할 수는 없습니다. F는 우리가 정한 입장 규칙에 따라 달라집니다.

글자의 뜻을 먼저 정해야 합니다. 꼭 기억하세요. 다른 문제에서는 A가 스위치 상태를, B가 센서의 작동 상태를 가리킬 수도 있습니다. 글자의 뜻은 문제에서 정한 약속을 따라 읽습니다.

잠깐 확인해 볼까요?

“A=0, B=1”을 말로 읽어 보세요.

말로 읽은 결과를 확인해 볼까요?

A=0이므로 입장권이 없습니다. B=1이므로 초대 명단에 이름이 있습니다. 두 정보를 이어 읽으면 “입장권은 없고, 초대 명단에 이름이 있는 방문자”입니다.

02

‘그리고’, ‘또는’, ‘부정’은 어떻게 쓰나요?

각 연습에서는 입장을 허용하는 경우를 모두 정합니다. 제시한 허용 조건에 해당하면 F=1, 나머지 경우에는 F=0으로 적습니다.

입장 규칙을 쓰려면 조건을 연결할 말이 필요합니다. 우선 ‘그리고’, ‘또는’, ‘아니다’를 익혀 봅시다.

‘그리고’는 언제 1이 되나요?

“입장권이 있고, 초대 명단에도 이름이 있어야 입장을 허용한다.”

이 규칙에서는 A와 B가 모두 1일 때 F가 1입니다. 이를 A AND B라고 씁니다. AND는 ‘그리고’로 읽으면 됩니다.

A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1

마지막 줄부터 확인해 보세요. 입장권도 있고 명단에도 이름이 있으므로 두 조건을 모두 충족합니다. 그 위의 세 줄은 각각 적어도 한 조건을 충족하지 못합니다.

‘또는’에는 어떤 경우가 포함되나요?

“입장권이 있거나, 초대 명단에 이름이 있으면 입장을 허용한다.”

이 글의 ‘또는’은 두 조건을 함께 충족하는 경우까지 포함합니다. 입장권만 있어도, 명단에 이름만 있어도, 둘 다 있어도 입장을 허용합니다. 이를 A OR B라고 씁니다.

A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1

‘부정’은 0과 1을 어떻게 바꾸나요?

A가 “입장권이 있다”를 뜻한다면 NOT A는 “입장권이 없다”를 뜻합니다. NOT은 ‘부정’이라고 부릅니다.

A NOT A
0 1
1 0

A=0일 때 “입장권이 있다”는 거짓입니다. 바로 그때 “입장권이 없다”는 참이므로 NOT A=1이 됩니다.

+, ·, 글자 위의 가로선은 어떻게 읽나요?

앞으로 본문에서는 말로 뜻을 설명한 뒤 기호를 함께 쓰겠습니다. A·B는 A AND B, A+B는 A OR B, ¬A는 NOT A를 뜻합니다.

표기 읽는 방법 결과가 1이 되는 경우
A·B A 그리고 B A와 B가 모두 1일 때
A+B A 또는 B A와 B 중 하나 이상이 1일 때
¬A A의 부정 A가 0일 때
A̅ A의 부정 A가 0일 때

A 위에 가로선을 그은 표기 A̅도 ¬A와 같은 뜻입니다. 다른 교재에서 두 표기를 만나면 같은 부정 연산으로 읽으세요. 이 글에서는 ¬A를 주로 사용합니다.

+는 여기서 OR를 나타냅니다. 따라서 이 표기에서 1+1의 논리 결과는 1입니다. 두 조건이 모두 참이면 ‘하나 이상이 참이다’라는 조건도 참이기 때문입니다.

이제 A와 B의 상태를 바꾸면서 AND, OR, NOT의 결과를 직접 확인해 보세요. 먼저 결과를 예상한 뒤 버튼을 눌러 보면 각 규칙을 익히는 데 도움이 됩니다.

직접 해보기 01

조건을 바꾸고 결과를 확인해요

가상의 입장 규칙을 정해 볼게요. A는 입장권이 있다는 뜻, B는 초대 명단에 있다는 뜻, F는 입장을 허용한다는 뜻입니다. 아래의 A·B 버튼을 누르면 해당 조건의 값이 0과 1로 바뀝니다.

F = 0 · 허용하지 않음

AND에서는 두 조건이 모두 1일 때 결과가 1입니다.

선택한 규칙의 네 가지 경우
AB결과 F현재 위치
000지금 선택
010—
100—
111—

먼저 AND로 네 경우를 모두 살펴보세요. 그다음 OR로 바꾸어 어느 경우의 결과가 달라졌는지 확인해 보세요. NOT A에서는 B를 바꾸어도 결과가 같은지 살펴보세요.

03

두 조건이 만드는 경우는 왜 네 가지인가요?

A에는 0과 1 두 가지 값이 있습니다. B에도 0과 1 두 가지 값이 있습니다.

먼저 A를 0으로 두고 B를 0과 1로 바꿔 봅시다. (0,0), (0,1) 두 경우가 나옵니다. 이어서 A를 1로 두고 B를 다시 0과 1로 바꿔 봅니다. (1,0), (1,1)이 나옵니다.

순서 A B 방문자의 상태
첫째 0 0 입장권도 없고, 명단에도 이름이 없습니다.
둘째 0 1 입장권은 없고, 명단에는 이름이 있습니다.
셋째 1 0 입장권은 있고, 명단에는 이름이 없습니다.
넷째 1 1 입장권도 있고, 명단에도 이름이 있습니다.

가능한 경우는 2×2=4가지입니다. 이 표에 각 경우의 결과 F까지 적으면 진리표가 됩니다. 모든 경우를 적었기 때문에, 규칙을 바꾸더라도 같은 네 줄을 이용해 결과를 비교할 수 있습니다.

04

입장 규칙을 진리표에 어떻게 적나요?

다음 두 경우에 입장을 허용하는 규칙을 받았다고 해 봅시다.

  1. 입장권이 있고, 초대 명단에는 이름이 없는 경우.
  2. 입장권이 있고, 초대 명단에도 이름이 있는 경우.

두 경우 중 하나에 해당하면 입장을 허용합니다. 이제 네 줄을 하나씩 살펴봅시다.

A B F F를 정한 이유
0 0 0 두 입장 허용 조건에 모두 해당하지 않습니다.
0 1 0 명단에 이름이 있어도 입장권이 없으므로 두 조건에 해당하지 않습니다.
1 0 1 첫 번째 조건에 해당합니다.
1 1 1 두 번째 조건에 해당합니다.

읽으면서 벌써 더 짧게 말할 방법을 찾았을 수도 있습니다. 그 생각을 잠시 기억해 두세요. 카르노 맵에서도 같은 결론을 찾을 수 있는지 확인하겠습니다.

05

진리표의 네 줄을 네 칸으로 어떻게 옮기나요?

가로 두 칸, 세로 두 칸의 표를 그립니다. 왼쪽에는 A의 값을, 위쪽에는 B의 값을 적습니다.

A \ B B=0 B=1
A=0 아직 비어 있음 아직 비어 있음
A=1 아직 비어 있음 아직 비어 있음

표 바깥의 숫자는 A와 B의 값입니다. 이제 칸 안에는 그때의 결과 F를 적습니다.

첫 번째 줄은 A=0, B=0, F=0입니다. 먼저 A=0인 윗줄을 찾습니다. 이어서 B=0인 왼쪽 열을 찾습니다. 두 곳이 만나는 왼쪽 위 칸에 F의 값 0을 적습니다.

두 번째 줄은 A=0, B=1, F=0입니다. A=0인 윗줄과 B=1인 오른쪽 열이 만나는 칸을 찾습니다. 오른쪽 위 칸에 0을 적습니다.

세 번째 줄은 A=1, B=0, F=1입니다. A=1인 아랫줄과 B=0인 왼쪽 열이 만납니다. 왼쪽 아래 칸에 1을 적습니다.

네 번째 줄은 A=1, B=1, F=1입니다. A=1인 아랫줄과 B=1인 오른쪽 열이 만납니다. 오른쪽 아래 칸에 1을 적습니다.

완성된 표를 볼까요?

A \ B B=0 B=1
A=0 0 0
A=1 1 1

이것이 두 변수를 사용하는 카르노 맵입니다. 진리표에서 세로로 적었던 네 경우를 네 칸에 배치했습니다. 각 경우의 결과는 그대로 유지됩니다.

한 칸을 거꾸로 읽어 볼까요?

왼쪽 아래 칸의 1을 골라 보세요. A의 값은 왼쪽에서, B의 값은 위쪽에서 확인합니다. A=1, B=0일 때 F=1이므로 “입장권이 있고 명단에는 이름이 없는 방문자는 입장할 수 있다”라고 읽습니다.

직접 해보기 02

진리표의 결과를 한 칸씩 옮겨요

행을 찾고 → 열을 찾고 → 결과를 적습니다. 한 번에 한 가지씩 살펴보세요. 읽은 뒤에 ‘다음 단계’를 누르면 됩니다.

출발: 진리표
AB결과 F진행
000지금 읽는 경우
010다음 경우
101다음 경우
111다음 경우
도착: 카르노 맵 · 칸 안에는 결과 F
A \ BB = 0B = 1
A = 0—A=0, B=0빈칸—A=0, B=1빈칸
A = 1—A=1, B=0빈칸—A=1, B=1빈칸
1 / 12단계

첫 번째 경우 · A가 가리키는 줄을 찾아요

A=0이므로 윗줄을 찾습니다.

한 단계씩 직접 넘깁니다. 자동으로 넘어가지 않으니, 표의 위치와 설명을 충분히 확인하세요.

06

붙어 있는 1 두 개를 묶으면 무엇을 알 수 있나요?

아랫줄의 1 두 개를 함께 둘러싸 봅시다. 두 칸은 가로로 붙어 있습니다.

묶음으로 확인하는 조건세로는 A, 가로는 B입니다. 윗줄 결과 0, 0. 아랫줄 결과 1, 1. 보라색 테두리 안의 두 칸은 모두 A=1입니다. B는 0과 1이 모두 들어 있습니다.B=0B=1A=0A=10011묶음 ① · A
보라색 테두리 안의 두 칸은 모두 A=1입니다. B는 0과 1이 모두 들어 있습니다.

묶음에 들어 있는 두 경우를 다시 적으면 다음과 같습니다.

묶음 속 경우 A B F
왼쪽 아래 1 0 1
오른쪽 아래 1 1 1

먼저 A를 봅시다. 두 경우 모두 A=1입니다. 이어서 B를 봅시다. 한 경우는 B=0이고, 다른 경우는 B=1입니다. B가 가질 수 있는 두 값이 모두 들어 있습니다.

그러므로 이 묶음을 설명할 때는 A=1만 남길 수 있습니다. A가 1인 방문자는 명단에 이름이 있는 경우와 없는 경우 모두 입장을 허용받기 때문입니다.

처음 규칙을 다시 읽어 보세요.

“입장권이 있고 명단에는 이름이 없거나, 입장권이 있고 명단에도 이름이 있으면 입장할 수 있다.”

이 규칙은 다음과 같이 쓸 수 있습니다.

“입장권이 있으면 입장할 수 있다.”

기호로는 F=A입니다.

학습자 · B를 빼도 두 경우의 뜻이 그대로 남나요?

안내 · B를 빼는 이유는 표에서 B가 가질 수 있는 모든 경우를 이미 포함했기 때문입니다. 남은 A=1 조건만으로도 묶음 속 두 칸을 정확하게 가리킬 수 있습니다.

07

짧아진 규칙이 맞는지 어떻게 확인하나요?

카르노 맵으로 얻은 답은 처음 표와 결과가 같아야 합니다. F=A라는 답을 네 경우에 넣어 봅시다.

A B 처음 표의 F F=A로 계산한 결과
0 0 0 0
0 1 0 0
1 0 1 1
1 1 1 1

네 줄의 결과가 모두 같습니다. 규칙을 짧게 적으면서도 원래 허용하던 경우와 허용하지 않던 경우를 그대로 유지했습니다. 앞으로 문제를 풀 때도 마지막에 이렇게 확인하면 됩니다.

08

세로로 묶으면 어떤 조건이 남나요?

이번에는 다음 표를 보겠습니다. 새로운 표이므로 앞선 표의 입장 규칙과 결과가 다릅니다.

A \ B B=0 B=1
A=0 0 1
A=1 0 1
묶음으로 확인하는 조건세로는 A, 가로는 B입니다. 윗줄 결과 0, 1. 아랫줄 결과 0, 1. 오른쪽 열 두 칸을 함께 묶었습니다. 두 칸에서 B=1이 유지됩니다.B=0B=1A=0A=10101묶음 ① · B
오른쪽 열 두 칸을 함께 묶었습니다. 두 칸에서 B=1이 유지됩니다.

오른쪽의 1 두 개를 세로로 묶습니다. 위쪽 칸은 A=0, B=1이고, 아래쪽 칸은 A=1, B=1입니다.

B는 두 칸 모두 1입니다. A는 0과 1을 모두 포함합니다. 따라서 남는 조건은 B=1입니다. 답은 F=B이고, 말로 읽으면 “초대 명단에 이름이 있으면 입장을 허용한다”입니다.

가로 묶음인지 세로 묶음인지 외우기보다, 묶음 속에서 어떤 글자의 값이 같은지 확인해 보세요. 표가 커져도 이 질문은 그대로 사용할 수 있습니다.

09

묶음에서 같은 값이 0이면 어떻게 읽나요?

이번 표는 윗줄에 1 두 개가 있습니다.

A \ B B=0 B=1
A=0 1 1
A=1 0 0

묶음 속 두 칸에서 A는 모두 0입니다. B는 0과 1을 모두 포함합니다. 따라서 남는 조건은 A=0입니다.

A가 0일 때 참이 되는 표현을 앞에서 배웠습니다. 바로 NOT A, 곧 ¬A입니다. 답은 F=¬A입니다.

입장권 예시에 적용하면 “입장권이 없는 방문자에게 입장을 허용한다”라는 연습용 규칙이 됩니다. 현실의 행사 운영을 정하는 문제가 아니라, 주어진 표를 정확히 읽는 연습입니다.

기억할 관계는 간단합니다. 묶음에서 A=1이 유지되면 A를 쓰고, A=0이 유지되면 ¬A를 씁니다. 두 값이 모두 포함되면 그 묶음의 조건에서 A를 뺍니다. B도 같은 방식으로 읽습니다.

10

1이 세 개라면 어떻게 묶나요?

다음 표는 입장권이 있거나 초대 명단에 이름이 있으면 입장을 허용하는 규칙입니다.

A \ B B=0 B=1
A=0 0 1
A=1 1 1
묶음으로 확인하는 조건세로는 A, 가로는 B입니다. 윗줄 결과 0, 1. 아랫줄 결과 1, 1. 보라 실선은 A, 주황 점선은 B입니다. 오른쪽 아래 1이 두 묶음에 함께 들어갑니다.B=0B=1A=0A=10111① 실선 · A② 점선 · B
보라 실선은 A, 주황 점선은 B입니다. 오른쪽 아래 1이 두 묶음에 함께 들어갑니다.

먼저 아랫줄 두 칸을 묶습니다. 이 묶음에서는 A=1이 유지되므로 A가 남습니다. 그런데 오른쪽 위의 1은 아직 묶음에 들어가지 않았습니다.

이번에는 오른쪽 열 두 칸을 묶습니다. 이 묶음에서는 B=1이 유지되므로 B가 남습니다.

학습자 · 오른쪽 아래의 1을 두 번 써도 되나요?

안내 · 두 묶음을 만들고 나니 오른쪽 아래의 1이 양쪽 묶음에 함께 들어갑니다. 이렇게 한 칸을 여러 묶음에 포함할 수 있습니다. 그 칸에서는 A와 B가 모두 1이므로, 두 입장 허용 조건을 함께 충족합니다.

첫 번째 묶음에 해당하거나 두 번째 묶음에 해당하면 F=1입니다. 따라서 두 묶음의 조건은 OR로 연결합니다.

F=A OR B, 곧 F=A+B입니다.

왼쪽 위의 0도 확인해 보세요. 그곳은 A=0, B=0이어서 어느 묶음에도 들어가지 않습니다. 새 식에 넣어도 0 OR 0=0입니다.

왜 세 칸 전체를 한꺼번에 묶지 않을까요?

카르노 맵의 한 묶음은 가로와 세로 길이가 각각 1, 2, 4…칸인 직사각형으로 잡습니다. 두 변수의 네 칸짜리 표에서는 한 칸, 가로 또는 세로 두 칸, 네 칸 전체를 묶을 수 있습니다.

위의 세 칸을 한 덩어리로 잡으면 ㄴ 모양이 됩니다. 이 세 경우를 보면 A도 0과 1을 갖고, B도 0과 1을 갖습니다. 그렇다고 A와 B를 모두 빼면 네 경우 전체를 허용하게 됩니다. 그러면 왼쪽 위의 0까지 1로 바뀌는 문제가 생깁니다.

그래서 아랫줄과 오른쪽 열처럼, 각각 정확한 조건으로 읽을 수 있는 두 묶음으로 표현합니다.

11

혼자 남은 1은 어떻게 읽나요?

아래 표에서는 오른쪽 아래에만 1이 있습니다.

A \ B B=0 B=1
A=0 0 0
A=1 0 1

이 1과 붙어 있는 다른 1이 없으므로 한 칸을 묶습니다. 그 칸은 A=1이면서 B=1인 경우입니다. 두 조건을 모두 남겨야 해당 칸을 정확히 가리킬 수 있습니다.

답은 F=A AND B, 곧 F=A·B입니다.

이번에는 왼쪽 위에만 1이 있다고 해 봅시다. 그 칸은 A=0이면서 B=0입니다. 따라서 F=(NOT A) AND (NOT B), 곧 F=¬A·¬B로 읽습니다.

한 묶음 안에 남은 조건들은 ‘그리고’로 연결합니다. 여러 묶음을 이어 줄 때는 ‘또는’을 사용합니다.

12

대각선에 놓인 1들은 어떻게 읽나요?

A \ B B=0 B=1
A=0 0 1
A=1 1 0

오른쪽 위의 1은 A=0, B=1입니다. 왼쪽 아래의 1은 A=1, B=0입니다.

묶음으로 확인하는 조건세로는 A, 가로는 B입니다. 윗줄 결과 0, 1. 아랫줄 결과 1, 0. 두 1을 각각 한 칸씩 묶었습니다. 두 묶음의 조건을 또는(+)로 연결합니다.B=0B=1A=0A=10110① · ¬A·B② · A·¬B
두 1을 각각 한 칸씩 묶었습니다. 두 묶음의 조건을 또는(+)로 연결합니다.

두 칸 사이에서는 A와 B가 모두 바뀝니다. 두 칸을 하나의 직사각형으로 잡으면 0인 칸도 포함하게 됩니다. 따라서 여기서는 각 1을 한 칸씩 묶습니다.

첫 묶음은 ¬A·B, 둘째 묶음은 A·¬B입니다. 두 묶음을 OR로 연결하면 다음 식이 됩니다.

F=(¬A·B)+(A·¬B)

말로 풀어 읽으면 “A가 0이고 B가 1이거나, A가 1이고 B가 0일 때 결과가 1”입니다. 두 조건의 값이 서로 다를 때 1이 되는 규칙입니다. 이런 연산을 XOR, 곧 배타적 논리합이라고 부릅니다. 지금은 표의 두 경우를 정확히 읽을 수 있으면 충분합니다.

13

네 칸이 모두 1이거나 모두 0이면 어떻게 되나요?

네 칸이 모두 1이면 네 칸 전체를 묶습니다. A의 두 값과 B의 두 값이 만들 수 있는 모든 경우가 포함됩니다. 어떤 값을 넣어도 결과가 1이므로 F=1입니다.

네 칸이 모두 0이면 묶을 1이 없습니다. 모든 경우의 결과가 0이므로 F=0입니다.

이때 F=1은 “항상 참”, F=0은 “항상 거짓”이라는 뜻입니다. 두 경우 모두 정확한 결과를 나타냅니다.

14

묶음을 만들 때 무엇을 확인해야 하나요?

앞선 예시를 떠올리면서 다음 여섯 항목을 확인해 보세요.

  1. 이번 기초편에서는 결과가 1인 칸을 묶습니다. 0인 칸은 묶음에 넣지 않습니다.
  2. 한 칸, 가로나 세로로 붙은 두 칸, 네 칸 전체를 묶을 수 있습니다.
  3. 가능한 큰 묶음을 먼저 살펴봅니다. 같은 값을 유지하는 조건이 적어져 식이 간단해집니다.
  4. 모든 1이 적어도 하나의 묶음에 들어가도록 합니다.
  5. 필요한 경우 같은 1을 여러 묶음에 넣을 수 있습니다.
  6. 각 묶음에서 유지되는 조건을 읽고, 여러 묶음은 OR로 연결합니다.

묶음의 크기만 보고 끝내지 말고, 원래 0인 칸을 새 식이 1로 바꾸는지까지 확인하세요. 원래 표와 새 식의 결과가 모든 경우에서 같아야 합니다.

한 칸씩 각각 읽어서 만든 식도 원래 표와 결과가 같을 수 있습니다. 예를 들어 아랫줄의 두 1을 따로 읽으면 A·¬B+A·B가 됩니다. 이 식은 정확합니다. 두 칸을 묶으면 같은 결과를 A 하나로 더 간단하게 표현할 수 있습니다.

더 큰 표에서는 큰 묶음을 찾는 일과, 여러 묶음 중에서 전체를 가장 간단하게 덮는 조합을 고르는 일을 함께 해야 합니다. 먼저 찾은 큰 묶음 하나가 전체의 최선 조합을 보장하지는 않습니다. 기초편에서는 네 칸을 정확히 읽고 결과가 같은지 검산하는 과정을 충분히 익히겠습니다.

15

이제 직접 표를 채우고 묶어 볼까요?

아래 연습에서는 지금까지 배운 과정을 직접 해 봅니다. 먼저 A와 B의 뜻과 표의 방향을 확인하세요. 그다음 결과가 1인 칸을 찾고, 묶음에 들어 있는 각 경우를 읽어 봅니다.

답을 생각할 때는 네 질문을 차례로 해 보세요. “어떤 칸을 묶었나요?”, “A는 어떤 값을 갖나요?”, “B는 어떤 값을 갖나요?”, “모든 1을 포함했나요?” 이 질문에 답하면 식에 남길 조건을 찾을 수 있습니다.

처음에는 숫자와 말로 설명해도 좋습니다. 예를 들어 “이 두 칸에서는 B가 계속 0입니다”라고 먼저 말한 뒤, 그 조건을 ¬B로 적으면 됩니다. 기호를 읽다가 막히면 앞의 약속을 다시 확인하세요.

직접 해보기 03 · 10문제

직접 묶고, 네 경우로 검산해요

1인 칸을 눌러 선택한 뒤 ‘묶음으로 추가’를 누르세요. 한 묶음을 만든 뒤 다른 묶음을 이어서 만들 수 있습니다. 모든 1을 덮었다면 ‘내 풀이 확인’을 누르세요.

결과가 1인 아랫줄의 두 칸을 묶어 보세요.

칸 안의 큰 숫자는 결과 F입니다.
A \ BB = 0B = 1
A = 0
A = 1

선택한 칸에는 테두리와 ‘선택 중’ 표시가 생깁니다. 완성한 묶음은 각 칸의 묶음 번호로 확인할 수 있습니다.

선택한 칸이 없습니다.

1인 칸을 선택해 묶음을 만들어 보세요.

내가 만든 묶음

  1. 아직 만든 묶음이 없습니다.

묶음을 추가하면 여기에서 조건을 읽습니다.

작은 묶음 여러 개로 같은 결과를 만들었다면 풀이가 맞습니다. 더 큰 묶음으로 정리할 수 있는지도 함께 살펴보세요. 같은 칸이 여러 묶음에 들어가도 됩니다.

16

내가 만든 표도 같은 방법으로 풀 수 있나요?

이번에는 결과를 직접 바꿔 보겠습니다. 두 조건이 만들 수 있는 네 경우마다 0과 1 중 하나를 정할 수 있습니다. 한 칸의 결과를 바꾸면 새로운 규칙이 됩니다.

먼저 네 칸을 모두 0으로 두고, 오른쪽 아래 칸만 1로 바꿔 보세요. A와 B가 모두 1일 때만 결과가 1이 됩니다. 앞에서 읽었던 A·B입니다.

이제 왼쪽 아래 칸도 1로 바꿔 보세요. 아랫줄의 두 1을 묶을 수 있게 됩니다. 두 칸에서 A는 1로 유지되고 B는 0과 1을 모두 포함합니다. 새 표에서는 아랫줄 두 칸이 모두 1입니다. 이 새 규칙을 간단하게 쓰면 F=A입니다.

이어서 오른쪽 위 칸도 1로 바꾸면 어떻게 될까요? 윗칸을 포함하는 새로운 묶음이 필요합니다. 오른쪽 열을 묶으면 B라는 조건을 얻습니다. 이제 전체 규칙은 A+B입니다.

마지막으로 왼쪽 위까지 1로 바꾸면 네 칸을 모두 묶습니다. 모든 경우를 허용하므로 F=1입니다. 한 칸을 바꿀 때마다 묶음과 조건이 어떻게 달라지는지 천천히 살펴보세요.

자유 실험

내가 만든 표는 어떤 규칙일까요?

이제 칸 안의 숫자를 누르면 결과가 0과 1로 바뀝니다. 아래에서는 바뀐 표의 묶음과 논리식을 바로 보여 줍니다. 네 칸에서 만들 수 있는 16가지 결과표를 탐색해 보세요.

칸을 눌러 결과 F를 바꾸는 표
A \ BB = 0B = 1
A = 0
A = 1

F = A

현재는 입장권의 유무에 따라 결과가 정해지는 표입니다.

  1. 묶음 1 · A

    아랫줄 두 칸의 A는 모두 1입니다. B는 0과 1이 모두 들어 있으므로 A만 조건으로 남습니다.

진리표로 네 경우 확인하기
내 표와 간단하게 정리한 식의 결과
AB내 표의 F정리한 식의 F
0000
0100
1011
1111

완성한 표를 읽는 실험입니다. 실제 상황에서 어떤 규칙을 정할지는 별도로 판단해야 합니다.

17

세 번째 조건이 생기면 어떻게 될까요?

조건 C를 하나 더 넣으면 가능한 경우는 2×2×2=8가지입니다. 그래서 카르노 맵도 여덟 칸이 됩니다. 예를 들어 세로에는 A를 두고, 가로에는 B와 C의 조합을 둘 수 있습니다.

A \ BC 00 01 11 10
0 · · · ·
1 · · · ·

위의 점은 아직 결과를 적지 않은 빈칸입니다. 조건을 정하면 각 칸에 0 또는 1을 적습니다.

가로 순서를 천천히 보세요. 00 다음은 01, 그다음은 11, 마지막은 10입니다. 00에서 01로 갈 때는 C만 바뀝니다. 01에서 11로 갈 때는 B만 바뀝니다. 11에서 10으로 갈 때는 C만 바뀝니다.

이 순서로 놓으면 옆 칸으로 갈 때 조건 하나만 달라집니다. 이렇게 이웃한 조합 사이에서 한 값만 바뀌게 배치한 순서를 그레이 코드라고 부릅니다. 맨 끝의 10과 맨 앞의 00 사이에서도 B만 달라집니다. 이 성질 덕분에 중급편에서는 표의 양 끝을 함께 묶는 방법까지 배울 수 있습니다.

오늘 익힌 방법을 그대로 떠올려 보세요. 먼저 각 글자의 뜻을 확인합니다. 모든 경우의 결과를 칸에 옮깁니다. 묶음 속에서 같은 값을 유지하는 조건을 읽습니다. 표가 커져도 이 과정은 이어집니다.

18

중급과 고급에서는 무엇을 더 배우나요?

단계 중심 내용 직접 할 수 있게 될 일
기초 · 이번 편 두 변수, 네 칸, 진리표, 묶음과 조건 읽기 간단한 표를 직접 채우고 식으로 바꾼 뒤 검산하기
중급 · 이어 읽기 세·네 변수, 그레이 순서, 가장자리·모서리 연결, 겹치는 묶음 8칸·16칸에서 모든 1을 효율적으로 묶기
고급 · 후속편 사용하지 않는 경우 X, 0의 묶음, 최소 묶음 조합, 회로의 일시적인 출력 변화 조건과 목적을 따져 여러 표현을 비교하기

중급편에서는 네 변수의 16칸 표까지 넓혀 봅니다. 가장자리의 칸과 네 모서리가 연결되는 이유도 조건의 값으로 확인합니다.

고급편에서는 실제로 사용하지 않는 입력 조합을 X로 표시하는 경우, 0을 묶어 식을 만드는 방법, 전체를 덮는 가장 간단한 묶음의 조합을 다룹니다. 또 논리표의 결과가 같아도 실제 회로에서는 신호가 전달되는 시간 때문에 순간적인 출력 변화가 생길 수 있다는 점을 살펴봅니다. 이런 현상을 다룰 때 사용하는 용어와 판단 기준은 해당 편에서 차근차근 설명하겠습니다.

19

어떤 자료로 원리를 확인했나요?

원리 확인에 사용한 자료입니다. 본문의 행사 상황, 예제 표, 문장과 단계별 해설은 초심자 학습을 위해 새로 구성했습니다.

  • University of Cambridge, I. J. Wassell, Digital Electronics (2024), 강의자료 9~13쪽의 논리 변수·연산, 27~30쪽의 카르노 맵. 자료 원문 보기
  • MIT OpenCourseWare, Margaret Chong, A Student’s Guide to the Digital World, 6.004 Computation Structures (2009), 본문 인쇄 쪽수 15~16쪽(PDF 화면 16~17쪽)의 논리식과 카르노 맵. 자료 원문 보기

네 칸을 스스로 설명해 보세요

“이 묶음에서 A는 어떤 값인가요? B는 어떤 값인가요?” 두 질문에 답하고 원래 네 경우와 비교할 수 있다면, 다음 크기의 표를 배울 준비가 되었습니다.

같은 표를 다시 골라, 이번에는 해설을 열기 전에 자신의 말로 묶은 이유를 설명해 보세요.