카르노 맵 풀이기

무료 온라인 카르노 맵 풀이기: 변수 두 개에서 여섯 개까지의 불 대수 식을 입력하면 모든 묶음을 표시한 카르노 맵과 거기서 읽어 낸 최소 곱의 합 또는 합의 곱을 얻습니다.

분석할 논리적 표현식을 입력하세요 (명제 논리, 불린 대수 지원)

클라이언트 측 전용 - 데이터가 브라우저를 떠나지 않습니다

가이드

연산자를 클릭하면 계산기에서 해당 예제를 실행합니다. 각 연산자마다 입력할 수 있는 모든 표기를 함께 보여 줍니다.

식을 입력하면 이 카르노 맵 풀이기가 진리값을 그레이 코드 격자에 배치하고, 묶을 수 있는 묶음마다 테두리를 두른 뒤 거기서 최소 형태를 읽어 냅니다. 기호(¬ ∧ ∨ → ↔)와 일반 ASCII(!, &, |, ->, <->)를 모두 받고, 변수 두 개에서 여섯 개까지 다루며, 그저 괜찮은 답이 아니라 정확한 최소해를 구합니다. 아무것도 업로드되지 않습니다. 맵은 브라우저 안에서 만들어집니다.

카르노 맵 푸는 방법

  1. 위 입력란에 식을 씁니다. 예를 들어 (A & B) | (!A & C)입니다. 기호를 직접 치기 번거로우면 연산자 키보드가 넣어 줍니다.
  2. 풀이기가 식에서 변수를 읽어 진리값을 격자에 놓습니다. 두 축은 그레이 코드(00, 01, 11, 10)로 되어 있어 이웃한 칸은 정확히 변수 하나만 다릅니다. 바로 그 때문에 칸의 묶음이 항 하나로 줄어듭니다.
  3. 색이 있는 테두리 하나가 묶음 하나입니다. 범례의 묶음에 마우스를 올리거나 눌러 맵에서 짚어 보세요. 필수로 표시된 묶음도 눈여겨보십시오. 어떤 최소 형태도 그것들을 뺄 수 없습니다. 묶음은 맵의 가장자리를 넘어 이어질 수 있고, 한 칸이 여러 묶음에 속할 수도 있습니다.
  4. 아래에서 최소 형태를 읽습니다. 곱의 합과 합의 곱을 오가고, 결과를 복사하고, 계산기로 다시 불러오거나, 맵을 LaTeX 또는 TikZ로 내보낼 수 있습니다.

풀이기가 주는 것

  • 모든 묶음에 색과 테두리를 두르고, 필수 묶음을 표시하며, 각 묶음이 남기는 항을 함께 보여 줍니다.
  • 정말로 최소인 형태: 덮개를 탐욕적으로 고르지 않고 정확히 탐색하므로, 순환형 맵에서도 가장 짧은 답이 나옵니다.
  • 같은 맵에서 곱의 합이든 합의 곱이든 - 1을 묶거나 0을 묶거나.
  • 맵을 LaTeX로: 단순한 표로도, 테두리와 범례까지 갖춘 TikZ 그림으로도.
  • 같은 식을 전체 계산기에서 열면 진리표와 성질, 동치 형태까지 함께 나옵니다.
논리 계산기 열기

풀이 예시

(((A∧B)∧C)∨((A∧B)∧¬C))∨((¬A∧B)∧C)의 맵입니다. 참인 칸이 셋이고, 두 칸짜리 묶음 두 개가 그중 한 칸에서 겹치며 이들을 덮습니다. 방법 전체가 여기 축소되어 있습니다. 묶음 안에서 값이 바뀌는 변수는 그 묶음의 항에서 빠지고, 한 칸은 두 번 덮여도 됩니다.

카르노 맵

색이 있는 각 묶음은 참인 칸의 직사각형을 덮습니다. 묶음 안에서 값이 바뀌는 변수는 사라지므로 묶음마다 하나의 논리곱이 남습니다. 이 맵을 읽는 법 →

행은 A, 열은 BC인 카르노 맵
ABC00011110
0
1
최소 형태
(B ∧ C) ∨ (A ∧ B)

묶음

카르노 맵에는 변수를 몇 개까지 쓸 수 있나요?

이 풀이기는 변수 2개에서 6개까지의 맵을 그립니다. 2개 미만이면 묶을 것이 없고, 다섯 개와 여섯 개는 두 장 또는 네 장의 평면을 쌓아 그리고, 6개를 넘으면 그렇게 해도 옆에 있는 진리표보다 읽기 쉽다고 하기 어려워집니다. 변수가 더 많을 때도 계산기의 동치 형태가 최소화된 DNF를 줍니다.

변수격자
242 × 2
382 × 4
4164 × 4
5322 × (4 × 4)
6644 × (4 × 4)

곱의 합과 합의 곱

참인 칸을 묶으면 곱의 합이 됩니다. 묶음마다 논리곱 하나가 나오고 그것들을 OR로 잇습니다. 거짓인 칸을 묶으면 합의 곱이 되며 리터럴은 나올 때 부정됩니다. 묶음마다 논리합 하나가 나오고 그것들을 AND로 잇습니다. 둘 다 같은 함수를 나타내고, 어느 쪽이 짧은지는 1과 0 중 어느 쪽이 더 깔끔한 직사각형을 이루는지에 달려 있습니다. 그래서 풀이기는 둘 다 보여 주고, 짧은 쪽을 고르면 됩니다.

진리표에서 수식으로모든 진리표를 논리식으로 변환합니다. 사용자 정의 진리표에서 선언적 정규형(DNF) 또는 연언적 정규형(CNF)의 부울 수식을 생성합니다.

자주 묻는 질문

논리 계산기 사용에 대해 자주 묻는 질문과 답변

카르노 맵에는 변수를 몇 개까지 쓸 수 있나요?

이 솔버는 변수 두 개에서 여섯 개까지의 맵을 그립니다. 두 개면 2 × 2 격자, 세 개면 2 × 4, 네 개면 4 × 4입니다. 다섯 개와 여섯 개는 교재가 그리는 방식 그대로, 4 × 4 평면을 두 장 또는 네 장 겹쳐 그리고 이웃한 평면에서 같은 자리에 있는 칸을 인접한 것으로 셉니다. 겹치는 변수를 언급하지 않는 묶음은 어느 장에서나 같은 직사각형입니다. 여섯 개를 넘으면 머릿속에 담아야 할 인접 관계가 더 이상 눈에 보이지 않습니다. 맵의 쓸모는 오직 그것뿐이니, 그때는 계산기의 동치 형태에 있는 최소화 DNF를 쓰세요.

곱의 합과 합의 곱은 무엇이 다른가요?

같은 맵을 읽는 두 가지 방법입니다. 참인 칸을 묶으면 곱의 합이 됩니다. 묶음마다 논리곱 하나가 나오고 그것들을 OR로 잇습니다. 거짓인 칸을 묶으면 합의 곱이 되며 리터럴은 나올 때 부정됩니다. 묶음마다 논리합 하나가 나오고 그것들을 AND로 잇습니다. 둘 다 같은 함수를 나타내며, 어느 쪽이 짧은지는 1과 0 중 어느 쪽이 더 깔끔한 직사각형을 이루는지에 달려 있습니다.

솔버가 주는 답이 정말 최소 형태인가요?

그렇습니다. 필수 주 함의항을 먼저 취하고, 나머지 덮개는 탐욕적으로 고르는 대신 분기 한정법으로 남김없이 탐색합니다. 이는 순환형 맵 - 어떤 묶음도 필수가 아닌 맵 - 에서 중요합니다. 탐욕적 선택은 최소보다 항이 하나 많은 덮개에서 멈출 수 있고, 그 사실을 결코 알려 주지 않기 때문입니다. 지배당한 행과 열은 필수 항과 함께 지워지며, 표가 더 줄어들지 않을 때까지 반복됩니다. 그래서 대부분의 맵은 탐색까지 가지도 않고, 변수가 여섯 개여도 정확한 답이 곧바로 나옵니다.

열 이름이 00, 01, 10, 11이 아니라 00, 01, 11, 10인 이유는 무엇인가요?

그 순서라야 맵이 제구실을 하기 때문입니다. 이름표는 그레이 코드로 배열되어 연이은 두 값이 정확히 한 비트만 다릅니다. 그래서 이웃한 두 칸은 정확히 변수 하나만 다르고, 값이 같은 직사각형은 그 변수가 빠진 항이 됩니다. 보통의 이진 순서라면 01과 10이 나란히 놓이지만 두 비트가 다르므로 묶어 봐야 아무 의미가 없습니다. 가장자리가 이어지는 것도 같은 이유입니다. 첫 열과 마지막 열도 한 비트만 다르므로 묶음이 한쪽으로 나갔다가 반대쪽에서 이어질 수 있습니다.

칸을 무관 항으로 표시할 수 있나요?

직접은 안 됩니다. 솔버가 맵으로 그리는 것은 식이고, 식은 모든 행에서 참이거나 거짓입니다. 입력할 세 번째 값이 없습니다. 어떤 함수가 실제로 입력 하나를 무시한다면 그것을 식에 써 넣으세요. 맵이 보여 줍니다. (D | !D) 같은 항은 함수가 의존하지 않는 변수로 D를 맵에 올립니다. 미리 준비된 유효 BCD 자릿수 맵이 바로 그렇게 만들어졌습니다.

모든 질문 보기