Leonardo of Pisa atau yang lebih dikenal sebagai Fibonacci mengemukakan permasalahan sebagai berikut:
Misalkan mula-mula ada sepasang kelinci yang baru lahir. Setiap bulan, kelinci-kelinci yang sudah berumur 2 bulan akan beranak sepasang kelinci. Bagaimana menentukan banyaknya kelinci dalam waktu 12 bulan?
Penyelesaian :
Pada bulan ke-0 ada 1 pasang kelinci (A)
Pada bulan ke-1 tetap masih ada 1 pasang kelinci (A) karena kelinci akan beranak pada umur 2 bulan, sedangkan kelinci tersebut masih berumur 1 bulan.
Pada bulan ke-2 pasangan kelinci A akan melahirkan sepasang anak(B).
Total sekarang ada 2 pasang kelinci.
Pada bulan ke-3 pasangan kelinci A akan melahirkan sepasang anak lagi(C), tetapi pasangan B, yang masih berumur 1 bulan, belum melahirkan.
Total sekarang ada 3 pasang kelinci.
Pada bulan ke-4, pasangan A melahirkan lagi (D) dan pasangan B juga melahirkan sepasang kelinci (E) sedangkan pasangan D belum cukup umur. Total sekarang adalah 5 pasang.
Dan seterusnya…
Misalkan mula-mula ada sepasang kelinci yang baru lahir. Setiap bulan, kelinci-kelinci yang sudah berumur 2 bulan akan beranak sepasang kelinci. Bagaimana menentukan banyaknya kelinci dalam waktu 12 bulan?
Penyelesaian :
Pada bulan ke-0 ada 1 pasang kelinci (A)
Pada bulan ke-1 tetap masih ada 1 pasang kelinci (A) karena kelinci akan beranak pada umur 2 bulan, sedangkan kelinci tersebut masih berumur 1 bulan.
Pada bulan ke-2 pasangan kelinci A akan melahirkan sepasang anak(B).
Total sekarang ada 2 pasang kelinci.
Pada bulan ke-3 pasangan kelinci A akan melahirkan sepasang anak lagi(C), tetapi pasangan B, yang masih berumur 1 bulan, belum melahirkan.
Total sekarang ada 3 pasang kelinci.
Pada bulan ke-4, pasangan A melahirkan lagi (D) dan pasangan B juga melahirkan sepasang kelinci (E) sedangkan pasangan D belum cukup umur. Total sekarang adalah 5 pasang.
Dan seterusnya…
Induk | Anak kelinci pada bulan | |||||
1 | 2 | 3 | 4 | 5 | 6 | |
A | - | B | C | D | F | I |
B | - | - | - | E | G | J |
C | - | - | - | - | H | K |
D | - | - | - | - | - | L |
E | - | - | - | - | - | M |
… | … | … | … | … | … | … |
Pada table tersebut, terdapat aturan bahwa jumlah pasangan kelinci fn terbentuk dari fn-1 pasang kelinci sebelumnya, ditambah dengan jumlah pasangan anak yang dilahirkan. Karena kelinci akan melahirkan pada umur 2 bulan, jumlah pasang anak yang diperoleh sama dengan jumlah kelinci pada 2 bulan sebelumnya, yaitu fn-2. Deret bilangan inilah yang disebut dengan deret Fibonacci.
Bilangan Fibonacci dapat didefinisikan berdasar deret integer tak berhingga dengan logika sebagai berikut :
n=1 atau n=2, maka Fibo(n)=1
n>2, maka Fibo(n)= Fibo(n-1)+Fibo(n-2)
1 1 2 3 5 8 13 21 34 55 ….
Dari deret di atas dapat dilihat bahwa bilangan ke-n (n>2) dalam deret bisa dicari dari dua bilangan sebelumnya yang terdekat dengan bilangan ke-n, yaitu bilangan ke-(n-1) dan bilangan ke-(n-2). Oleh karena itu, jika Fibo(n) menunjukan bilangan Fibonacci ke-n, maka Fibo(n) bisa dihitung berdasarkan hubungan rekurens berikut :
Fibo(n) = Fibo(n-1)+Fibo(n-2)
Karena Fibo(n) ditentukan oleh dua nilai yang berbeda dengan argument yang nilainya lebih kecil, maka untuk mencari bilangan Fibonacci diperlukan dua nilai awal,yaitu Fibo(1)=1 dan Fibo(2)=1.
Fibo(1)=1
Fibo(2)=1
Fibo(3)= Fibo(2)+ Fibo(1)
Fibo(4)= Fibo(3)+ Fibo(2)
dan seterusnya.
a. Algoritma dengan Pseuducode
function Fibonacci (n)
if n=1 or n=2 then Fibo=1
else Fibo= Fibo(n-1)+Fibo(n-2)
end if
Fibonacci = Fibo
endfunction
b. Implementasi dalam bahasa C/C++
/* Program Menghitung deret fibonacci */
#include <stdio.h>
long int fibonacci (int x);
main()
{
int n;
long int hasil;
printf(“Program Menghitung deret fibonacci \n”);
printf(“Deret ke: “);
scanf(“%d”,&n);
hasil=Fibonacci(n);
printf(“Deret Fibonacci (%d) adalah %d \n”,n,hasil);
}
long int fibonacci(int x)
{
long int fibo;
if(x==1 || x==2)
return 1;
else
{
fibo=fibonacci(x-1)+fibonacci(x-2);
return fibo;
}
}
Tampilan program :
Program Menghitung deret Fibonacci
Deret ke : 12
Deret Fibonacci(12) adalah 144
0 Response for the "Bilangan Fibonacci pada Bahasa C"
Post a Comment