불 대수 계산기

모든 불 대수 식을 최소 SOP 및 POS 형식으로 축소하고, 모든 주임플리컨트와 행별 진리표 검증 과정을 확인해 보세요.

입력 식

변수는 단일 알파벳 문자로 작성해 주세요. AND는 AB, A·B, A*B 또는 A AND B로, OR은 A + B 또는 A OR B로, NOT은 A', !A 또는 NOT A로 쓸 수 있으며, XOR, NAND, NOR도 지원합니다.
연산자 삽입

최대 6개의 서로 다른 변수 및 2,000자까지 지원합니다. 상수 0과 1도 사용할 수 있습니다.

예시 식 선택

최소 형식

최소화된 식이 여기에 표시됩니다

불 대수 식을 입력하시면 가장 단순화된 논리곱의 논리합(SOP), 논리합의 논리곱(POS) 및 그 풀이 과정을 보여드립니다.

단순화할 불 대수 식을 입력하세요.

입력하신 식은 이 브라우저 내에서 단순화되며 절대 기기 외부로 전송되지 않습니다.

자주 묻는 질문

어떤 식 표기법들을 인식할 수 있나요?

자주 쓰이는 모든 표기법을 자유롭게 섞어 쓸 수 있습니다. 공학 표기법(암묵적 AND 및 NOT을 뜻하는 프라임을 사용하는 AB + A'C), 프로그래밍 표기법(A && !B || C, A ^ B), 논리 기호(¬ ∧ ∨ ⊕ ⊼ ⊽) 및 텍스트 단어(A AND B OR NOT C, NAND, NOR)를 모두 지원합니다. ABC와 같이 여러 문자를 연속해서 쓰면 A AND B AND C로 인식하며, AND, OR, NOT, XOR, NAND, NOR 단어는 항상 연산자로 해석됩니다.

최소화된 식은 어떤 방식으로 구하나요?

이 도구는 전체 진리표를 생성한 후, 인접한 1인 행들을 주임플리컨트(Prime Implicant)로 병합하고(Quine–McCluskey 알고리즘), 필수 주임플리컨트를 선택한 뒤 남은 행들을 정확한 최소 커버(Exact Minimum Cover)로 해결합니다. 이 결과는 휴리스틱이 아닌 논리곱의 논리합(SOP) 형태에 대해 보장된 절대적 최소 형식입니다. 또한 0인 행들에 대해 동일한 과정을 수행하여 논리합의 논리곱(POS) 형태를 도출합니다.

SOP 결과와 POS 결과의 차이점은 무엇인가요?

두 형식 모두 동일한 논리 함수를 나타냅니다. 논리곱의 논리합(SOP)은 AB' + BC와 같이 AND 항들을 OR로 연결한 형태로, AND-OR 회로에 직접 대응됩니다. 논리합의 논리곱(POS)은 (A + B)(B' + C)와 같이 OR 항들을 AND로 연결한 형태로, OR-AND 회로에 대응됩니다. 구현하려는 함수에 따라 한 형식이 다른 형식보다 더 적은 게이트를 필요로 할 수 있으므로, 이 도구는 항상 두 형식을 동시에 보여줍니다.

왜 최대 6개의 변수만 지원하나요?

6개의 변수만으로도 이미 64행의 진리표가 생성되며, 이는 사람이 직접 읽고 검증할 수 있는 거의 최대 한계입니다. 그 이상의 변수에서도 이론적으로는 최소화가 작동하지만, 이 페이지가 제공하는 핵심 가치인 유도 과정과 진리표의 시각적 유용성이 떨어지게 됩니다. 더 많은 변수를 다루는 복잡한 함수에는 파일 출력을 지원하는 논리 설계 전문 소프트웨어를 사용하는 것이 좋습니다.

불 대수 식의 최소화와 Quine–McCluskey 알고리즘

불 대수 식을 가장 단순한 수학적 형태로 축소하는 것은 디지털 논리 회로 설계와 소프트웨어 최적화의 핵심 과정입니다. 불 대수 계산기는 사용자가 입력한 임의의 불 대수 식을 분석하여 최소 논리곱의 논리합 (SOP)과 최소 논리합의 논리곱 (POS) 형식을 동시에 도출합니다.

이 계산기는 정확한 최소 커버를 보장하는 Quine–McCluskey 알고리즘을 기반으로 작동합니다. 카르노 맵(K-map)과 같은 수작업 방식은 변수가 4개를 초과하면 시각적으로 표현하고 분석하기가 급격히 어려워집니다. 반면 Quine–McCluskey 알고리즘은 체계적인 표 작성 방식을 사용하여 변수가 늘어나도 논리적 오류 없이 확실한 최소 형식의 식을 찾아냅니다. 이 도구는 최대 6개의 서로 다른 변수, 최대 2,000자까지의 식 입력을 지원하여 복잡한 논리식도 안정적으로 처리할 수 있습니다.


다양한 불 대수 표기법의 지원

공학, 컴퓨터 과학, 형식 논리학 등 각 분야에 따라 불 대수를 표현하는 기호 체계가 다릅니다. 이 계산기는 사용자의 편의를 위해 다양한 표기법을 자유롭게 혼용하여 입력할 수 있도록 설계되었습니다.

  • AND 연산: 두 변수를 연속해서 쓰는 암묵적 표현(AB), 가운뎃점(A·B), 별표(A*B), 텍스트 단어(A AND B), 프로그래밍 기호(A && B) 및 논리 기호를 모두 인식합니다. ABC와 같이 여러 문자를 연속해서 입력하면 자동으로 A AND B AND C로 해석됩니다.
  • OR 연산: 더하기 기호(A + B), 텍스트 단어(A OR B), 프로그래밍 기호(A || B) 및 논리 기호를 지원합니다.
  • NOT 연산: 프라임 기호(A'), 느낌표(!A), 텍스트 단어(NOT A), 부정 기호(¬A)를 사용할 수 있습니다.
  • 기타 연산: XOR(A ^ B, A XOR B, A ⊕ B), NAND(A NAND B, ), NOR(A NOR B, ) 연산도 완벽히 지원합니다.
  • 상수: 논리 상수 01을 식에 직접 사용할 수 있습니다.

주임플리컨트 분석과 진리표 검증

불 대수 식의 최소화 과정은 진리표 상에서 값이 1인 행(최소항, minterms)들을 병합하는 것에서 시작합니다. 인접한 1인 행들을 최대한 병합하면 더 이상 단순화할 수 없는 논리적 단위인 주임플리컨트(Prime Implicants)가 도출됩니다. 이 중 특정 최소항을 커버할 수 있는 유일한 통로가 되는 주임플리컨트를 필수 주임플리컨트(Essential Prime Implicants)라고 합니다.

계산기는 입력된 식을 분석하여 다음과 같은 진단 정보를 한눈에 보기 패널을 통해 제공합니다:

항목 설명
변수 식에서 감지된 변수 목록
값이 1인 행 식의 결과가 참(1)이 되는 최소항 목록
주임플리컨트 병합을 통해 찾아낸 모든 주임플리컨트 개수
필수 주임플리컨트 최소 식 구성에 반드시 포함되어야 하는 필수 항의 개수
리터럴 수, 변환 전 → 후 단순화 과정을 거치며 줄어든 변수 및 부정 기호의 총 개수
알고리즘 적용된 최소화 방법 (Quine–McCluskey, 정확한 최소 커버 표시)

최소화가 완료되면 원래의 입력 식과 최소 SOP 형식을 행별로 대조하는 진리표가 생성되어 두 식이 모든 조건에서 완벽히 일치함을 시각적으로 검증합니다.


입력 오류 및 예외 처리

계산기는 사용자가 잘못된 식을 입력했을 때 구체적인 에러 메시지를 통해 수정 위치와 원인을 안내합니다.

  • 글자 수 초과: "식을 2,000자 이내로 입력해 주세요." 메시지가 표시됩니다.
  • 변수 개수 초과: 6개를 초과하는 변수를 사용하면 "이 식은 ‹count›개의 서로 다른 변수를 사용하고 있습니다. 이 계산기는 최대 6개까지만 지원합니다."라는 에러가 발생합니다.
  • 잘못된 문자: 불 연산자나 변수, 상수가 아닌 문자가 포함되면 "‹char›"(‹position›번째 글자)은(는) 불 연산자, 변수 또는 상수가 아닙니다. 에러를 출력합니다.
  • 구문 오류: 연산자 앞뒤에 피연산자가 누락된 경우 "‹position›번째 글자 부근에 피연산자가 없는 연산자가 있습니다. 끝에 남는 +, · 또는 ⊕가 없는지 확인해 주세요." 메시지가 나타납니다.
  • 괄호 불일치: 열고 닫는 괄호의 짝이 맞지 않으면 "괄호의 쌍이 맞지 않습니다. 괄호를 추가하거나 제거해 주세요." 에러가 표시됩니다.

식의 결과가 변수 값에 상관없이 항상 일정할 때도 별도의 상태 메시지를 보여줍니다. 항상 참인 동치식(Tautology)의 경우 "이 식은 항상 1입니다. 모든 변수 값의 조합에 대해 항상 참(1)이 됩니다."로 표시되며, 항상 거짓인 모순식(Contradiction)의 경우 "이 식은 항상 0입니다. 어떤 변수 값의 조합으로도 참(1)이 될 수 없습니다."라고 안내합니다. 이미 가장 단순한 상태인 식을 입력하면 "입력하신 식은 이미 최소화된 논리곱의 논리합(SOP) 형태입니다."라는 메시지가 나타납니다.


개인정보 보호 및 데이터 처리

입력하신 식은 이 브라우저 내에서 단순화되며 절대 기기 외부로 전송되지 않습니다.

자주 묻는 질문 (FAQ)

Q: 왜 최대 6개의 변수만 지원하나요?
A: 6개의 변수만으로도 이미 64행의 진리표가 생성되며, 이는 사람이 직접 읽고 검증할 수 있는 거의 최대 한계입니다. 그 이상의 변수에서도 이론적으로는 최소화가 작동하지만, 이 페이지가 제공하는 핵심 가치인 유도 과정과 진리표의 시각적 유용성이 떨어지게 됩니다. 더 많은 변수를 다루는 복잡한 함수에는 파일 출력을 지원하는 논리 설계 전문 소프트웨어를 사용하는 것이 좋습니다.

Q: 최소화된 식은 어떤 방식으로 구하나요?
A: 이 도구는 전체 진리표를 생성한 후, 인접한 1인 행들을 주임플리컨트(Prime Implicant)로 병합하고(Quine–McCluskey 알고리즘), 필수 주임플리컨트를 선택한 뒤 남은 행들을 정확한 최소 커버(Exact Minimum Cover)로 해결합니다. 이 결과는 휴리스틱이 아닌 논리곱의 논리합(SOP) 형태에 대해 보장된 절대적 최소 형식입니다. 또한 0인 행들에 대해 동일한 과정을 수행하여 논리합의 논리곱(POS) 형태를 도출합니다.

Q: 어떤 식 표기법들을 인식할 수 있나요?
A: 자주 쓰이는 모든 표기법을 자유롭게 섞어 쓸 수 있습니다. 공학 표기법(암묵적 AND 및 NOT을 뜻하는 프라임을 사용하는 AB + A'C), 프로그래밍 표기법(A &&!B || C, A ^ B), 논리 기호(¬ ∧ ∨ ⊕ ⊼ ⊽) 및 텍스트 단어(A AND B OR NOT C, NAND, NOR)를 모두 지원합니다. ABC와 같이 여러 문자를 연속해서 쓰면 A AND B AND C로 인식하며, AND, OR, NOT, XOR, NAND, NOR 단어는 항상 연산자로 해석됩니다.

Q: SOP 결과와 POS 결과의 차이점은 무엇인가요?
A: 두 형식 모두 동일한 논리 함수를 나타냅니다. 논리곱의 논리합(SOP)은 AB' + BC와 같이 AND 항들을 OR로 연결한 형태로, AND-OR 회로에 직접 대응됩니다. 논리합의 논리곱(POS)은 (A + B)(B' + C)와 같이 OR 항들을 AND로 연결한 형태로, OR-AND 회로에 대응됩니다. 구현하려는 함수에 따라 한 형식이 다른 형식보다 더 적은 게이트를 필요로 할 수 있으므로, 이 도구는 항상 두 형식을 동시에 보여줍니다.