30 HAZİRAN 2011, PERŞEMBE

Ardışık Fibonacci Örneği

Yazmak zaten denemediyseniz Kendi özyinelemeli Fibonacci fonksiyonu, Ben gerçekten bunu tavsiye ederiz, ya da en azından bunu denemek için. Bu videoyu izlemeden önce oa ciddi bir girişimde ver. Ama, bunu yaptıysanız veya tembel hissettiğiniz Ben bu videoyu izleyebilirsiniz sanırım. Ve böylece biz bir özyinelemeli Fibonacci yazmak için denemek için gidiyoruz Ben ne zaman ben ilk düzenlendiği özelliklerine göre işlev Fibonacci işlevi yazmak meydan kurmak. Bu yüzden tekrar bu Fibonacci arayacağım ve onu alacağım. O n, burada bir parametresi vardır. Yani birisi bir argüman geçmek

zorunda kalacak Biz Fibonacci dizisi istiyorsun hangi terim demek, ama biz burada özyinelemeli bunu yapmak için gidiyoruz. Ve ne görmeye gidiyoruz aslında olmasıdır ardışık Fibonacci işlevi yazmak çok kolay. Ne

redeyse büyü gibi. Ve daha sonra biz olsa, mutlaka değil, göreceksiniz en etkili yolu, bir Fibonacci işlevi yazmak. Yazdığınız zaman Peki ne yapacağım ise Herhangi bir özyinelemeli bir program, gerçekten

“Özyineleme kullanarak bir Fibonacci işlevi yazmak...”
Khan Academy

Gerçekten de baz durumlarda düşünmek gerekir. Ve Fibonacci dizisi baz durumlarda, var aslında iki temel olgu. 0-inci terim ve ilk dönem var, ve bu gerçekten tanım tarafından verilmektedir. Yani n 0'a eşit ise biz 0-inci terim istiyorsanız diyelim, iyi ki, sen 0-inci terim istediğiniz anlamına gelir ve 0-inci terim aslında 0'dır. N 1 eşittir Ve eğer, başka söyleyebiliriz 0-th vadeli 0 çünkü o zaman, 1 dönebilirsiniz. Fibonacci dizisi ilk d

Ardışık Fibonacci Örneği Resim 1 Ardışık Fibonacci Örneği Resim 2 Ardışık Fibonacci Örneği Resim 3 Ardışık Fibonacci Örneği Resim 4

önem 1'dir. Büyü biraz olur nerede Ve şimdi burada. Aksi takdirde return-- ve bu gerçekten iyidir n eksi 1 Fibonacci var--. Fibonacci dizisi Yani ne olursa olsun önceki dönem n eksi 2 artı Fibonacci olduğunu. Ve ben bu çalışması gerektiğini düşünüyorum. O büyülü görünüyor bu yüzden tüm çünkü biz söylüyorsun, var Eğer 0-inci terim istiyorsanız, hey, bak olduğunu, durum 0. İlk dönem istiyorsanız, var 1-- , Ilk dönem isterseniz bana burada-- iki boşluk koysunlar o 1 olduğunu. Başka bir terim istiyorsanız, bu nedenle else-

- ve bu başka bir ve-- ama başka bunların hiçbiri doğruysa, diğer bazı sayı eğer, 0 veya 1 ne ise, o şey olmak gidiyor ve biz gidiyoruz Bazı negatif olmayan tamsayı girilmesi olduğunuzu varsaymak buraya. Bazı negatif olmayan tamsayı yaptım bu aşağı kıracak Negatif olmayan vadede. Ama negatif olmayan bir tamsayı olduğu varsayılarak 0-th ya da ilk terim değilse diyorsunuz, sonra bak, Daha sonra sadece ne olursa olsun, bir dönem Fibonacci almak o daha az, artı iki terim daha az. Ve bunu deneyebilirsiniz. Örneğin, diyelim ki 2 Fibonacci aldı diyelim. Daha sonra n bunu olmayacak şekilde, 0 değildir ve n, 1 değil, böylece bu yapmazdı. Yani 2 eksi 1 dönüş Fibonacci söylerim. Yani 1 Fibonacci, artı 2 eksi 2 Fibonacci var, 0 artı Fibonacci. Peki, biz 1 Fibonacci 1 değerlendirir biliyorum, o olacak, böylece ve 0 Fibonacci, 0 değerlendirir 1 artı 0, ya da sadece 1. Ve devam olabilir. 3 Fibonacci'yi sahipsiniz. Biz 0 Fibonacci, 1 ya da 2 eser biliyorum çünkü çalışacağız. 3 Fibonacci aşağı kaynatın Çünkü 1 ile 2 Fibonacci artı Fibonacci, Biz 2 o Fibonacci 1 olduğunu biliyorum, ve 1 Fibonacci 1'dir. Yani 1 artı 1 2 olacağım, bu yüzden sadece çalışmaya devam edeceğiz. Ve biz bunu deneyebilirsiniz. Sadece bu tasarruf edelim. Aslında dosya adını tasarruf etmedi, bana sadece diyelim Recursive Fibonacci. Bir nokta py dosyası var. Ve şimdi beni aslında programı çalıştırın. Ve yaptığı tüm bu benim ortamında işlevini tanımlamak olduğunu. Ve sonra ben aslında işlevini çağırmak gerekir. Bu yüzden bana sadece çalışmasına izin verin. Ve bana 4 Fibonacci için soralım. Bana doğru cevabı verdi. 10 Fibonacci, 55. Doğru cevap. Ben basit şeyler deneyebilirsiniz. 0 Fibonacci, 0-th terim 0'dır. Yani hepsi çalışır. Yineleme tür büyülü İşte bu yüzden. Ve artık bu basitleştirmek için istedim, Eğer, hey, Fibonacci 0-inci terimini tanıyabilir dizisi 0; Fibonacci dizisi ilk dönem 1; Eğer 0-th dönem arıyoruz yani gerçekten eğer ya da ilk dönem, gerçekten bu sayı olarak aynı şey. Yani aslında, belki de, bu biraz basitleştirmek olabilir. Birinin gidiyor olduğunu varsayarsak girmek için buraya bir negatif olmayan bir tamsayı, Eğer, n, 0 eşitse gibi bir şey diyebiliriz veya n, 1 'e eşit olduğu, n, döner. Bu işe yararsa görelim. Yani bu biraz bizim kodu basitleştirilmiş. Yani bu kurtarmaya çalışalım. Ve şimdi o da çalışmasına izin verin. Ve şimdi, deneyelim 10 Fibonacci. Gerçekten 0-th vadeli 0 çünkü hala çalıştı ve ilk dönem 1'dir. Yani orada çalışıyor, ya da hatta daha da basitleştirmek olabilir. Burada n, 2 den daha az ise bu kadar sonra, çünkü eğer bu da, çalışmalıdır 0 veya 1 n geri gidiyoruz, aksi takdirde sen Bu iş her yapacaksınız. Yani dışarı deneyelim. Yani biz o koştu. Ve en 10 Fibonacci'yi deneyelim. Bilgisayar gibi Şimdi, öyle görünüyor gerçekten hızlı bunu yapmak mümkün, ve bütün bunlar, ve bunun geri kalan her şey. Eğer gerçekten tüm iş görmek istiyorsanız Ama bu Fibonacci yapılan tüm aramaları olmak, ne yapabilirim burada bir baskı koymak izin o--. Her zaman Fibonacci çağrılan Böylece bu metin Fibonacci kolon yazdırır. Ve sonra metnin o dizeye eklemek için gidiyorum argüman nedir. Yani bu argüman n olacak, ve ben bir dize olarak inceledi olduğundan emin olmak istiyorum. Ben bir dizeye döküm ediyorum. Bu aslında sadece bir tamsayı alıyor ve emin olduğunuz bir dize, ve sonra Ben bu dizeye eklediğinizde, o büyük bir dize yapacağız. Ama bu ne görelim. Ben ilk önce alt değerlerle denemek için gidiyorum. Yani fonksiyon tanımlanır. Bu yüzden bana 3 Fibonacci'yi yazalım. Aradım Yani fark, bu 3 Fibonacci çağırdı. Sonra 3 Fibonacci'yi yapmak, bu 2 Fibonacci'yi aramak zorunda ve 1 Fibonacci. Ve sonra 2 Fibonacci'yi yapmak, bu 0 ve Fibonacci aramak zorunda ve 1 Fibonacci. Yani Fibonacci bu çağrıların hepsi yapmak zorunda Sadece 3 Fibonacci hesaplamak için, ve sonra sonunda size cevap verdi. Eğer 10 Fibonacci yaptım, gerçekten deli gidecek. Yani ben bile bunu yapmak için gitmiyorum. Bana sadece 6 Fibonacci'yi yapayım, ve sen bunu yapmak zorunda Fibonacci kaç aramalar göreceğiz. Yani Fibonacci bu çağrıların hepsi yapmak zorunda. Yani aslında bir çok hesaplama yoğun bir şeydi yapmak. Ama bilgisayarlar, süper hızlı böylece bile fark yoktur. Ama gelecekte daha biraz konuşacağım nasıl biz nasıl hesaplama hakkında düşünüyorsunuz Bir işlevi uygulayan yoğun farklı şekillerde olabilir.

Açıklama

Özyineleme kullanarak bir Fibonacci işlevi yazmak

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

Khan Academy

Khan Academy

Misyonumuz, her yerde herkes için dünya standartlarında bir eğitim sağlamak. Tüm Khan Academy içerik www.khanacademy.org adresinden ücretsiz olarak sunulmaktadır.

YORUMLAR



9.6/10

  • 122
    Olumlu
  • 5
    Olumsuz
  • 20
    Yorum
  • 63619
    Gösterim

SPONSOR VİDEO

Rastgele Yazarlar

  • EatingIn

    EatingIn

    12 EKİM 2013
  • sonia989

    sonia989

    26 EKİM 2006
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006

ANKET



Bu sayfa işinize yaradı mı?