논리에 관한 이야기

원대한·2023년 9월 28일
0
post-thumbnail

논리

학창시절에 이공계 공부를 하고 공대에 진학해 공학을 공부하며 스스로 논리적이라 생각하였다. 학부시절 프로그래밍을 배울 땐 기초 문법 익히기 급급해서 알고리즘 문제들을 풀어본적이 많이 없었는데 뒤늦게 프로그래밍을 공부하며 알고리즘 문제를 풀다보니 내가 생각보다 많은 문제에 직관적으로 접근 한다는 것을 알 수 있었다. 어떨 땐 직관이 논리적으로 맞을 때도 있었지만 앞으로 프로그래밍을 하며 문제상황을 완벽히 해결할 수 있는 기능을 구현하기 위해서는 논리에 대해 공부를 해야겠다는 생각이 들었다.

소프트 로직(soft logic)

일상생활에서 많이 사용하는 것이 soft logic 이다. 판단이 빠르다는 장점이 있으나 논리적으로 부정확하므로 사용되는 수많은 프로그래밍 알고리즘을 이해하기 위해서는 hard logic 으로 알고리즘을 이해하여야 한다.

하드 로직(hard logic)

p -> q (p 이면 q 이다.)

다음과 같은 명제가 있다. 만약 p 가 (항상)거짓이면 이 명제는 무조건 참 이다.
예를 들어 이해해보면 중간고사에서 수학점수 100점 맞으면, 햄버거를 사줄게 하고 약속을 한 뒤 점수를 100점 맞지않았을 때 햄버거를 사주지 않거나 햄버거를 사주더라도 약속을 딱히 어긴건 아니게 된다. 이 명제를 보면 앞의 조건명제가 거짓이면 무조건 참이 된다는 것을 납득할 수 있다.

그리고 q 가 (항상)참이면 이 명제는 무조건 참이다. 예를 들어 182873729398 이 소수 이면 2는 짝수이다 라는 명제가 있다. 앞의 조건명제가 소수인지 아닌지는 모르지만 2가 짝수 인 것은 확실히 참이다. 이 때도 위 단락 내용을 조합하여 생각해보면 반드시 참인 것을 알 수 있다.

만약 p -> q 명제가 거짓이라면

위와 같이 명제가 거짓이라면 p 가 참이고 q 가 거짓인 경우 밖에 없으므로 이를 이용하여 논리 문제에 접근하면 된다.

역, 이, 대우에 관해서는 다들 익숙하다고 생각하므로 생략하겠다.

profile
데이터분석 및 개발, 금융 관련

0개의 댓글