Özyinelemeli Dizi Hesaplayıcı

Diziyi üretmek için katsayıları, başlangıç değerlerini ve terim sayısını girin.

Nasıl hesaplanır?

İki başlangıç değeri ve üç sabit girersiniz; araç her yeni terimi kendinden önceki iki terimden üretir: a(n) = p × a(n−1) + q × a(n−2) + r. Listelenen ilk terim a0, ikincisi a1, üçüncüsü p × a1 + q × a0 + r olur ve böyle sürer. Terim sayısı N, a0 birinci sayılarak kaç terimin listeleneceğini belirler. N, 1 ile 50 arasında olmalıdır; ondalıklı N tam kısmına indirilir, N = 1 yalnızca a0'ı gösterir. Katsayılar ve başlangıç değerleri negatif ya da ondalıklı olabilir. Herhangi bir terim sonsuz olursa veya büyüklüğü yaklaşık 9 × 1015'i aşarsa sonuç çıkmaz; çünkü bundan sonra basamaklar artık kesin olmaz. Liste her zaman nokta ondalıklı ve binlik ayraçsızdır, böylece kopyalanabilir; son terim ayrıca sayfanın sayı biçiminde gösterilir. p = q = 1, r = 0 ve başlangıç değerleri 0 ile 1 ise Fibonacci sayılarını elde edersiniz.

Örnek hesaplama

p = 2, q = 1, r = 0 ve a0 = 0, a1 = 1 alalım; bu, a(n) = 2·a(n−1) + a(n−2) ile tanımlı Pell yinelemesidir ve 8 terim isteyelim. İlk iki terim 0 ve 1'dir. Sonra 2×1 + 0 = 2, 2×2 + 1 = 5, 2×5 + 2 = 12, 2×12 + 5 = 29, 2×29 + 12 = 70, 2×70 + 29 = 169. Araç 0, 1, 2, 5, 12, 29, 70, 169 listesini verir; son terim 169'dur. Her terim öncekinin iki katından biraz fazladır.

Bu örneği dene →

Sık yapılan hatalar

  • Terim sayısının a1'den başladığını ya da a0'ı saymadığını sanmak. Liste her zaman a0 ile başlar; 8 terim, 7. indisten üretilen terimde biter.
  • r sabitini çarpan sanmak. Bu değer her adımda bir kez eklenir, önceki bir terimle çarpılmaz.
  • Katsayıları ters girmek: p hemen öncekini, q bir öncekini çarpar. Yer değiştirirseniz farklı bir dizi çıkar.
  • 50'den fazla ya da 0 terim istemek. İkisinde de sonuç çıkmaz.
  • Terimleri yaklaşık 9 × 1015'i aşacak kadar hızlı büyüten katsayılar seçmek; örneğin p = q = 2 ile çok sayıda terim. Araç hatalı basamak göstermek yerine hiçbir şey göstermez; daha az terim isteyin.

Bu hesaplama hakkında

İkinci dereceden doğrusal bir yineleme (rekürans), her terimi kendinden önceki iki terimden tanımlar: a(n) = p·a(n-1) + q·a(n-2) + r. p=q=1, r=0 alıp 0,1 ile başlarsanız Fibonacci dizisini elde edersiniz; farklı katsayılarla Lucas sayıları, Pell sayıları ve daha pek çok klasik dizi üretilebilir.

Bu tür yinelemeler bilgisayar bilimi ve matematiğin hemen her alanında karşımıza çıkar — özyinelemeli algoritmaların çalışma süresini analiz etmekten, nüfus büyümesini modellemeye, sinyal işlemede sayısal filtreleri tanımlamaya kadar — çünkü gerçek dünyadaki birçok süreç, n'inci terim için açık bir formül yerine son iki duruma bağlı olarak ilerler.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Yalnızca başlangıç değerlerini değiştirmek aynı kuraldan başka bir dizi ailesi üretir. p ve q 1, başlangıç değerleri 2 ve 1 iken liste 2, 1, 3, 4, 7, 11, 18, 29 diye başlar; bu Fibonacci değil Lucas dizisidir. Bu yüzden araç, ödevdeki elle yazılmış bir özyinelemeyi ya da kodladığınız bir döngüyü denetlemek için kullanışlıdır: gerisine güvenmeden önce ilk on terimi karşılaştırın. Hangi özyinelemelerin hazır ayar olarak sunulmasını isterdiniz?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar