Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Rekursi.  Definisi fungsi rekursif.  Contoh 1 : Triangle  Contoh 2 : Faktorial  Contoh 3 : Perkalian  Contoh 4 : Fibonacci  Contoh 5 : Tower of.

Presentasi serupa


Presentasi berjudul: "Rekursi.  Definisi fungsi rekursif.  Contoh 1 : Triangle  Contoh 2 : Faktorial  Contoh 3 : Perkalian  Contoh 4 : Fibonacci  Contoh 5 : Tower of."— Transcript presentasi:

1 Rekursi

2  Definisi fungsi rekursif.  Contoh 1 : Triangle  Contoh 2 : Faktorial  Contoh 3 : Perkalian  Contoh 4 : Fibonacci  Contoh 5 : Tower of Hanoi

3  0,1,1,2,3,5,8,13,21,34,55,89,144,..  The Fibonacci series f n≥0 is a famous series defined by: f 0 : ≡ 0, f 1 : ≡ 1, f n≥2 : ≡ f n−1 + f n−2  f 2 = f 0 + f 1 = = 1  f 3 = f 1 + f 2 = = 2  f 4 = f 2 + f 3 = = 3  f 5 = f 3 + f 4 = = 5  …. Leonardo Fibonacci

4

5 ALGORITMA fibo( n ) = n if n == 0 or n == 1 fibo( n ) = fibo( n – 2 ) + fibo( n – 1 ) if n >= 2 fibo( 4 ) = fibo( 2 ) + fibo( 3 ) = fibo( 0 ) + fibo ( 1 ) + fibo( 3 ) = fibo( 1 ) + fibo( 2 ) = fibo( 0 ) + fibo( 1 ) = = 3 SOURCE CODE int fibo ( int n ) { int x, y; if ( n <= 1 ) { return ( n ); }else{ x = fibo( n - 1 ); y = fibo( n - 2 ); return ( x + y ); }

6  fibo (4) = ? F(4) F(2)F(3) F(0)F(1) F(2) F(0)F(1)

7

8  Sebuah game /puzzle matematika kuno dimana ada ada tiga buah tiang, dimana salah satu tiang terdapat beberapa piringan  Piringan akan dipindahkan ke tiang yang lain dengan salah satu tiang menjadi tiang bantu  Untuk memindahkan ada beberap syarat  Hanya ada satu piringan yang berpindah dalam satu langkah  Tidak boleh ada piringan yang berada di atas piringan yang lebih kecil  Total langkah yang dibutuhkan untuk menyelesaikan puzzle secara matematika adalah 2 n -1 dengan n adalah banyaknya piringan

9

10

11 ALGORITMA 1.If n == 1, move the single disk from A to C and stop. 2.Move the top n – 1 disks from A to B, using C as auxiliary. 3.Move the remaining disk from A to C. 4.Move the n – 1 disks from B to C, using A as auxiliary. SOURCE CODE void towers( int n, char from, char to, char aux) { if ( n == 1 ) { printf(“\nmove disk 1 from %c to %c”, from, to); return; }else{ towers( n – 1, from, aux, to ); printf(“\nmove disk %d from %c to %c”, n, from, to); towers( n – 1, aux, to, from ); }

12  towers(3, A, C, B) = ?

13  Kelebihan :  Program menjadi lebih singkat/sederhana  Dalam beberapa kasus kasus memang dibutuhkan penggunaan rekursi  Kekurangan :  Kurang efektif dalam hal kecepatan  Membutuhkah memori lebih, karena ketika satu fungsi / method memanggil dirinya, dibutuhkan tambahan alokasi memori. Sehingga alokasi memori total menjadi lebih besar

14 1. NPM genap : towers (4, A, C, B) = ? NPM ganjil : towers (4, C, A, B ) = ? 2. fibo(6) = ?

15   wikipedia


Download ppt "Rekursi.  Definisi fungsi rekursif.  Contoh 1 : Triangle  Contoh 2 : Faktorial  Contoh 3 : Perkalian  Contoh 4 : Fibonacci  Contoh 5 : Tower of."

Presentasi serupa


Iklan oleh Google