Wednesday, June 11, 2014

Mencari Deret Fibonacci Dengen Bahasa C

Mencari Deret Fibonacci 



Fibonaci adalah bilangan dimana bilangan tersebut adalah hasil penjumlahan dari 2 buah bilangan sebelumnya

misal : 1 1 2   dua adalah bilangan yg sedang kita amati adalah hasil penjumlahan dua buah bilangan sebelumnya. Fibonaci akan membentuk sebuah deret bilangan ( deret fibonacci). 

ada beberapa cara untuk mencari fibonaci , diantaranya adalah : 

a. Fungsi rekursif , yang memenuhi formula berikut



Dimana n adalah bilangan fibonaci digit ke-n
Dengan formula rekursif diatas akan membentuk pola perhitungan sbb : 
Jika bilangan itu > 1
F(2) = F(2-1) + F(2-2)
     = F(1)   + F(0) 
     = 1 + 0 = 1   //substitusi kedalam fungsi rumus
Begitu seterusnya secara rekursif. Namun secara rekursif kurang disenangi karena memakan banyak memory di Komputer. 

b. Cara Logika biasa dan Matematika


   b.1 Logika Biasa 

 int fibonaci(int n){

    int i,next,a=0,b=1;
    for(i=0;i<n;++i){
    
        if(i<=1){
            next = i;
        }else{
            
            next = a + b;
            a = b;
            b= next;
        }
        
        printf("%d ",next);
    }
}

  b.2 Cara matematika

    Yang memenuhi formula Fn = (x1n – x2n) / akar(5)  dengan pembulatan kebawah
    dimana X1 dan X2 adalah akar-akar dari persamaan Kuadrat    x - x - 1=0          
   Untuk mencari X1 dan X2 dapat dicari dengan 
   

   Maka didapat X1,X2  =>    

  DI program kita buat seperti ini

int fibonaci(int n){
    
    int i;float tmp;
    
    //x^2 - x - 1 =0
    float x1 = ( 1 + sqrt(5) ) / 2;
    float x2 = (1 - sqrt(5) ) / 2;  
    
    for(i=0;i<n;i++){
               
        tmp = (pow(x1,i) - pow(x2,i)) / sqrt(5);
        printf("%d ",(int)floor(tmp)); //pembulatan kebawah         
    }
    
    printf("\n");
}

No comments:

Post a Comment