이산수학 논리∙명제에서 알고리즘까지 √ 원리를 알면 IT가 맛있다 ehanbit.net.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

변수와 조건문 빛나리 36 호 박승운. 파이썬 쉽게 사용하기 Python IDLE 사용 FILE - New File 로 파일 만들기 Run – Run Module 로 실행하기.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Add Your Text 5. 지수함수와 로그함수 1. 지수함수 2. 로그함수 · 지수함수와 그 그래프 · 지수방정식과 지수부등식 · 로그 함수와 그 그래프 · 로그방정식과 로그부등식.
재료수치해석 HW # 박재혁.
(Mathematical Induction)
적분방법의 연속방정식으로부터 Q=AV 방정식을 도출하라.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Chapter 7. 조건문.
수치해석 6장 예제문제 환경공학과 천대길.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
CHAP 2:순환 순천향대학교 컴퓨터공학과.
Chapter 02 순환 (Recursion).
증명 수학적 귀납법 직접 증명법 간접 증명법 재귀법 프로그램 검증.
질의 사항 Yield Criteria (1) 소재가 평면응력상태에 놓였을 때(σ3=0), 최대전단응력조건과 전단변형에너지 조건은σ1 – σ2 평면에서 각각 어떤 식으로 표시되는가? (2) σ1 =σ2인 등이축인장에서 σ = Kεn로 주어지는 재료의 네킹시 변형율을 구하라.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
Tail-recursive Function, High-order Function
일차방정식의 풀이 일차방정식의 풀이 순서 ① 괄호가 있으면 괄호를 먼저 푼다.
하노이 탑의 최단 이동 횟수 알아 보기 제주 북초등학교 6학년 심화반 임 성 찬.
Ⅲ. 이 차 방 정 식 1. 이차방정식과 그 풀이 2. 근 의 공 식.
1.4 중첩된 한정기호 (Nested Quantifiers) 이산수학 (Discrete Mathematics)
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
CHAP 2:순환.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
에어 조건문.
2장. 변수와 타입.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 Slide 1 (of 19).
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
이산수학(Discrete Mathematics)  명제의 동치 (Propositional Equivalence)
이산수학 담당교수 : 박미경 1.
Hanoi Tower.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
1. 2진 시스템.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
미분방정식.
수학10-나 1학년 2학기 Ⅳ.삼각함수 3. 삼각함수의 그래프(7/12) 삼각함수 수업계획 수업활동.
01 로그의 정의 ⑴ 일 때, 양수 에 대하여 을 만족시키는 실수 는 오직 하나 존재한다. 이때 를
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
약식 진리표를 이용한 타당성 증명 진리표 그리기 방법의 한계
에어 PHP 입문.
수학10-나 1학년 2학기 Ⅳ.삼각함수 3. 삼각함수의 그래프( 8 / 12 ) 삼각함수 수업계획 수업활동.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
5장. 선택 알고리즘.
Chapter 1 단위, 물리량, 벡터.
Flow Diagram IV While.
CHAP 2:순환.
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
제 22 강 논리식 및 논리 값 shcho.pe.kr.
제 3장. Regular Languages 와 Regular Grammars
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
이산수학(Discrete Mathematics)  술어와 한정기호 (Predicates and Quantifiers)
I. 수와 식 1. 유리수와 순환소수.
수치해석 ch3 환경공학과 김지숙.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
9장. spss statistics 20의 데이터 변수계산
수학 2 학년 1 학기 문자와 식 > 부 등 식 ( 1 / 2 ) 일차부등식의 풀이.
수학 2 학년 1 학기 문자와 식 > 미지수가 2개인 연립방정식 ( 3 / 4 ) 대입법으로 풀기.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
진리표를 이용한 타당성 증명 진리표(truth table) : 단순 문장들이 진리값을 상이하게 가질 수 있는 가능한 모든 경우를 남김없이 열거한 표 (ex) 오늘은 날씨가 맑거나 비가 올 것이다. 오늘은 날씨가 맑다 비가 온다 오늘은 날씨가 맑거나 비가 올 것이다. T.
Presentation transcript:

이산수학 논리∙명제에서 알고리즘까지 √ 원리를 알면 IT가 맛있다 ehanbit.net

Chapter 02. 증 명

학습목표 수학적 귀납법을 이용한 증명 과정의 이해 여러 가지 증명 방법의 증명 과정 재귀법의 정의와 과정 이해 재귀 알고리즘의 작성과 검증 프로그램 검증 목적과 방법

자연수 n 에 관한 명제 p(n)에 대하여 다음 두 조건이 성립한다고 하자. Section 01. 수학적 귀납법 [정리01] 자연수 n 에 관한 명제 p(n)에 대하여 다음 두 조건이 성립한다고 하자. (1) p(1)은 참이다. (2) 임의의 k에 대하여 p(k) 참이면 p(k+1)도 참이다. 이 때 모든 자연수 n에 대하여 p(n)은 참이다. 이를 수학적 귀납법(mathematical induction)이라고 한다.

수학적 귀납법 (계속) [증명]

수학적 귀납법(계속) [예제01] 수학적 귀납법을 이용하여 다음 식이 성립함을 보여라. n!≥2n-1 (단, n=1,2,3,…) [풀이]

수학적 귀납법(계속) [예제03] 양의 정수 n에 대하여 이 성립 함을 수학적 귀납법을 이용하여 증명하여라. [풀이]

수학적 귀납법(계속) [예제05] 수학적 귀납법을 이용하여 인 정수일 때 이 성립함을 보여라. [풀이]

제 2 수학적 귀납법 / 강귀납법(strong form of mathematical induction) 수학적 귀납법(계속) 제 2 수학적 귀납법 / 강귀납법(strong form of mathematical induction) 자연수 n 에 관한 명제 p(n)에 대하여 다음 두 조건이 성립한다고 하자. (1) p(1)은 참이다. (2) 임의의 자연수 k ≥1에 대해 p(1)∧p(2)∧…∧ p(k) 참이면 p(k+1)도 참이다. 이 때 모든 자연수 n에 대하여 p(n)은 참이다.

수학적 귀납법(계속) [예제09] 제 2 수학적 귀납법을 이용하여 n≥14인 자연수 n 은 3과 8의 합으로 나타낼 수 있다는 것을 증명하여라. [풀이] 먼저 n=14면 14=8+3+3이 되어 3과 8의 합으로 나타낼 수 있다. 이제 14≤j≤k인 자연수 k들이 모두 3과 8의 합으로 나 타난다고 가정하고 k+1도 나타낼 수 있음을 보이자. 여기서 k+1=(k-2)+3이다. 그런데 k보다 작은 자연수 (k-2) 는 귀납법 가정에 의해 3과 8의 합으로 나타나는 수므로 k+1 도 (k-2)에 3을 더하면 나타낼 수 있게 된다. 그러므로 n≥14인 자연수 n은 3과 8의 합으로 나타낼 수 있 다.

수학적 귀납법(계속) [예제10] 수학적 귀납법을 이용하여 일 때 임을 증명하여 라. [풀이]

Section 02. 직접증명법 직접증명법(direct proof) 명제의 함축 p→q 가 참이 됨을 증명하는 방법

직접증명법(계속) [예제11] 짝수인 정수 n 이 있을 때 n2 도 짝수인 정수임을 직접증명법 을 이용하여 증명하여라. [풀이] p : n이 짝수 q : n2이 짝수 라고 가정하자. 명제 p가 참이므로 n은 짝수, 즉 n=2k (k∈Z)다. 따라서 n2=(2k)2=4k2=2(2k2) 가 된다. 그러므로 n2은 짝수다.

직접증명법(계속) [예제13] 두 유리수의 합이 유리수임을 직접증명법으로 증명하여라. [풀이]

간접증명법(indirect proof) Section 03. 간접증명법 간접증명법(indirect proof) 증명하고자 하는 명제를 논리에 어긋나지 않는 범위에서 증명하기 쉬운 명제로 변환하여 증명하는 방법 유형 대우증명법 모순증명법 반례증명법

대우증명법(proof by contraposition) 간접증명법 - 대우증명법 대우증명법(proof by contraposition) 명제의 함축 p→q 이 참이면 그 대우인 q→ p 도 참이고 두 명제가 서로 동치인 것을 이용 주어진 명제의 대우명제가 참임을 증명함으로써 증명하고자 하는 명제도 참임을 증명하는 방법

간접증명법 - 대우증명법(계속) [예제16] n2 이 짝수면 n 이 짝수임을 대우증명법을 이용하여 증명하라. [풀이] p : n2 짝수, q : n 짝수 라고 하면 q : n 홀수, p : n2 홀수 이다. 이제 q→ p 가 참임을 보이자. n 이 홀수라면 n=2k+1(k는 정수)이므로 n2=(2k+1)2=(4k2+4k+1)=2(2k2+2k)+1 이 되어 n2 도 홀수다. 그러므로 q→ p 이 참이 되어 주어진 명제 ‘n2 이 짝수면 n 이 짝수’도 참임을 알 수 있다.

간접증명법 - 대우증명법(계속) [예제18] 실수 x에 대하여 |x|>1이면 x>1또는 x<-1임을 대우증명법을 이용하여 증명하여라. [풀이] 명제 p: |x|>1, q: x>1 또는 x<-1 이라고 하면 p: |x|≤1, q: -1≤x≤1 이다. 이제 q→ p 가 참임을 보이자. 0≤x≤1일 때 식은 |x|= x≤1이 되어 성립, -1≤x≤0일 때 |x|= -x≤1이 되어 성립한다. 그러므로 실수 x에 대하여 |x|>1이면 x>1또는 x<-1이다.

모순증명법(proof by contradiction) 간접증명법 - 모순증명법 모순증명법(proof by contradiction) 주어진 명제를 부정한 뒤 그 식을 전개함에 있어서 결론이 모순됨을 보여 결국 명제가 참임을 증명하는 방법 함축 p→q 와 (p∧q)가 동치인 것을 이용하여 증명하는 방법 (p∧q)가 참이라고 한 뒤 그 결과가 모순되면 (p∧q) 가 참이 되고 이와 동치인 함축 p→q 도 참이 됨을 이용

간접증명법 - 모순증명법(계속) [예제20] 다음 명제를 증명하여라. n 이 정수일 때 n+m=0이 되는 m은 유일하게 하나 존재한다. [풀이] n+m=0을 만족하면서 m과는 다른 정수가 존재한다고 가정 이 정수를 k라고 하면 n+k=0이므로 n+m=n+k 양변에 정수 n은 빼주면 m=k 그런데 m≠k라고 했으므로 m=k는 가정에 모순된다. 따라서 정수 n에 대해 n+m=0을 만족하는 정수 m은 유일하다.

간접증명법 - 모순증명법(계속) [예제21] 는 유리수가 아님을 증명하여라. [풀이] 는 유리수라고 가정하면 이다. 는 유리수라고 가정하면 이다. 이때 는 유리수므로 은 공통인수를 갖지 않는다. 주어진 식을 정리하면 이 되어 이 짝수가 되어 으로 나타내면 이 된다. 즉, 도 짝수가 된다. 이는 유리수 가 공통인수를 갖지 않는다는 가정에 모순된다. 그러므로 는 유리수가 아니다.

반례에 의한 증명법(proof by counter-example) 간접증명법 – 반례에 의한 증명법 반례에 의한 증명법(proof by counter-example) 주어진 명제에 모순되는 간단한 예를 하나 보임으로써 명제를 증명하는 방법 다른 증명 방법으로 증명하기 어려운 예제들을 증명할 때 유용

간접증명법 - 반례에 의한 증명법(계속) [예제25] 다음 명제가 참인지 거짓인지 증명하여라. 는 실수 [풀이] 만약 이면 만약 이면 이고 이 되어 가 된다. 그러므로 주어진 명제는 거짓이다.

간접증명법 - 반례에 의한 증명법(계속) [예제27] 다음 명제가 참이면 증명하고 거짓이면 반례를 들어라. 양의 정수 에 대해 이면 는 소수다. [풀이] 몇 가지 경우를 살펴보면 다음과 같다. 그러나 만일 그러므로 주어진 명제는 거짓이다.

Section 04. 재귀법 재귀법(recursion) 하나의 문제를 그보다 값이 작은 동일한 문제로 계속 단순화시켜 해결하고자 하는 방법 재귀법 문제해결을 위해 규칙필요 초기조건(initial condition) 재귀조건(recursion condition)

재귀법(계속) [예제28] 재귀법을 이용하여 양의 정수 n 에 대한 팩토리얼(factorial) 값을 구해주는 함수를 정의하여라. [풀이] 구하는 함수의 이름을 factorial(n)=n! 이라고 하면 다음과 같이 정의할 수 있다. 초기조건 factorial(0)=0!=1 재귀조건 factorial(n)=n∙factorial(n-1), n≥1

재귀법(계속) 팩토리얼 재귀정의가 올바른지 보기 위해 factorial(2)를 구하는 과정을 살펴보면 다음과 같다. factorial(2)=2∙factorial(2-1) =2∙factorial(1)=2∙(1∙factorial(1-1)) = 2∙1∙factorial(0)=2

재귀법(계속) 재귀 알고리즘 재귀법을 이용한 프로그램 알고리즘 재귀 알고리즘을 이용하여 복잡한 연산을 쉽게 해결 대부분의 프로그램 언어에서 재귀 알고리즘 지원

재귀법(계속) [예제31] 1부터 자연수 n 까지의 합을 구하는 재귀 알고리즘을 구하라. [풀이]

재귀법(계속) [예제34] 양의 정수 n 의 팩토리얼(factorial) 값을 구하는 재귀 알고리즘을 구하여라. [풀이]

재귀법(계속) 하노이 탑(tower of Hanoi) 3개의 기둥 중 제일 왼쪽 기둥에 크기가 큰 것이 제일 아래에 있게 원판들이 쌓여있을 때 제일 오른쪽 기둥으로 원판을 옮기는 데 소요되는 최소 이동 회수를 구하는 문제 추가조건 원판은 한 번에 하나씩만 옮길 수 있다. 원판을 기둥과 기둥으로만 옮길 수 있다. (즉, 바닥에 내려놓을 수 없다.) 크기가 큰 원판은 작은 원판 위에 올 수 없다.

재귀법(계속) 원판이 3개인 하노이 탑의 풀이 원리

재귀법(계속) [예제35] 하노이 탑 문제의 재귀 알고리즘을 구하여라. [풀이]

Section05. 프로그램 검증 프로그램 명령문 순서문 명령들을 순서대로 실행 조건문 주어진 조건이 참인지 거짓인지에 따라 명령문을 선택 하여 실행 반복문 조건이 참인 동안 명령문을 반복 실행

프로그램 검증(계속) 프로그램 명령문

프로그램 검증(계속) [예제37] 다음 알고리즘을 실행 후 x, y 값은 어떻게 되는지 검증하여라. [풀이] 프로그램 검증을 위해 x, y 에 초기 상수값 x1, y1 을 입력해보자. 명령을 수행하면 로 변경되어 두 개의 변수에 할당되어 있던 값을 서로 교환하는 프로그램임을 알 수 있다.

프로그램 검증(계속) [예제38] [풀이] 절대값을 구하는 알고리즘이다. 정확하게 수행되는지 검증하여라. 검증을 위해 x에 초기값 x1을 할당하자. x1<0이면 x=-x 명령문 실행 x1>0이면 x=x 명령문 실행 따라서 절대값 양수 x1을 구하고 알고리즘이 정확하게 동작함을 알 수 있다.

프로그램 검증(계속) [예제41] 다음 n≥0인 정수에 대한 실수 x의 n 제곱을 구하는 알고리즘이 정확하게 수행되는지 검증하여라.

프로그램 검증(계속) [풀이] 알고리즘에서 증명하는 명제 p는 다음과 같다. 수학적 귀납법을 이용하면 일 때 성립한다고 가정하고, 일 때 성립함을 보이자. 일 때 변수 를 일 때 이라고 하면

프로그램 검증(계속) 이다. 따라서 일 때 이 되어 명제 p가 참이 된다. 또한 반복문의 I 값은 1씩 증가하다 n+1이 되면 이 되어 반복문을 정상 종료하게 된다. 그러므로 알고리즘이 정상 동작함을 알 수 있다.

Thank you ehanbit.net