IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
1Beğeni(ler)
  • 1 Post By YazılımMimarı

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 20 Temmuz 2012, 23:13   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Java : Fibonacci Algoritması




Fibonacci Algoritması nedir?

Fibonacci dizisi, her sayının kendinden öncekiyle toplanması sonucu oluşan sayı dizisi. Bu şekilde devam eden bu dizide sayılar birbirleriyle oranlandığında altın oran ortaya çıkar, yani bir sayı kendisinden önceki sayıya bölündüğünde [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] gittikçe yaklaşan bir dizi elde edilir. Bu durumda genel olarak n'inci [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] sayısı F(n) şu şekilde ifade edilir:


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu da bir Fibonacci dizisidir:4, 7, 11, 18, 29, 47, … Çünkü Fibonacci dizisi herhangi iki sayıdan başlayabilir.
Fibonacci sayı dizisindeki sayıların birbirleriyle oranı olan ve [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] denilen 1,618 sayısı ise doğada, sanatta ve hayatın her alanında görülen ve estetik ile bağdaştırılan bir sayıdır.


Algoritma hakkında bilgi wikipedia'dan alınmıştır.



PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class Fibonacci {
  public static 
void main(String[] args) {
    
int n0 1n1 1n2// Değişkenleri tanımlayıp, başl
    
System.out.print(n0 " " n1 " "); // Birinci ve ikinci terimleri yazdırma

    
for (int i 018i++) { //Sonraki 18 terime kadar giden döngümğz
      
n2 n1 n0// Sonraki terim bir önceki iki terim ile toplanıyor
      
System.out.print(n2 " "); // Terimi yazdır
      
n0 n1// Terimi yazdırdıktan önceki 2. terim
      
n1 n2// Yazdırılan terim aslında şuan önceki birinci terimimiz
    
}
    
System.out.println(); // Satır atlattırmak
  
}


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Farklı bir yerde bu algoritmanın recursive fonksiyonu ile nasıl yapıldığını sordu bir arkadaş ona binayen buradada sorulabilir ihtimaline karşın paylaşıyorum.

Tabiki for döngüsü ile donmek yerine toplama işlemini yapacağın kısımını bir fonksiyon yazıp durmadan o fonksiyonu çağırabilirsin. Ama fonksiyon parametere almalıdır çünkü kaçıncı terime kadar gitmek istediğinizi orada kontrol edebilirsiniz.

Yani yukarıdaki kısmı şu şekilde duzenlemelisiniz;

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
 // recursive metodumuz long değeri dönüyor main içinde yazdırma işlemi için
  
public static long fibonacci(long number) {
    if ((
number == 0) || (number == 1)) // ilk sayılar için yukarıdaki ilk iki terim için olan kısmı
      
return number;
    else
       
//recursion yapılan kısım
      //Bu kısmı 2. terimden sonraki sayıların yazdırılan güncel olanı yani 1. terim ve öncesindeki 2. terimin toplanması 
      
return fibonacci(number 1) + fibonacci(number 2);
  }

  public static 
void main(String[] args) {
    for (
int counter 0counter <= 10counter++)
      
System.out.printf("Fibonacci %d  terim :  %d\n"counterfibonacci(counter));
  } 



Konu YazılımMimarı tarafından (17 Şubat 2013 Saat 19:48 ) değiştirilmiştir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Fibonacci Dizisi Liaaa Ödev ve Tezler 0 21 Mayıs 2012 19:40
Taşırma Algoritması Liaaa Ödev ve Tezler 0 23 Mart 2012 17:39
Fibonacci Serisi YaRGuCi C# 0 09 Ocak 2012 22:34
PRNG Algoritması Kırıldı Ocean Güvenlik ve Güvenlik Açıkları 0 22 Ekim 2009 12:02
Fibonacci Serisi Cemalizim Visual Basic 0 21 Temmuz 2008 18:23