CSE117 프로그래밍기초강의노트 1 7 재귀함수 Recursive Functions 한양대학교 ERICA캠퍼스컴퓨터공학과도경구 2013년 2학기 (version 0.6) 1 c 도경구 (2013). 본문서는한양대학교 ERICA 캠퍼스컴퓨터공학과프로그래밍기초강의용으로제

Size: px
Start display at page:

Download "CSE117 프로그래밍기초강의노트 1 7 재귀함수 Recursive Functions 한양대학교 ERICA캠퍼스컴퓨터공학과도경구 2013년 2학기 (version 0.6) 1 c 도경구 (2013). 본문서는한양대학교 ERICA 캠퍼스컴퓨터공학과프로그래밍기초강의용으로제"

Transcription

1 CSE117 프로그래밍기초강의노트 1 7 재귀함수 Recursive Functions 한양대학교 ERICA캠퍼스컴퓨터공학과도경구 2013년 2학기 (version 0.6) 1 c 도경구 (2013). 본문서는한양대학교 ERICA 캠퍼스컴퓨터공학과프로그래밍기초강의용으로제 작되었습니다. 강의이외의용도로저자의허락없이무단복제하여배포할수없습니다.

2 1. 귀납정의 Inductive Definition 수학에서는 1보다큰거나같은정수를자연수natural number라고하지만, 컴퓨터과학에서는일반적으로여기에 0을포함시킨다. 자연수는무한히많이있어서집합으로보면무한집합이다. N = {n n 0, n Integer} = {0, 1, 2,...} 이무한집합을유한하게표현하는방법이있을까? 자연수의귀납정의 1. ( 기초Basis) 0은자연수이다. 2. ( 귀납Induction) n이자연수이면, n + 1도자연수이다. 3. 그외에다른자연수는없다. 자연수의개수는무한하지만, 이귀납정의를이용하면아무리큰자연수라도유한한시간안에그수가자연수임을확인할수있다. 예를들어, 4가자연수인지확인하고싶다고하자. ( 귀납 ) 에의해서 3이자연수이면 4도자연수라고할수있다. 그러면 3이자연수인지만확인하면된다. 또다시 ( 귀납 ) 에의해서 2가자연수이면 3도자연수라고할수있다. 그러면 2가자연수인지만확인하면된다. 또다시 ( 귀납 ) 에의해서 1이자연수이면 2도자연수라고할수있다. 그러면이제 1이자연수인지만확인해보면된다. 또다시 ( 귀납 ) 에의해서 0이자연수이면 1도자연수라고할수있다. 그러면이제는 0이자연수인지만확인해보면된다. 그런데 ( 기초 ) 에의하면 0은자연수이다. 따라서 1이자연수이고, 따라서 2가자연수이고, 따라서 3이자연수이고, 따라서 4가자연수임을확인하였다. 이러한자연수의귀납구조를써서자연수계산을재귀함수recursive function로표현할수있다. 2. 선형재귀 Linear Recursion 2.1 계승구하기자연수 n의계승factorial n! 은 n (n 1) (n 2) 을계산한결과이다. 이를자연수의귀납정의구조를이용하여다음과같이재귀로정의할수있다. 0! = 1 n! = n (n 1)! (n > 0) 자연수 n의계승은자연수의귀납정의구조의틀에맞춰서그대로사용하여재귀recursive로정의하였다. 즉, 자연수귀납정의의기초basis인 0의계승은 1로정의한다. 그리고 1 이상의자연수 n의계승은 n 1의계승에 n을곱한값으로정의한다. 이렇게재귀로정의해놓으면, 자연수의개수는무한히많이있지만, 아무리큰자연수라도유한한시간내에계승값을구할수있다. 예를들어, 3의계승값은 2의계승값에다 3을곱하여 1

3 구하고, 2의계승값은 1의계승값에다 2를곱하여구하고, 1의계승값은 0의계승값에다 1을곱하여구하고, 0의계승값은재귀정의에따라 1이다. 이구조를그대로본따서 Python 재귀함수로다음과같이작성할수있다. def fac(n): if n == 0: return 1 return n * fac(n-1) 이프로그램을 Python 실행기로실행해보자. >>> fac(5) 120 이프로그램이어떻게작동하는지다음과같이계산추적해보면계산과정을이해할수있다. fac(5) 5 * fac(4) 5 * (4 * fac(3)) 5 * (4 * (3 * fac(2))) 5 * (4 * (3 * (2 * fac(1)))) 5 * (4 * (3 * (2 * (1 * fac(0))))) 5 * (4 * (3 * (2 * (1 * 1)))) 5 * (4 * (3 * (2 * 1))) 5 * (4 * (3 * 2)) 5 * (4 * 6) 5 * fac(5) 를호출하면바로이어서 fac(4) 를호출하고또바로이어서 fac(3) 을호출하고, 이와같은과정을 fac(0) 을호출할때까지계속반복한다. 즉, 곱셈을하기위해서양쪽인수가모두있어야하는데왼쪽인수만알고있으므로오른쪽인수를구하기위해서재귀호출을하는것이다. 마침내 fac(0) 의결과값인 1을알면바로 fac(1) 의값을계산할수있고, fac(1) 의결과값을알면바로 fac(2) 의값을계산할수있고, 이와같은과정을반복하여마침내 fac(5) 의결과값을얻는다. 음수입력처리 fac(-3) 을 Python 실행기로계산해보자. 어떻게될까? 다음과같은오류메시지를내주며비 정상적으로계산을멈춘다. 2

4 RuntimeError: maximum recursion depth exceeded in comparison 왜그럴까? if문의조건식이 True가되는상황이절대생기지않기때문에이론적으로는재귀호출을무한반복하여계산이끝나지않는다. 그런데 Python 실행기는이를방지하기위하여일정횟수이상연속적으로재귀호출을반복하면실행오류로취급하여오류를발생하며비정상적으로계산을끝낸다. 이런상황을방지하고항상정상적으로답을내주며계산이끝나게하기위해서는음수의입력에대한대비책이있어야한다. 일단다음과같이프로그램하면비정상적으로끝나는경우는없어지지만음수의계승은 1이아니므로좋은방법은아니다. def fac(n): if n <= 0: return 1 return n * fac(n-1) 이를완벽하게해결하는방법은 9장에서자세히배운다. 계산복잡도 계산시간 : n 의크기에비례 사용공간 : n 의크기에비례 꼬리재귀 Tail Recursion 앞에서공부한계승구하는함수는재귀호출하여계산한뒤곱할수를기억해두어야하므로재귀호출의횟수만큼추가공간이필요했었다. 만약재귀호출한다음계산이끝나고돌아와서더이상할계산이없으면이러한추가공간이필요없을것이다. 재귀호출이그함수의마지막계산이되는재귀함수를꼬리재귀함수라고한다. 위의계승구하는함수도꼬리재귀함수로만들수있다. 계산을남겨두지않기위해서미리곱해버리고그값만기억하고있으면된다. 즉, 곱할수가나오면바로곱해서결과를기억하게하면된다. 그러기위해서는중간계산결과를기억하는변수를하나만들고, 시작값은 1로한다. ( 어떤수에다 1을곱해도자신이되므로곱셈의기본값은 1이다.) 이중간계산결과는재귀함수에인수를하나추가하여전달한다. 다음프로그램은꼬리재귀형태로작성한계승구하는함수이다. def loop(n,ans): if n <= 0: return ans return loop(n-1,n*ans) def fact(n): 3

5 return loop(n,1) loop 함수의첫째파라미터는루프의종료를제어하기위한카운터counter 역할을하고둘째파라미터는계산결과를축적해나가는누산기accumulator 역할을한다. 이함수를계산추적해보면다음과같다. fact(5) loop(5,1) loop(5-1,5*1) loop(4,5) loop(4-1,4*5) loop(3,20) loop(3-1,3*20) loop(2,60) loop(2-1,2*60) loop(1,120) loop(1-1,1*120) loop(0,120) 120 재귀호출하기전에필요한곱셈을하며, 계산결과는인수로전달한다. 아렇게꼬리재귀형태로재귀호출을하면더이상곱할인수를저장해둘필요가없어서공간을절약할수있다. 계산복잡도 계산시간 : n 의크기에비례 사용공간 : 상수 함수의지역화위에서 loop 함수는 fact 만사용하는함수이므로사용자에게공개할필요가없으므로, 다음과같이 fact 함수안에넣어서외부로부터감출수있다. def fact(n): def loop(n,ans): if n <= 0: return ans return loop(n-1,n*ans) return loop(n,1) loop함수는이제 fact 함수내부용으로만사용하고, 밖에서는보이지않으므로사용할수없다. 이렇게함수내부용으로만정의된함수를지역함수local function라고한다. 즉, fact 함수는 loop 함수를지역함수로만들어외부에서보이지않도록감추었다. 이를캡슐화라고한다. 4

6 꼬리재귀와반복문 while문으로작성한다음함수와위의꼬리재귀함수를비교해보자. def facw(n) : ans = 1 while n > 0 : ans = n * ans n = n - 1 return ans 꼬리재귀는반복문과사실상똑같다. 일단꼬리재귀함수를만들고난후, 거의기계적으로반복문을유도해낼수있다. 2.2 b n 계산하기 b는유리수이고 n은자연수일때, b n 은 b를 n번곱한것과같다. b n 을 n의귀납정의구조를이용하여다음과같이재귀로정의할수있다. b 0 = 1 b n = b b n 1 (n > 0) 이를 Python 함수로바꾸면, def exp(b,n): if n == 0: return 1 return b * exp(b,n-1) 계산추적 exp(2,7) 2 * exp(2,6) 2 * (2 * exp(2,5)) 2 * (2 * (2 * exp(2,4))) 2 * (2 * (2 * (2 * exp(2,3)))) 2 * (2 * (2 * (2 * (2 * exp(2,2))))) 2 * (2 * (2 * (2 * (2 * (2 * exp(2,1)))))) 2 * (2 * (2 * (2 * (2 * (2 * (2 * exp(2,0))))))) 2 * (2 * (2 * (2 * (2 * (2 * (2 * 1)))))) 2 * (2 * (2 * (2 * (2 * (2 * 2))))) 5

7 2 * (2 * (2 * (2 * (2 * 4)))) 2 * (2 * (2 * (2 * 8))) 2 * (2 * (2 * 16)) 2 * (2 * 32) 2 * 계산복잡도 계산시간 : n 의크기에비례 사용공간 : n 의크기에비례 꼬리재귀함수 def expt(b,n): def loop(b,n,r): if n == 0: return r return loop(b,n-1,b*r) return loop(b,n,1) 여기서 loop 함수의둘째파라미터는루프의종료를제어하기위한카운터역할을하고셋째파라미터는계산결과를축적해나가는누산기역할을한다. 그런데첫째파라미터는변하지않고항상참조가가능하므로파라미터로들고다닐필요가없다. 첫째파라미터를제거한프로그램은다음과같다. def expt(b,n): def loop(n,r): if n == 0: return r return loop(n-1,b*r) return loop(n,1) 계산추적 expt(2,7) loop(7,1) loop(7-1,2*1) loop(6,2) 6

8 loop(6-1,2*2) loop(5,4) loop(5-1,2*4) loop(4,8) loop(4-1,2*8) loop(3,16) loop(3-1,2*16) loop(2,32) loop(2-1,2*32) loop(1,64) loop(1-1,2*64) loop(0,128) 128 계산복잡도 계산시간 : n 의크기에비례 사용공간 : 상수 연습문제 : 반복문버전 위의꼬리재귀함수를 while 문을이용한함수로변환해보자. 2.3 b n 더빨리계산하기 n이짝수이면 b n = (b n/2 ) 2 과같은등식이성립한다는수학적성질을이용하면 b n 을다음과같이재귀로정의할수있다. b 0 = 1 b n = (b n/2 ) 2 b n = b b n 1 (n > 0, n is even) (n > 0, n is odd) 이를 Python 함수로바꾸면, def fastexp(b,n): if n == 0: return 1 elif n % 2 == 0: return fastexp(b,n/2)**2 return b * fastexp(b,n-1) 계산추적 fastexp(2,7) 2 * fastexp(2,6) 2 * fastexp(2,3)**2 7

9 2 * (2 * fastexp(2,2))**2 2 * (2 * fastexp(2,1)**2)**2 2 * (2 * (2 * fastexp(2,0))**2)**2 2 * (2 * (2 * 1)**2)**2 2 * (2 * 2**2)**2 2 * (2 * 4)**2 2 * 8**2 2 * 계산복잡도 계산시간 : log n 의크기에비례 사용공간 : log n 의크기에비례 꼬리재귀함수 def fastexpt(b,n): def loop(b,n,r): if n == 0: return r elif n % 2 == 0: return loop(b**2,n/2,r) return loop(b,n-1,b*r) return loop(b,n,1) 계산추적 fastexpt(2,7) loop(2,7,1) loop(2,7-1,2*1) loop(2,6,2) loop(2**2,6/2,2) loop(4,3,2) loop(4,3-1,4*2) loop(4,2,8) loop(4**2,2/2,8) loop(16,1,8) loop(16,1-1,16*8) loop(16,0,128) 128 8

10 계산복잡도 계산시간 : log n 의크기에비례 사용공간 : 상수 연습문제 : 반복문버전 위의꼬리재귀함수를 while 문을이용한함수로변환해보자. 9

11 3. 나무가지형재귀 Tree Recursion 3.1 피보나찌수열 피보나찌수열Fibonacci sequence은이전두개의수를더하여다음수를정하는수열로서다음과 같이무한히나열할수있다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610,... n번째피보나찌수는자연수의귀납구조를이용하여다음과같이재귀로정의할수있다. F ib(0) = 0 F ib(1) = 1 F ib(n) = F ib(n 1) + F ib(n 2) (n > 1) 즉, 각정수 n에대한피보나찌수 F ib(n) 값을표로그려보면다음과같다. n F ib(n) 피보나찌재귀프로그램위의재귀정의는다음과같이 Python 함수로만들어바로실행해볼수있다. def fib(n): if n == 0: return 0 elif n == 1: return 1 return fib(n-1) + fib(n-2) 이프로그램을실행추적해보면다음과같이된다. fib(5) fib(4) + fib(3) (fib(3) + fib(2)) + fib(3) ((fib(2) + fib(1)) + fib(2)) + fib(3) (((fib(1) + fib(0)) + fib(1)) + fib(2)) + fib(3) (((1 + fib(0)) + fib(1)) + fib(2)) + fib(3) (((1 + 0) + fib(1)) + fib(2)) + fib(3) ((1 + fib(1)) + fib(2)) + fib(3) ((1 + 1) + fib(2)) + fib(3) 10

12 (2 + fib(2)) + fib(3) (2 + (fib(1) + fib(0))) + fib(3) (2 + (1 + fib(0))) + fib(3) (2 + (1 + 0)) + fib(3) (2 + 1) + fib(3) 3 + fib(3) 3 + (fib(2) + fib(1)) 3 + ((fib(1) + fib(0)) + fib(1)) 3 + ((1 + fib(0)) + fib(1)) 3 + ((1 + 0) + fib(1)) 3 + (1 + fib(1)) 3 + (1 + 1) 이프로그램의실행추적을통해서실행순서를관찰해보면다음그림의화살표와같은순서로재귀호출이진행되었음을알수있다. ( 이를깊이우선나무가지훑기라고하는데언젠가는자세히배울날이오리라.) 이프로그램을 fib.py라는이름의파일에저장하고내 imac에서실행기에올려서 fib(10), fib(20), fib(30), fib(40) 을차례로실행해보았다. 다음과같이결과가나왔다. >>> fib(10) 55 >>> fib(20) 6765 >>> fib(30) 11

13 >>> fib(40) 여기서각호출의결과를얻는데걸린시간이판이하게다르다는점을주목해야한다. 첫두결과는눈깜빡할사이에얻었다. fib(30) 는커서가세번깜빡인후에결과가나왔다. 그런대로참을만하다. 그런데 fib(40) 은커서가계속깜빡이는데결과가나오지않는다. 커서깜빡이는횟수를세기시작했는데 30번이넘은후에후회를하기시작했다. 타이머를심어놓을것을... 그런데이왕시작했으니참고계속세었다. 막포기하려는데결과가나왔다. 198번깜빡인후였다. 왜이런현상이발생할까? 40번째피보나찌수를구하는데나의고성능 imac이왜이렇게밖에하지못할까? 손으로탁상용계산기를두드렸어도 3분안에답을구했을텐데... 계산복잡도문제는위프로그램이계산을수행하면서동일한재귀호출를엄청나게많이중복호출하여시간과공간을잡아먹는다는사실이다. 호출횟수를따져보자. fib(n) 을호출하면, 재귀호출을 2번하고, 이는각각재귀호출을 2번씩하여총 4번재귀호출을하고, 또이는각각재귀호출을 2번씩하여총 8번재귀호출을하고, 또이는각각재귀호출을 2번씩하여총 16번재귀호출을하고, 또이는각각재귀호출을 2번씩하여총 32번재귀호출을하고, 어렇게계속하면 40번째에총재귀호출횟수는 2 40 번이되어 1조번이넘게재귀호출을한다. 똑같은호출을얼마나많이중복시도하는지상상해보면끔직하다. 이러니내최신 imac도답을구하는데시간이걸릴수밖에없지. 사용하는공간도따져보면한번재귀호출할때마다결과를얻은후돌아와서해야할남은계산을기억해두어야하는데, 이도 n을기준으로지수적으로비례한만큼많이필요하다. n이조금만커도아마내메모리를다잡아먹고모자라서빠알간피를토하며 (!) 죽어버릴것이다. 결과적으로 fib(n) 을계산하는데필요한시간과공간은다음과같이요약할수있다. 계산시간 : 2 n 에비례한만큼걸리고 사용공간 : 2 n 에비례한만큼필요하다. 결과적으로위에서만든피보나찌재귀함수는실용적으로사용할수없다. 그러나다행히이재귀함수는꼬리재귀함수형태로변형할수있다. 꼬리재귀함수 중복계산을피하기위해서는작은피보나찌수부터계산한후에기억해두었다가큰피보나찌 수를구할때사용하면중복계산을피할수있다. 그런데피보나찌수는정수시퀀스에서바로 앞의두수만가지고가지고계산이가능하다. 즉, 다음과같이테이블을만들어보자. n F ib(n) F ib(n 1)

14 그러면 n = k인열에서 F ib(n) 값을구하려면 n = k 1 열의 F ib(n 1) 값과 F ib(n) 값을더하면된다. 그리고 n = k인열에서 F ib(n 1) 값은 n = k 1 열의 F ib(n) 이된다. 이런식으로왼쪽에서오른쪽으로테이블을구축해나갈수있다. 이렇게테이블을구축하면 n = k 열의 F ib(n 1) 값과 F ib(n) 값을구할때필요한열은 n = k 1 열뿐이다. 즉, n = k 2 이하의열의값은알필요가없다. 결국, 각 n과같은열에있는 F ib(n 1) 와 F ib(n) 값은 n + 1 열의 F ib(n 1) 와 F ib(n) 값을구하는데사용된다. 이점에착안하여위의재귀함수를꼬리재귀함수형태로변형해보자. 최근에계산한피보나찌수를두개기억해두고다음피보나찌수를계산해야하므로, 재귀호출의인수 a와 b를 2개추가하여이를전달한다. a에는가장최근에계산한피보나찌수를 b에는바로그전에계산한피보나찌수를담는다. 그러면 9번째피보나찌수를구하기위해서다음과같이테이블을왼쪾에서오른쪽으로구축해나간다. a의초기값을 1로, b의초기값을 0으로두고, n을 9로두고시작하여다음과같이각열을계산해나가면 n이 0이되는순간 b의값이 9번째피보나찌수가된다. n a b 그렇게작성한꼬리재귀함수로작성한피보나찌함수는다음과같다. def fibt(n): def loop(a,b,n): if n == 0: return b return loop(a+b,a,n-1) return loop(1,0,n) 이프로그램을계산추적해보자. fibt(9) loop(1,0,9) loop(1,1,8) loop(2,1,7) loop(3,2,6) loop(5,3,5) loop(8,5,4) loop(13,8,3) loop(21,13,2) loop(34,21,1) loop(55,34,0) 34 13

15 각재귀호출의인수값이위테이블의각열과일치함을볼수있다. 계산복잡도이프로그램은 loop을정확하게 n + 1번호출하고추가공간을사용하지않으므로매우호율적이다. 계산시간 : n의크기에비례 사용공간 : 상수이프로그램을실행기에올려서 fibt(10), fibt(20), fibt(30), fibt(40) 을차례로실행시켜보자. 앞에서와는다르게결과가모두눈깜빡할사이에나온다. 반복문버전 이꼬리재귀함수는 while 문으로다음과같이기계적으로변환할수있다. def fibw(n): a, b = 1, 0 while n > 1: a, b, n = a+b, a, n-1 return b 3.2 하노이탑 Tower of Hanoi 재귀로문제풀기 원반이 n 개쌓여있고, 1 번말뚝에서 3 번말뚝으로어떻게옮길지재귀로생각해보자. n 1 개의원반을옮기는방법은안다고가정하면, n 번째원반은다음과같이옮기면된다. 14

16 1. 1번말뚝에서 n 1개의원반을 2번말뚝으로옮긴다. 2. 1번말뚝의맨아래에있었던가장큰원반을 3번말뚝으로옮긴다. 3. 2번말뚝에있는 n 1개의원반을 3번말뚝으로옮긴다. 아하! 이제 n 1개원반을옮기는방법만알아내면되니문제가조금간단해졌네! 이렇게조금씩문제를줄여나가면결국가장쉬운문제에도달하겠지? 원반을옮기는순서를프린트하는재귀함수는다음과같다. def towerofhanoi(n): def loop(n,src,dst,tmp): if n == 0: pass loop(n-1,src,tmp,dst) print("move from", src,"to",dst) loop(n-1,tmp,dst,src) loop(n,"r1","r3","r2") 이프로그램을실제로돌려보자. towerofhanoi(3) towerofhanoi(5) towerofhanoi(8) towerofhanoi(16) 실행결과가어떻게나타나는가? 계산시간이얼마나걸리는지생각해보자. 이재귀함수를꼬리재귀형태로바꿀수있을까? 15

17 프로그래밍연습문제 곱셈함수만들기단순무식한곱셈함수만들기곱셈연산자가없다면덧셈과뺄셈연산자만가지고다음과같이곱셈함수를구현할수있다. 여기서 m과 n 값은항상 0보다크거나같다고가정한다. 즉, 음수의곱셈은고려하지않는다. def mult(m,n): if n == 0: return 0 return m + mult(m,n-1) 이재귀함수는덧셈을하는횟수가 n에비례하고, 공간사용량도 n에비례한다. 1. 위프로그램을공간사용량이상수에비례하는꼬리재귀형태로함수를재작성하시오. 2. 위에서작성한꼬리재귀함수를참조하여재귀함수의호출없이 while 문을사용하여곱셈 함수를재작성하시오. 빠른곱셈함수만들기다음두함수 double과 halve를이용하여곱셈함수의덧셈을하는회수가 log n에비례하는곱셈함수 multfast를재귀함수로작성하시오. def double(n): return n * 2 def halve(n): return n // 2 즉, 두번째인수 n이짝수인경우 multfast(double(m),halve(n)) 을재귀호출하고, 홀수인경우 m + multfast(m,n-1) 을재귀호출하도록작성하면된다. 1. 작성한 multfast 함수를공간사용량이상수에비례하는꼬리재귀형태로함수를재작성하시오. 2. 위에서작성한꼬리재귀함수를참조하여재귀함수의호출없이 while문을사용하여곱셈함수를재작성하시오. 16

18 러시아농부의곱셈함수만들기러시아농부들은두수를곱할때구구단없이덧셈, 두배하기 (double함수), 반나누기 (halve 함수 ) 만가지고곱셈을계산하는영특한방법을사용했다. 곱셈방법은다음과같다. 곱할두수를나란히적는다. 첫째수는두배를하고, 둘째수는반으로나누되나머지는버린다. 이과정을둘째수가 1이될때까지계속한다. 둘째수가짝수인줄은모두지운다. 남은줄의첫째수를모두더한값이답이다. 예를들어, 57 86은다음과같이계산한다. 1. 이를구현하는 multrp 함수를재귀함수로작성하시오. 2. 작성한 multrp 함수를꼬리재귀함수로재작성하시오. 3. multrp 함수와 multfast 함수를덧셈의횟수와사용공간을기준으로성능을비교분석해보시오. 17

19 조합계산하기 수학에서조합 combination 은 n 개에서순서에상관없이 r 개를뽑는가지수이다. 이를구하는공 식은다음과같이재귀로정의한다. nc 0 = 1 nc n = 1 nc r = n 1 C r 1 + n 1 C r if r 0 and n r 이공식은다음과같이간단하게 Python 함수로작성할수있다. def comb(n,r): if r == 0: return 1 elif r == n: return 1 return comb(n-1,r-1) + comb(n-1,r) 그런데이함수를돌려보자. 일단 comb(30,3) 과 comb(30,27) 을실행해보자. 바로답을내준다. 그런데 comb(30,7) 과 comb(30,23) 을실행해보면, 시간이조금더걸린다. 참을만하다. 그런데 comb(30,10) 과 comb(30,20) 을실행해보면, 시간이훨씬더많이걸린다. 언제답이나오나궁금해하면서잠시기다렸더니결국나타난다. comb(30,15) 를시도해보자. 인내심을요구한다. 언젠가는답을내주긴하지만말이다. 왜인수에따라서계산시간이천차만별일까? comb(100,50) 을실행해보자. 어떤결과가나오나?... 결국이함수는현실적으로사용할수없다. 다행히도이함수도꼬리재귀형으로바꾸어현실적으로사용가능한함수로만들수있다. 프랑스수학자였던빠스깔Pascal이고안해낸삼각형을이용하면된다. 빠스깔의삼각형은다음과같은모양을지닌다. 이삼각형을잘살펴보면결국조합의계산결과를나열해놓은삼각형테이블임을알수있다. 18

20 0C 0 1C 0 1 C 0 2C 0 2 C 1 2 C 2 3C 0 3 C 1 3 C 2 3 C 3 4C 0 4 C 1 4 C 2 4 C 3 4 C 4 5C 0 5 C 1 5 C 2 5 C 3 5 C 4 5 C 5 결국하향식재귀로조합을계산하는대신, 빠스깔삼각형을꼭지점부터채워나가며만들어서원하는조합에해당하는값을삼각테이블을얻으면훨씬빨리계산할수있다. 이점에착안하여인수의크기에상관없이빨리답을내주는 comb 함수를작성하시오. 꼬리재귀버전을먼저작성하고, 이를토대로 while루프버전을작성하시오. 19

슬라이드 1

슬라이드 1 CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if

More information

슬라이드 1

슬라이드 1 Recursion SANGJI University KO Kwangman () 1. 개요 재귀 (recursion) 의정의, 순환 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로되어있는경우에적합한방법 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 순환알고리즘 C 로쉽게풀어쓴자료구조 순환 (recursion) 수행이끝나기전에자기자신을다시호출하여문제해결 - 직접순환, 간접순환 문제정의가순환적으로되어있는경우에적합한방법 ( 예제 ) 팩토리얼 피보나치수열 n! 1 n * ( n 1)! n n 0 fib( n) 1 fib ( n 2) fib( n 1) 1 ` 2 if if n 0 n 1 otherwise 이항계수

More information

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770> 25 강. 수열의극한참거짓 2 두수열 { }, {b n } 의극한에대한 < 보기 > 의설명중옳은것을모두고르면? Ⅰ. < b n 이고 lim = 이면 lim b n =이다. Ⅱ. 두수열 { }, {b n } 이수렴할때 < b n 이면 lim < lim b n 이다. Ⅲ. lim b n =0이면 lim =0또는 lim b n =0이다. Ⅰ 2Ⅱ 3Ⅲ 4Ⅰ,Ⅱ 5Ⅰ,Ⅲ

More information

제 3강 역함수의 미분과 로피탈의 정리

제 3강 역함수의 미분과 로피탈의 정리 제 3 강역함수의미분과로피탈의정리 역함수의미분 : 두실수 a b 와폐구갂 [ ab, ] 에서 -이고연속인함수 f 가 ( a, b) 미분가능하다고가정하자. 만일 f '( ) 0 이면역함수 f 은실수 f( ) 에서미분가능하고 ( f )'( f ( )) 이다. f '( ) 에서 증명 : 폐구갂 [ ab, ] 에서 -이고연속인함수 f 는증가함수이거나감소함수이다 (

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로 3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로성립한다. Theorem 7 두함수 f : X Y 와 g : X Y 에대하여, f = g f(x)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2

More information

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770> 삼각함수. 삼각함수의덧셈정리 삼각함수의덧셈정리 삼각함수 sin (α + β ), cos (α + β ), tan (α + β ) 등을 α 또는 β 의삼각함수로나 타낼수있다. 각 α 와각 β 에대하여 α >0, β >0이고 0 α - β < β 를만족한다고가정하 자. 다른경우에도같은방법으로증명할수있다. 각 α 와각 β 에대하여 θ = α - β 라고놓자. 위의그림에서원점에서거리가

More information

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산      (제 2 장. 복소수 기초) 제 5 강. 복소수연산및 을이용한복소수연산 ( 제 2 장. 복소수기초 ) 한림대학교전자공학과 한림대학교 제 5 강. 복소수연산및 을이용한복소수연산 1 배울내용 복소수의기본개념복소수의표현오일러 (Euler) 공식복소수의대수연산 1의 N 승근 한림대학교 제 5 강. 복소수연산및 을이용한복소수연산 2 복소수의 4 칙연산 복소수의덧셈과뺄셈에는직각좌표계표현을사용하고,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 대표적인분할정복알고리즘 4 장. 재귀호출 학습목표 재귀호출이라는개념자체를명확히이해한다. 재귀호출함수의내부구조를이해한다. 재귀호출에내재하는효율성에대해이해한다. 1 Section 01 상징적의미 - 도미노 도미노 2 도미노 100 번째것이반드시쓰러진다는사실을증명하라. 수학적귀납법 (Mathematical Induction) 처음것 (K=1) 은반드시쓰러진다. K

More information

3 권 정답

3 권 정답 3 권 정답 엄마표학습생활기록부 엄마가선생님이되어아이의학업성취도를평가해주세요. 021 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 022 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 023 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 024 계획준수 학습기간 월일 ~ 월일 원리이해 시간단속 정확성

More information

Microsoft PowerPoint - chap-05.pptx

Microsoft PowerPoint - chap-05.pptx 쉽게풀어쓴 C 언어 Express 제 5 장수식과연산자 컴퓨터프로그래밍기초 이번장에서학습할내용 * 수식과연산자란? * 대입연산 * 산술연산 * 논리연산 * 관계연산 * 우선순위와결합법칙 이번장에서는수식과연산자를살벼봅니다. 컴퓨터프로그래밍기초 2 수식 수식 (expression) x + y x*x + 5*x + 6 (principal * interest_rate

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

제 12강 함수수열의 평등수렴

제 12강 함수수열의 평등수렴 제 강함수수열의평등수렴 함수의수열과극한 정의 ( 점별수렴 ): 주어진집합 과각각의자연수 에대하여함수 f : 이있다고가정하자. 이때 을집합 에서로가는함수의수열이라고한다. 모든 x 에대하여 f 수열 f ( x) lim f ( x) 가성립할때함수수열 { f } 이집합 에서함수 f 로수렴한다고한다. 또 함수 f 을집합 에서의함수수열 { f } 의극한 ( 함수 ) 이라고한다.

More information

정렬문제란크기비교가가능한데이터의시퀀스를오름또는내림차순으로재배치하는문제를말한다. 즉, 다음의정수리스트를오름차순으로정렬하면, [4,2,3,1,6,8,3,2,6,7] 다음과같이된다. [1,2,2,3,3,4,6,6,7,8] 이장에서는정수리스트를오름차순으로정렬하는함수를다양한알고

정렬문제란크기비교가가능한데이터의시퀀스를오름또는내림차순으로재배치하는문제를말한다. 즉, 다음의정수리스트를오름차순으로정렬하면, [4,2,3,1,6,8,3,2,6,7] 다음과같이된다. [1,2,2,3,3,4,6,6,7,8] 이장에서는정수리스트를오름차순으로정렬하는함수를다양한알고 CSE117 프로그래밍기초강의노트 1 10 프로그램디자인사례 : 정렬 Program Design Case Study: Sorting 한양대학교 ERICA캠퍼스컴퓨터공학과도경구 2013년 2학기 (version 0.8) 1 c 도경구 (2013). 본문서는한양대학교 ERICA 캠퍼스컴퓨터공학과프로그래밍기초강의용으로제 작되었습니다. 강의이외의용도로저자의허락없이무단복제하여배포할수없습니다.

More information

슬라이드 1

슬라이드 1 9. 소규모의방정식을풀기 9. 순수 Guss 소거법 9. 피봇팅 9.4 삼중대각시스템 어떤원리에의해다음과같은 MATLAB 명령어가수행되는가? >> =A\ >> =iva)* 9. 소규모의방정식을풀기 /6) 컴퓨터를필요로하지않고소규모연립방정식 ) 에적합한방법 - 도식적방법, Crmer 공식, 미지수소거법 도식적인방법 8 9 두연립선형대수방정식의도식적인해 교점이해를나타냄

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

창의사고력 S01호 매뉴얼.hwp

창의사고력 S01호 매뉴얼.hwp 1 - 초등수학 / 과학통합영재프로그램 창의사고력 S-01 < 교사용매뉴얼 > Unit 1. 교묘한계산 8( 지도안 p2) Mission 1. 신기한곱셈 / Explore 1. 수피라미드 / Explore 2. 기발한 9 의계산 / Explore 3. 같은자리숫자의합이 10 인곱셈 / Explore 4. 이집트나눗셈 / Exercise Unit 2. 도형이나타내는수

More information

제 5강 리만적분

제 5강 리만적분 제 5 강리만적분 리만적분 정의 : 두실수, 가 을만족핚다고가정하자.. 만일 P [, ] 이고 P 가두끝점, 을모두포함하는유핚집합일때, P 을 [, ] 의분핛 (prtitio) 이라고핚다. 주로 P { x x x } 로나타낸다.. 분핛 P { x x x } 의노름을다음과같이정의핚다. P x x x. 3. [, ] 의두분핛 P 와 Q 에대하여만일 P Q이면 Q

More information

Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드]

Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드] 컴퓨터구조 강의노트 #8: Chapter 9: 컴퓨터산술 2008. 5. 8. 담당교수 : 조재수 E-mail: jaesoo27@kut.ac.kr 1 컴퓨터시스템구조론 제9장컴퓨터산술 (Computer Arithmetic) 2 1 핵심요점들 컴퓨터산술에있어서두가지주요관심사는수가표현되는방법 (2진수형식 ) 과기본적인산술연산들 ( 더하기, 빼기, 곱하기, 나누기

More information

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770> IT OOKOOK 87 이론, 실습, 시뮬레이션 디지털논리회로 ( 개정 3 판 ) (Problem Solutions of hapter 7) . 반감산기와전감산기를설계 반감산기반감산기는한비트의 2진수 에서 를빼는회로이며, 두수의차 (difference, ) 와빌림수 (barrow, ) 를계산하는뺄셈회로이다. 에서 를뺄수없으면윗자리에서빌려와빼야하며, 이때빌려오는수는윗자리에서가져오므로

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

프랙탈은수학적도형으로도연구되고있다. 프랙탈기하학은프랙탈도형의성질을연구하는수학분야의하나이며, 과학, 공학, 컴퓨터, 예술에적용되기도한다. 또한프랙탈기하학은실용적인목적으로많이이용되며, 현실세계의매우불규칙한물체들을표현하기위한수단이되기도한다. 즉, 프랙탈기법은과학의여러분야에서

프랙탈은수학적도형으로도연구되고있다. 프랙탈기하학은프랙탈도형의성질을연구하는수학분야의하나이며, 과학, 공학, 컴퓨터, 예술에적용되기도한다. 또한프랙탈기하학은실용적인목적으로많이이용되며, 현실세계의매우불규칙한물체들을표현하기위한수단이되기도한다. 즉, 프랙탈기법은과학의여러분야에서 프랙탈도형그리기 I. 학습개요 자연계의여러현상중에는혼란스럽고매우불규칙적으로보이는것이많은데, 사실은이러한현상을지배하는규칙이숨어있다. 불규칙적인현상에서규칙을찾아내는복잡성의과학은이제까지이해하기어려웠던자연의복잡성을연구하여그안에숨은질서를찾아내는학문으로, 복잡성의과학을대표하는카오스에는프랙탈구조로표현될수있는질서가나타난다. 프랙탈 (fractal) 의사전적정의는일부가전체와닮은기하학적형태를말한다.

More information

Computer Architecture

Computer Architecture 정수의산술연산과부동소수점연산 정수의산술연산부동소수점수의표현부동소수점산술연산 이자료는김종현저 - 컴퓨터구조론 ( 생능출판사 ) 의내용을편집한것입니다. 3.5 정수의산술연산 기본적인산술연산들 2 2 3.5.1 덧셈 2 의보수로표현된수들의덧셈방법 두수를더하고, 만약올림수가발생하면버림 3 3 병렬가산기 (parallel adder) 덧셈을수행하는하드웨어모듈 4- 비트병렬가산기와상태비트제어회로

More information

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - chap-03.pptx 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에

More information

Introduction to Computer Science

Introduction to Computer Science 컴퓨터공학개론 4 장수체계와데이터표현 학습목표 수체계를이해하는것이왜중요한지배운다. 수의거듭제곱에대해복습한다. 사물을세는데수체계가어떻게사용되는지배운다. 수체계에서자리값의중요성에대해배운다. 수체계에서사용되는여러진수사이의차이점과유사점에대해배운다. 2 학습목표 ( 계속 ) 진수사이에수를변환하는방법에대해배운다. 이진법및십육진법을사용하는수학의계산법을배운다. 컴퓨터에서이진수를사용하여데이터를표현하는방법에대해배운다.

More information

C 프로그래밊 개요

C 프로그래밊 개요 구조체 2009 년 5 월 19 일 김경중 강의계획수정 일자계획 Quiz 실습보강 5 월 19 일 ( 화 ) 구조체 Quiz ( 함수 ) 5 월 21 일 ( 목 ) 구조체저녁 6 시 5 월 26 일 ( 화 ) 포인터 5 월 28 일 ( 목 ) 특강 (12:00-1:30) 6 월 2 일 ( 화 ) 포인터 Quiz ( 구조체 ) 저녁 6 시 6 월 4 일 ( 목

More information

실험 5

실험 5 실험. OP Amp 의기초회로 Inverting Amplifier OP amp 를이용한아래와같은 inverting amplifier 회로를고려해본다. ( 그림 ) Inverting amplifier 위의회로에서 OP amp의 입력단자는 + 입력단자와동일한그라운드전압, 즉 0V를유지한다. 또한 OP amp 입력단자로흘러들어가는전류는 0 이므로, 저항에흐르는전류는다음과같다.

More information

쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP)

쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP) 쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP) http://academy.hanb.co.kr IT COOKBOOK 8장. 동적프로그래밍 Dynamic Programming (DP) 계시란바깥어딘가에서우리한테갑자기주어지는객관적지식이아니다. 만물의근원에대한본질적인귀속감, 우리가거기에아주밀접하게닿아있다는관계성을스스로가발견해내는것이계시다.

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 9 장함수와변수 이번장에서학습할내용 변수의속성 전역, 지역변수 자동변수와정적변수 재귀호출 이번장에서는함수와변수와의관계를집중적으로살펴볼것이다. 또한함수가자기자신을호출하는재귀호출에대하여살펴본다. 변수의속성 변수의속성 : 이름, 타입, 크기, 값 + 범위, 생존시간, 연결 범위 (scope) : 변수가사용가능한범위, 가시성생존시간

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0)

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0) FGB-P8-3 8 학번수학과권혁준 8 년 5 월 9 일 Lemma p 를 C[, ] 에속하는음수가되지않는함수라하자. 이때 y C, C[, ] 가미분방정식 y t + ptyt, t,, y y 을만족하는해라고하면, y 는, 에서연속적인이계도함수를가지게확 장될수있다. Proof y 은 y 의도함수이므로미적분학의기본정리에의하여, y 은 y 의어떤원시 함수와적분상수의합으로표시될수있다.

More information

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut 경영학을 위한 수학 Fial Eam 5//(토) :-5: 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오.. (각 6점) 다음 적분을 구하시오 4 ( ) (a) ( )4 8 8 (b) d이 성립한다. d C C log log (c) 이다. 양변에 적분을 취하면 log C (d) 라 하자. 그러면 d 4이다. 9 9 4 / si (e) cos si

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

장연립방정식을풀기위한반복법 12.1 선형시스템 : Gauss-Seidel 12.2 비선형시스템 12.1 선형시스템 : Gauss-Seidel (1/10) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. G-S 방법은선형대수방정

장연립방정식을풀기위한반복법 12.1 선형시스템 : Gauss-Seidel 12.2 비선형시스템 12.1 선형시스템 : Gauss-Seidel (1/10) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. G-S 방법은선형대수방정 . 선형시스템 : GussSedel. 비선형시스템. 선형시스템 : GussSedel (/0) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. GS 방법은선형대수방정식을푸는반복법중에서 가장보편적으로사용되는방법이다. 개의방정식에서 인 ( 대각원소들이모두 0 이아닌 ) 경우를다루자. j j b j j b j j 여기서 j b j j j 현재반복단계

More information

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013. 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 덧셈프로그램 #1 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계

More information

Microsoft PowerPoint Python-Function.pptx

Microsoft PowerPoint Python-Function.pptx : 같은코딩을두번하지맙시다. 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 프로그램이커질수록코드는복잡 복잡한코드는읽기도어렵고유지보수도어려움 함수 (function) 를사용하여복잡함을관리 함수는코드덩어리로프로그램안에서필요할때사용 코드의재사용이편리 함수는공통된행위를따로분리 코드를더읽기쉽고관리하기좋게만듦 유지보수 (maintenance) 가편리

More information

슬라이드 1

슬라이드 1 장연립방정식을 풀기위한반복법. 선형시스템 : Guss-Sedel. 비선형시스템 . 선형시스템 : Guss-Sedel (/0) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. G-S 방법은선형대수방정식을푸는반복법중에서 가장보편적으로사용되는방법이다. 개의방정식에서 인 ( 대각원소들이모두 0 이아닌 ) 경우를다루자. j j b j b j j j

More information

Microsoft PowerPoint - hw8.ppt [호환 모드]

Microsoft PowerPoint - hw8.ppt [호환 모드] 8.1 데이터경로와제어장치 Chapter 8 데이터경로와제어장치 많은순차회로의설계는다음의두부분으로구성 datapath: data의이동및연산을위한장치 control unit에상태신호제공 control ol unit: datapath th 에서적절한순서로 data 이동및연산을수행할수있도록제어신호제공. 먼저, datapath를설계 다음에, control unit

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 함수 (function) 는특정작업을수행하는명령어들의모음에이름을붙인것 함수는작업에필요한데이터를전달받을수있으며, 작업이완료된후에는작업의결과를호출자에게반환할수있다. print() input() abs(), 함수안의명령어들을실행하려면함수를호출 (call) 하면된다. >>> value = abs(-100) >>> value 100 >>>def say_hello(name):

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 9 장함수와변수 이번장에서학습할내용 반복의개념이해 변수의속성 전역, 지역변수 자동변수와정적변수 재귀호출 이번장에서는함수와변수와의관계를집중적으로살펴볼것이다. 또한함수가자기자신을호출하는재귀호출에대하여살펴본다. 변수의속성 변수의속성 : 이름, 타입, 크기, 값 + 범위, 생존시간, 연결 범위 (scope) : 변수가사용가능한범위,

More information

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx CrackMe 15.exe (in Simples) 문제풀이 동명대학교정보보호동아리 THINK www.mainthink.net 강동현 Blog: johnghb.tistory.com e-mail: cari2052@gmail.com 1 목차 : 1. 문제설명및기본분석 --------------------------- P. 03 2 상세분석 ---------------------------

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

Microsoft PowerPoint 알고리즘 개요(Part 1).pptx

Microsoft PowerPoint 알고리즘 개요(Part 1).pptx 알고리즘 (Algorithm) 알고리즘개요 ( 효율, 분석, 차수 ) Part 1 2011년봄학기 강원대학교컴퓨터과학전공문양세 강의내용 프로그램과알고리즘순차검색과이진검색피보나찌수구하기알고리즘분석차수 (O,, ) Part 2 Page 2 프로그램의설계과정 설계분석예문제알고리즘만족? 프로그램 아니오 재설계 알고리즘은주어진문제를논리적으로해결하는과정이다. 분석을통해작성한알고리즘의정확성을파악할수있고,

More information

초4-1쌩큐기본(정답)본지

초4-1쌩큐기본(정답)본지 초4-1쌩큐기본(정답)본지 2014.10.20 06:4 PM 페이지1 다민 2540DPI 175LPI 3~4학년군 수학 진도교재 1. 큰 수 3 4-1 2 2. 곱셈과 나눗셈 12 3. 각도와 삼각형 21 4. 분수의 덧셈과 뺄셈 34 5. 혼합 계산 43 6. 막대그래프 54 단원 성취도평가 61 쌩큐 익힘책 67 1 6000 7000 8000 9000 10000

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

와플-4년-2호-본문-15.ps

와플-4년-2호-본문-15.ps 1 2 1+2 + = = 1 1 1 +2 =(1+2)+& + *=+ = + 8 2 + = = =1 6 6 6 6 6 2 2 1 1 1 + =(1+)+& + *=+ =+1 = 2 6 1 21 1 + = + = = 1 1 1 + 1-1 1 1 + 6 6 0 1 + 1 + = = + 7 7 2 1 2 1 + =(+ )+& + *= + = 2-1 2 +2 9 9 2

More information

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로 Lab. 1. I-V Characteristics of a Diode Lab. 6. 연산증폭기가산기, 미분기, 적분기회로 1. 실험목표 연산증폭기를이용한가산기, 미분기및적분기회로를구성, 측정및 평가해서연산증폭기연산응용회로를이해 2. 실험회로 A. 연산증폭기연산응용회로 (a) 가산기 (b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로 3. 실험장비및부품리스트

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 03 일단짜보는그럴듯한 C 프로그램... 1. 프로그램작성순서복습 2. 주석 3. scanf_s( ) 맛보기 1. 프로그램작성순서복습 프로그래밍작성순서요약 프로젝트만들기 : 소스파일보다프로젝트를먼저생성해야함 코딩 : C 컴파일러가알아들을수있는형식으로문서작성 빌드 : 컴파일과링크를합친개념 컴파일 : 소스를컴퓨터가이해하는오브젝트파일로변환 링크 :

More information

Frama-C/JESSIS 사용법 소개

Frama-C/JESSIS 사용법 소개 Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie

More information

= " (2014), `` ,'' .." " (2011), `` ,'' (.)"

=  (2014), `` ,'' ..  (2011), `` ,'' (.) 학습목표 Finance Lectue Note Seies 파생금융상품의 이해 화폐의 시간가치(time value of money): 화폐의 시간가치에 대해 알아본다 제강 화폐의 시간가치 연금의 시간가치(time value of annuity): 일정기간 매년 동일금액을 지급하는 연금의 시간가치에 대해 알아본다 조 승 모 3 영구연금의 시간가치(time value

More information

Microsoft PowerPoint - Lesson2.pptx

Microsoft PowerPoint - Lesson2.pptx Computer Engineering g Programming g 2 제 3 장 C 프로그래밍구성요소 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() *

More information

C 프로그래밊 개요

C 프로그래밊 개요 함수 (2) 2009 년 9 월 24 일 김경중 공지사항 10 월 1 일목요일수업휴강 숙제 #1 마감 : 10 월 6 일화요일 기초 함수를만들어라! 입력 함수 ( 기능수행 ) 반환 사용자정의함수 정의 : 사용자가자신의목적에따라직접작성한함수 함수의원형 (Function Prototype) + 함수의본체 (Function Body) : 함수의원형은함수에대한기본적정보만을포함

More information

Microsoft PowerPoint - 1-2장 디지털_데이터 .ppt

Microsoft PowerPoint - 1-2장 디지털_데이터 .ppt 1 장디지털개념 한국기술교육대학교정보기술공학부전자전공장영조 1.1 디지털과아날로그 아날로그 : 연속적인범위의값으로표현 디지털 : 2 진수의값에의해표시 < 아날로그파형 > < 디지털파형 > 2 1.2 논리레벨과펄스파형 양논리시스템 (positive logic system)- 일반적으로많이사용 1(high 레벨 ), 0(low 레벨 ) 로나타냄. 음논리시스템 (negative

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37

31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37 21. 다음식의값이유리수가되도록유리수 의값을 정하면? 1 4 2 5 3 26. 을전개하면상수항을 제외한각항의계수의총합이 이다. 이때, 의값은? 1 2 3 4 5 22. 일때, 의값은? 1 2 3 4 5 27. 를전개하여간단히 하였을때, 의계수는? 1 2 3 4 5 23. 를전개하여 간단히하였을때, 상수항은? 1 2 3 4 5 28. 두자연수 와 를 로나누면나머지가각각

More information

statistics

statistics 수치를이용한자료요약 statistics hmkang@hallym.ac.kr 한림대학교 통계학 강희모 ( 한림대학교 ) 수치를이용한자료요약 1 / 26 수치를 통한 자료의 요약 요약 방대한 자료를 몇 개의 의미있는 수치로 요약 자료의 분포상태를 알 수 있는 통계기법 사용 중심위치의 측도(measure of center) : 어떤 값을 중심으로 분포되어 있는지

More information

<4D F736F F F696E74202D20C1A639C0E520C7D4BCF6BFCDBAAFBCF6>

<4D F736F F F696E74202D20C1A639C0E520C7D4BCF6BFCDBAAFBCF6> 쉽게풀어쓴 C 언어 Express 제 9 장함수와변수 이번장에서학습할내용 반복의개념이해 변수의속성 전역, 지역변수 자동변수와정적변수 재귀호출 이번장에서는함수와변수와의관계를집중적으로살펴볼것이다. 또한함수가자기자신을호출하는재귀호출에대하여살펴본다. 변수의속성 변수의속성 : 이름, 타입, 크기, 값 + 범위, 생존시간, 연결 범위 (scope) : 변수가사용가능한범위,

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 26.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

Data Structure

Data Structure Function & Pointer C- 언어의활용을위한주요기법 (3) Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 함수의인자전달 함수의인자전달 함수의인자전달방식 인자전달의기본방식은복사다. 함수호출시전달되는값을매개변수를통해서전달받는데, 이때에값의복사가일어난다. int main(void) int val = 10;

More information

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2> 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력

More information

(001~006)개념RPM3-2(부속)

(001~006)개념RPM3-2(부속) www.imth.tv - (~9)개념RPM-(본문).. : PM RPM - 대푯값 페이지 다민 PI LPI 알피엠 대푯값과산포도 유형 ⑴ 대푯값 자료 전체의 중심적인 경향이나 특징을 하나의 수로 나타낸 값 ⑵ 평균 (평균)= Ⅰ 통계 (변량)의 총합 (변량의 개수) 개념플러스 대푯값에는 평균, 중앙값, 최 빈값 등이 있다. ⑶ 중앙값 자료를 작은 값부터 크기순으로

More information

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint 세션.ppt 웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)

More information

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속 1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속 2 1.1 함수를표현하는네가지방법 함수 f : D E 는집합 D 의각원소 x 에집합 E 에속하는단하나의원소 f(x) 를 대응시키는규칙이다.

More information

Microsoft PowerPoint - chap-09.pptx

Microsoft PowerPoint - chap-09.pptx 쉽게풀어쓴 C 언어 Express 제 9 장함수와변수 이번장에서학습할내용 반복의개념이해 변수의속성 전역, 지역변수 자동변수와정적변수 재귀호출 이번장에서는함수와변수와의관계를집중적으로살펴볼것이다. 또한함수가자기자신을호출하는재귀호출에대하여살펴본다 변수의속성 변수의속성 : 이름, 타입, 크기, 값 + 범위, 생존시간, 연결 범위 (scope) : 변수가사용가능한범위,

More information

쉽게 배우는 알고리즘 강의노트

쉽게 배우는 알고리즘 강의노트 쉽게배우는알고리즘 장. 정렬 Sorting http://www.hanbit.co.kr 장. 정렬 Sorting 은유, 그것은정신적상호연관성의피륙을짜는방법이다. 은유는살아있다는것의바탕이다. - 그레고리베이트슨 - 2 - 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고,

More information

PowerPoint Presentation

PowerPoint Presentation 컴퓨터프로그래밍 Computer Programming 08 포인터기초 목차 1. 포인터변수와선언 2. 간접연산자 * 와포인터연산 3. 포인터형변환과다중포인터 컴퓨터프로그래밍 (Computer Programming) - 08 포인터기초 3 1. 포인터변수와선언 주소개념 주소 address 메모리공간은 8비트인 1 바이트마다순차적인고유한번호 메모리주소는저장장소인변수이름과함께기억장소를참조하는또다른방법

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Computer Architecture CHAPTER 컴퓨터산술과논리연산 제 3 장 컴퓨터산술과논리연산 3.1 ALU의구성요소 3.2 정수의표현 3.3 논리연산 3.4 시프트연산 3.5 정수의산술연산 3.6 부동소수점수의표현 3.7 부동소수점산술연산 3.1 ALU 의구성요소 산술연산장치 : 산술연산들 (+, -,, ) 을수행 논리연산장치 : 논리연산들 (AND,

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

8장 조합논리 회로의 응용

8장 조합논리 회로의 응용 8 장연산논리회로 가산기 반가산기와전가산기 반가산기 (Half Adder, HA) 8. 기본가 / 감산기 비트의 개 진수를더하는논리회로. 개의입력과출력으로구성. 개입력은피연산수 와연산수 y 이고, 출력은두수를합한결과인합 S(sum) 과올림수 C(carry) 를발생하는회로. : 피연산수 : 연산수 : 합 y C S y S C 올림수 올림수 전가산기 : 연산수

More information