1 / 24

8 장 . 재귀 (1)

8 장 . 재귀 (1). 이산수학 및 응용 하병현 bhha@pusan.ac.kr. 목차. 8.1 재귀적으로 정의된 수열 8.2 반복을 사용한 재귀식 풀이 8.3 상수 계수를 갖는 2 계 선형동차 재귀식 8.4 일반적인 재귀적 정의. 8.1 재귀적으로 정의된 수열.

Download Presentation

8 장 . 재귀 (1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8장. 재귀(1) 이산수학 및 응용 하병현 bhha@pusan.ac.kr

  2. 목차 8.1 재귀적으로 정의된 수열 8.2 반복을 사용한 재귀식 풀이 8.3 상수 계수를 갖는 2계 선형동차 재귀식 8.4 일반적인 재귀적 정의

  3. 8.1 재귀적으로 정의된 수열 So, Nat’ralists observe, a Flea / Hath smaller Fleas that on him prey, / And these have smaller Fleas to bite ’em, / And so proceed ad infinitum. Jonathan Swift, 1733

  4. 재귀(Recursion) • 수열의 정의 방법 • 처음 몇 항을 열거 • 3, 5, 7, … • 다음은 무엇? • n번째 항에 대한 공식을 기술 • an (–1)n/(n + 1), n은 음이 아닌 정수 • 초기 조건과 항들의 관계를 재귀적으로 기술 • b0 1, b1  3 • bk  bk–1 + bk–2  재귀적으로 정의할 수 있다는 것은 수학적 귀납법으로 증명할 수 있다는 것과 동치

  5. 수열의 재귀적 정의 • 정의 • 수열 a0, a1, a2, …의 재귀식(recurrence relation)은 정수 i와 k에 대하여(k i) 수열의 항 ak와 그에 선행하는 항 ak–1, ak–2, …, ak–i사이의 관계를 정의한 식이다. 재귀식에 대한 초기조건(initial condition)은 처음 몇 개의 항을 기술한 식으로, i가 고정된 값이면 a0, a1, … ai–1의 값을 기술하고, i가 k에 종속적이면 a0, a1, …, am의 값을 기술한다(m은 음이 아닌 정수).

  6. 수열의 재귀적 정의 • 예제 • ck  ck–1 + kck–2 + 1 • c0  1, c1  2 • c2, c3, c4? • 예제: 같은가? • 정수 k  1에 대하여, sk  3sk–1 – 1 • 정수 k  0에 대하여, sk+1  3sk – 1

  7. 수열의 재귀적 정의 • 예제: 재귀식을 만족하는가? • 1, –1!, 2!, –3!, …, (–1)nn!, … (모든 정수 n  0) • sk  (–k)sk–1 (각각의 정수 k  1) • 풀이 • 주어진 수열의 일반항을 sn이라 하면, sn (–1)nn! • 일반항의 공식에 k, k– 1을 대입하면, • sk (–1)kk!, sk–1 (–1)k–1(k–1)! • 따라서, (–k)sk–1 (–k)(–1)k–1(k–1)!  (–1)k(–1)k–1(k–1)!  (–1)kk!  sk

  8. 재귀적으로 정의된 수열 • 재귀적으로 문제의 해결 • 원래 문제를 동일한 형태의 작은 문제로 분할 • 문제가 쉽게 해결될 수 있을 만큼 작아질 때까지 • 최하위의 문제에 대한 답을 구하고, 그것을 사용하여 상위의 문제에 대한 답을 구하고, … • 재귀적 패러다임 또는 재귀적 믿음 • 작은 문제에 대한 답을 이미 알고 있다고 가정

  9. 하노이의 탑 • 예제: 몇 번이 필요한가? • 64개의 디스크를 C로 옮겨야 함. 하나씩 옮기되 작은 디스크가 큰 디스크 아래로 갈 수 없음.

  10. 하노이의 탑 • 예제: 4개를 옮긴다면, …

  11. 하노이의 탑 • 예제(계속): 재귀적 해법

  12. 하노이의 탑 • 예제(계속): 재귀적 해법 • mk(ab)를 k개의 디스크를 a에서 b로 옮기는 필요한 최소 이동 회수라 정의하면, • mk(AC) mk–1(AB) + 1 + mk–1(BC) • 그런데, 개수는 옮기는 위치와 관련 없음 • 따라서, mk를 k개의 디스크를 옮기는 필요한 최소 이동 회수라 정의하면, • mk mk–1 + 1 + mk–1  2mk–1 + 1 • m1 1

  13. 하노이의 탑 • 예제(계속) • 64개의 디스크를 옮기려면 몇 번이 필요할까? • m64 1.844674  1019 • 1초에 하나씩 옮긴다면 대략 얼마나 걸릴까? • 약 5845억 년

  14. 피보나치 수 • 예제 • 남녀 토끼 한 쌍이 연초에 태어났다. • 태어난 첫 달에는 불임이나 다음 달부터 매 달 말에 한 쌍의 남녀 토끼를 낳는다. • 1년 동안 토끼는 죽지 않는다. • 연말에는 토끼가 몇 마리나 있을까?

  15. 피보나치 수 • 예제(계속) • 생각해보면, • 따라서, • k달 말의 토끼 쌍의 수  k– 1 달 말의 토끼 쌍의 수 + k– 2 달 말의 토끼 쌍의 수 1 달 말 2 달 말 3 달 말 4 달 말 5 달 말 6 달 말 1쌍 1쌍 2쌍 3쌍 5쌍 8쌍 13쌍

  16. 피보나치 수 • 예제(계속) • Fn을 n달 말의 토끼 쌍의 수라 하면, • Fn  Fn–1 + Fn–2 http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/fibnat.html

  17. 비트열의 수 • 예제 • 비트열은 0과 1로 구성된 문자열이며, 빈 문자열은 으로 표시한다. • ‘11’을 포함하지 않는 비트열 중에서 길이가 0, 1, 2, 3인 것을 각각 열거하면? • 길이 0:  • 길이 1: 0, 1 • 길이 2: 00, 01, 10, 11 • 길이 3: 000, 001, 010, 011, 100, 101, 110, 111

  18. 비트열의 수 • 예제(계속) • sn을 nZnonneg에 대하여 길이가 n이고 ‘11’을 포함하지 않는 비트열의 개수로 정의하면, s0, s1, s2, s3는? • 각각, 1, 2, 3, 5. • 그렇다면, ‘11’을 포함하지 않는 비트열 중 길이가 10인 것의 개수는? 즉, s10은? • 어떻게 더 작은 같은 문제로 쪼갤 수 있을까?

  19. 비트열의 수 • 예제(계속) • 길이가 n이고 ‘11’을 포함하지 않는 비트열의 집합은 아래의 두 집합으로 분할 될 수 있음 i) 0으로 시작하고 ‘11’을 포함하지 않는 비트열의 집합 ii) 1로 시작하고 ‘11’을 포함하지 않는 비트열의 집합 • i)은 sn–1개 • ii)는 ‘10’으로 시작해야 하므로 sn–2개 • 따라서, sn sn–1 + sn–2.

  20. 부분집합으로 분할하는 방법의 수 • 예제 • {1, 2, 3}을 2개의 부분집합으로 분할하는 방법의 수는? • {1, 2}{3} {1, 3}{2} {2, 3}{1} • 그렇다면, 크기 n인 집합을 r개의 부분집합으로 분할하는 방법의 수는? • 2계 Stirling 수(Stirling number of the second kind) • Sn,r로 표기

  21. 부분집합으로 분할하는 방법의 수 • 예제(계속) • S4,1? • {1, 2, 3, 4} • S4,4? • {1}{2}{3}{4} • S4,2? • 부분집합이 i) 모두 2개의 원소를 갖는 경우와 ii) 하나는 1개 다른 하나는 3개를 갖는 경우로 분리 • {1, 2}{3, 4} {1, 3}{2, 4} {1, 4}{2, 3} • {1}{2, 3, 4} {2}{1, 3, 4} {3}{1, 2, 4} {4}{1, 2, 3}

  22. 부분집합으로 분할하는 방법의 수 • 예제(계속) • S4,3? • 각 부분집합이 1 개, 1 개, 2개를 가짐 • 오름차순으로 나열하면, • {1}{2}{3, 4} • {1}{3}{2, 4} • {1}{4}{2, 3} • {2}{3}{1, 4} • {2}{4}{1, 3} • {3}{4}{1, 2}

  23. 부분집합으로 분할하는 방법의 수 • 예제(계속) • 위와 같은 방식으로 센다면, • Sn,r은 i) n개를 r개로 나누는 각각의 방법에 대해 ii) 원소를 배치하는 방법의 수를 세면 됨 • 물론 셀 수는 있겠지만 하나의 수식으로 도출되지 않는 문제를 지님

  24. 부분집합으로 분할하는 방법의 수 • 예제(계속) • 재귀식을 사용한 해법 • {n}을 포함하는 것과 {n}을 포함하지 않는 경우로 구분할 수 있음 • S4,3의 예에서 {4}를 포함하는 것 • {1}{4}{2, 3} {2}{4}{1, 3} {3}{4}{1, 2} • S3,2와 동일 • S4,3의 예에서 {4}를 포함하지 않는 것 • {1}{2}{3, 4} {1}{3}{2, 4} {2}{3}{1, 4} • 3S3,3과 동일 • 따라서, Sn,r Sn–1,r–1 + rSn–1,r

More Related