과제를 늦게 내게 되니 다룰 내용이 없네요..
주제 정하고 다른분들 글 내용보면 제가 다루려고 하는 내용 다 해주시고.. ㅠ_ㅠ
그래서 어떻게 참신한 주제를 찾을까 하다가
truth table에 대해서 다뤄보려고 해요.
이 단원의 첫장에서 Boolean expression, Logic diagram 과 함께 다뤄주지만 살짝 나오고 그 이후엔 나오지 않아요.
그래서 자세히 알아봤습니다!
Truth table 한국말로 진리표라고도 불리는 이 표는 복합명제에 대한(p,q 두가지 혹은 그 이상의) 연산 결과의 모든 값을 하나의 표로 정리한 것을 의미합니다. 이렇게 말로만 써놓으면 뭔지 잘 모르니 그림으로 확인을 해봐야 겟죠?
자! 이게 바로 Truth table 진리표 에요. q와q 그리고 그들의 역들 의 연산 방법 8가지를 모두 가정해서 그 결과를 T와 F로 정리해 준 것이죠.
*사실 이 Truth table이라는 용어는 수학용어라고 합니다. 수학이나 컴퓨터나 다루는 내용이 자주 겹치니 컴퓨터 에서도 수학 단어를 쓰는 것 같네요.*
두가지 명제에 대해 그 두가지 명제의 조합으로 인해 연산값이 어떻게 될지를 예측해 정리하는 표. 이게 진리표의 정의에요. p 와 q 명제들의 참 거짓이 두가지씩 정리된 이유는 p와 q의 조합이 총 4가지로 될 수 있기 때문이에요.
p가 참이고 q가 참
p가 참이고 q가 거짓
p가 거짓이고 q가 참
p가 거짓이고 q가 거짓
이렇게 4가지 경우가 있기 때문이죠. 이 모든 경우를 다뤄주기 위해 진리표에서도 4줄로 나뉘어 진 겁니다.
그렇다면 진리표의 정의를 알았는데 이건 쓸데 없이 왜 쓰느냐? 가 궁금해 지겠죠?
일단 진리표를 처음 사용한 사람은 Ludwig Wittgenstein 입니다. 우리말로 루드비히 비트겐슈타인 입니다. 이 사람은 철학자 이기 때문에 이 글에서는 그냥 발명했다 라는 식으로만 다루고 넘어갈게요. Ludwig Wittgenstein 이 Truth Table을 만든 이유는 그가 논리학을 주로 다뤘기 때문이에요. Ludwig Wittgenstein 는 자신의 논리 추론과정에서 각각의 명제들이 달라질때 결과값이 어떻게 달라지는지 알기를 원했고, 그 때마다 직접 생각해보는게 귀찮아서(물론 이건 제생각이지만) 만든 것 같아요. 한번 관련 명제에 대해 진리표를 만들어 두면 명제의 결과가 달라지더라도 결과를 바로 알수 있기 때문이죠.
그럼 이제 논리학 용어이자 수학 용어인 Truth Table이 왜 컴퓨터에 쓰이느냐? 에 대한 질문에 대답해 볼까요.
컴퓨터에서는 특정 명제에 대해 대부분 T F 로 구별되요. 하지만 이런 명제들이 한개 두개가 아니라 점점 중복된다면 결과를 알기 위해선 무수히 많은 논리식이 필요해 지죠. 하지만 Truth Table을 이용하면 이 결과를 조금 간단히 표현할 수 있어요. 하지만 Truth Table역시 변수가 많아질 경우엔 간략화 하는데에 무리가 있어요. 이때 카르노맵을 이용하여 더욱 간략하게 표현할 수 있어요.
만약에 A,B,C,D의 4가지 명제가 서로 연관된 연산이 있다고 가정해 볼게요.
그렇다면 A에 2가지 B에 2가지~ 쭉해서 2가지씩 총 4번 2^4번의 계산값이 나오게 되요. 즉 명제가 4가지라면 그에따른 변수에 따라서 16가지 경우의 출력값이 나온다는 거죠.
이때에 쓸수 있는게 바로 논리표에요.
위에 그림처럼 0부터 15까지 총 16가지의 출력값을 표현하도록 되있어요.
왼쪽에 있는 10진수들은 카르노맵의 2진수들을 10진법으로 바꾼 숫자들이에요.
그렇다면 저기있는 카르노맵의 숫자들은 어떻게 나왔나 볼까요.
자! 이게 바로 카르노맵!입니다.
저 위에있던 논리표에서 나온 10진수들은 이 위의 카르노맵에서 왼쪽수와 오른쪽수를 합쳐 2진수로 바꾸고 바뀐 2진수를 10진수로 바꾼 것이에요. 위의 표 안에 있는 숫자들은 해당 칸의 10진수 들을 써넣은 것이구요.
프로그래밍으로 Truth table을 만드는 법도 다루고 싶지만, 너무 어려워 지는 것 같아서 또다시 주춤하게 됬어요. 아직 카르노맵의 제작 방법도 어려운데.. ㅠ_ㅠ
*Smooth Criminal-마이클잭슨, 본능적으로-윤종신, 시계태엽-임정희 이 음악 3개로 무한 반복했더니 머리가 멍해지네요..*
자 다시 본론으로 돌아와서
컴퓨터에서 논리표를 사용 이유는 위에서 결론 내리듯이 명제가 많아질때를 대비하기 위함이에요. Truth Table이라는 말처럼 참 거짓을 판단해주는 간단한 표이구요. 예를 들어 8x1 사이즈의 Multiplexer의 논리 회로를 다루려면 8가지의 명제에 대한 참거짓 판단이니 2^8개=256가지의 경우를 알아야 하는 거죠. 이를 간단하게 하는게 바로 Truth Table이다. 라는게 이번 글의 요점입니다.
중간에 나온 카르노맵은 논리표를 보다 보기쉽게 바꾸어주기 위한 도구이구요.
컴퓨터에서 쓰이는 명제는 아까도 말했듯 부울함수에의한 0,1 두가지 경우로만 판단되는 경우가 많기 때문에 논리표는 유용하게 쓰입니다.
그럼 이만!



수고했어요.
답글삭제