재귀 reccurssion.

Slides:



Advertisements
Similar presentations
Number Recognizer. Team 이성우 컴퓨터소프트웨어학과 조윤성 전자통신공학과
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
귀납과 재귀 (Induction and Recursion)
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
Recursion SANGJI University KO Kwangman
제14장 자기호출과 함수포인터 자기호출 함수 (Recursive Functions) 재귀적 함수 recursion
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Database Laboratory, Hong Ik University
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
자료구조 김현성.
English Grammar in Middle School
CHAP 2:순환 순천향대학교 컴퓨터공학과.
Chapter 02 순환 (Recursion).
Internet Computing KUT Youn-Hee Han
P150 문제를 프로그래밍 할 것 Source file (헤더파일포함), 실행화면 (학번_이름_1.txt)
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
C++ Programming: Sample Programs
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
6장. printf와 scanf 함수에 대한 고찰
2007 1학기 11 프로젝트 기초 실습.
602 LAB FDTD 를 이용한 Acoustic Simulation 지도: 이형원 교수님 차진형.
Tail-recursive Function, High-order Function
쉽게 풀어쓴 C언어 Express 제9장 함수와 변수 C Express.
어서와 C언어는 처음이지 제14장.
소마큐브로 3*3*3(정육면체)만드는 방법 탐구하기
당 자신의 고유한 메시지를 넣어 이 배너를 사용자 지정해 보세요. 글자를 선택하고 고유한 텍스트를 추가합니다. 슬라이드당 한 글자씩 입력하세요.
CHAP 2:순환.
Hello, Python! #2 <부제: 코딩은 혼자하는 것이다>
인터넷응용프로그래밍 JavaScript(Intro).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
CHAP 2:순환.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 Slide 1 (of 19).
제 1 강.
9. 디자인과 생활 세상에 알려요.
누가 내 머리에 똥 쌌어?.
CHAP 2:순환 순천향대학교 컴퓨터공학과.
Hanoi Tower.
6.1 점화 관계 (Recurrence Relations)
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
GM7 PLC 모니터링 프로그램 한국 폴리텍 항공대학 항공정보통신과 송 승 일.
Flick the eraser game/ Occupy the spaces game
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
CHAP 2:순환 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
Signature, Strong Typing
제 6 장 함수(functions).
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 텍스트 샘플 텍스트
Signature, Strong Typing
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
7주차: Functions and Arrays
CHAP 2:순환.
Homework #8 (실습 #7) [1/2] 다음을 수행하는 PHP 프로그램을 작성하여 프로그램과 결과물을 프린트하여 제출한다. sin(45º), cos(45º), tan(45º)를 출력하는 프로그램을 작성하시오. 피보나치 수를 구하는 함수 fib($n)을 작성하고,
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
Premium Design Sample 글자만 수정하면 바로 쓸 수 있는
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
Ruby 프로그래밍 2 loop, 수열 함수 정의 및 호출 반복과 재귀
자동 접이식 병원 침대 < 캡스톤 디자인 제안 > * 이 름 : 이헌준 ( )
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
정삼각형을 정사각형으로 바꾸는 원리 탐구 하귀초등학교 6학년 고지상.
이산수학(Discrete Mathematics)  술어와 한정기호 (Predicates and Quantifiers)
김선균 컴퓨터 프로그래밍 기초 - 12th : 문자열 - 김선균
꽃잎의 수로 피보나치 수열하기 장전초등학교 6학년 신찬유.
함수 정의, void 자료형 함수 원형선언 함수 호출 변수 영역 규칙 재귀 함수
피보나치수열에 대하여 한림초 5학년 신동오.
Presentation transcript:

재귀 reccurssion

마트료시카, 러시아 인형

재귀(再歸, Recursion) 자신을 정의할 때 자신을 재참조하는 방법 함수에 적용한 재귀 함수(Recursion Function) 사진이나 그림 등에서 재귀의 형태를 사용 A recursive process is one in which objects are defined in terms of other objects of the same type. Using some sort of recurrence relation, the entire class of objects can then be built up from a few initial values and a small number of rules. The Fibonacci numbers are most commonly defined recursively. Care, however, must be taken to avoid self-recursion, in which an object is defined in terms of itself, leading to an infinite nesting. 는 수학이나 컴퓨터 과학 등에서 자신을 정의할 때 자기 자신을 재참조하는 방법

재귀함수호출

어린왕자 그 다음 별에는 술꾼이 살고 있었다. 그 방문은 매우 짧았지만 어린 왕자를 깊은 우울에 빠뜨렸다. "뭘 하고 있어요?" 빈병 한 무더기와 술이 가득 차 있는 병 한 무더기를 앞에 놓고 말없이 앉아 있는 술꾼을 보고 그가 말했다. "술을 마시지.“ 침울한 표정으로 술꾼이 대꾸했다.... "왜 술을 마셔요?“ 어린 왕자가 그에게 물었다. "잊기 위해서지.“ 술꾼이 대답했다. "무엇을 잊기 위해서예요?“ 측은한 생각이 든 어린 왕자가 물었다. "부끄럽다는 걸 잊기 위해서지.“ 머리를 숙이며 술꾼이 대답했다. "뭐가 부끄럽다는 거지요?“ 그를 돕고 싶은 어린 왕자가 캐물었다. "술을 마시는 게 부끄러워!“ 이렇게 말하고 술꾼은 침묵을 지켰다. 그래서 난처해진 어린 왕자는 길을 떠나 버렸다. (어른들은 정말 참 이상하군)하고 어린 왕자는 여행을 하면서 혼자 속으로 중얼거렸다.

Factorial(팩토리알) 함수 (function) C 언어로 “factorial” 함수 정의하기 unsigned int factorial(unsigned int n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } 이 함수는 n을 입력으로 받을 때, 자기 보다 작은 n-1 을 함수 입력으로 받은 값에 n을 곱한다. 이 과정을 기본 과정 (n=1)에 도달할 때까지 계속함. n! = n x (n-1) x (n-2) x (n-3) x …x 3 x 2 x 1

컴퓨터 프로그래밍에서 재귀 재귀의 가장 큰 이 점 함수가 자신의 더 간단하거나 더 작은 버전으로 표현 되는 것 더 작은 그 간단 버전이나 작은 버전의 답을 사용해서 원 버전의 답을 구함. 재귀의 가장 큰 이 점 무한 집합의 문장이나 디자인이나 자료를 유한한 컴퓨터 프로그래밍으로 정의 할 수 있다는 것

피보나치 수열 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … a1 = 1 a2 = 1 an = an–1 + an–2   for n > 2

하노이의 탑 조건 문제 세개의 기둥, 서로 다른 크기의 N개의 원반 원반들은 세개의 기둥 중 하나에 꽃혀 있음 자신보다 작은 크기의 원반은 위에 올 수 없음 문제 기둥 1에 N개의 원반이 크기대로 꽃혀있음 이 원반을 기둥 3으로 모두 옮기기 옮기는 과정에서 기둥 2를 사용할 수 있음

하노이 타워 http://m.youtube.com/watch?v=9i51uoTF9qQ 재귀가 무엇인지? 동영상을 보고 "수학은 ( )을 찾는 것"의 괄호 속에 들어가는 2 글자를 찾아 보세요. 하노이 타원 6개 짜리 옮기기 시합한다면 1등할 수 있을까? 연습해 보시오. 1등하는 팀이나 개인은 상이 있습니다.

N개를 옮기는 것과 n-1개를 옮기는 것이 구조적으로 똑 같음. http://thrillfighter.tistory.com/138 // 하노이의 탑 // 1. 기둥 1에서 N-1개의 원반을 기둥 2로 옮긴다. // 2. 기둥 1에서 1개의 원반을 기둥 3으로 옮긴다. // 3. 기둥 2에서 N-1개의 원반을 기둥 3으로 옮긴다. // 원반을 from에서 to로 옮긴다. void move(int from, int to){     printf("\nMove from %d to %d", from, to); } // n개의 원반을 from 에서 by를 거쳐 to로 옮긴다. void hanoi(int n, int from, int by, int to){     if (n == 1)         move(from, to);     else{         hanoi(n - 1, from, to, by);    // 1번  N-1개의 원반을 기둥3을 거쳐 2로 옮긴다.         move(from, to);                // 2번 기둥 1에서 1개의 원반을 기둥 3으롱 롬긴다.         hanoi(n - 1, by, from, to);    // 3번 기둥 2에서 N-1개의 원반을 기둥 3으로 옮긴다.     } }

수학적 귀납법