MAT2033 · 11. hafta · Solving linear recurrences, generating functions
Doğrusal yinelemeler, üreteç fonksiyonlar ve içerme-dışlama
Karakteristik denklemle yineleme çözmek, özel çözüm eklemek, böl-ve-yönet yinelemeleri, üreteç fonksiyonla sayma ve içerme-dışlama. Finalde tam bir soru buradan gelir.
Bu hafta, 8.1’de kurduğun yinelemeleri (recurrence relation) çözmeyi öğreniyorsun: an‘i önceki terimlere bağlı yazmak yerine doğrudan n cinsinden bir formül bulmak. Bu konu vizede yok, final konusu. Final sorusu genelde şöyle: “Solve the recurrence … with initial conditions …”. Ardından bir üreteç fonksiyon (generating function) ya da içerme-dışlama (inclusion-exclusion) sorusu gelir.
Çift kökr: an=(α+βn)rn. n çarpanını unutan puanı kaybeder.
Sabitleri a0, a1 ile bul. Bir terim daha hesaplayıp kontrol et.
Homojen değilse: genel çözüm = homojen çözüm + özel çözüm. Başlangıç koşulunu en son uygula.
Doğrusal homojen yineleme nedir?
k. dereceden doğrusal homojen sabit katsayılı yineleme (linear homogeneous recurrence relation of degree k with constant coefficients):
an=c1an−1+c2an−2+⋯+ckan−k,ck=0.
Kelime kelime:
Kelime
Anlamı
Örnek olmayan
linear (doğrusal)
önceki terimler sadece sabitle çarpılıp toplanıyor
an=an−12
homogeneous (homojen)
a içermeyen ek terim yok
an=2an−1+1
constant coefficients
ci sayılar, n‘ye bağlı değil
an=nan−1
degree k
en geriye k adım bakıyor
an=an−3 derece 3
Derece k ise k tane başlangıç koşulu (initial condition) diziyi tek türlü belirler. Final derecesi neredeyse her zaman 2.
Sezgi: neden rn?
an=2an−1 gibi birinci dereceden bir yineleme her adımda 2 ile çarpar, çözüm an=a02n. İkinci derecede de çözümün “üstel” olmasını bekleriz. an=rn yaz, yinelemeye koy:
rn=c1rn−1+c2rn−2⟹r2−c1r−c2=0.
Bu karakteristik denklem (characteristic equation), kökleri karakteristik kökler (characteristic roots). Her kök bir temel çözüm verir; doğrusal olduğu için temel çözümlerin her doğrusal birleşimi de çözümdür.
Kural 1: farklı kökler
r2−c1r−c2=0 iki farklı kök r1,r2 veriyorsa:
an=α1r1n+α2r2n.
Örnek.an=an−1+2an−2, a0=2, a1=7.
1) r^2 = r + 2 -> r^2 - r - 2 = 0 -> (r - 2)(r + 1) = 0 -> r = 2, r = -12) a_n = A 2^n + B (-1)^n3) n = 0: A + B = 2 n = 1: 2A - B = 7 topla: 3A = 9 -> A = 3, B = -14) a_n = 3 * 2^n - (-1)^n5) kontrol: a_2 = 7 + 2*2 = 11 ; formül 12 - 1 = 11
İPUCU · her zaman bir terim kontrol et.a2‘yi yinelemeden hesapla, formülden de hesapla. Eşit değilse sistemde işaret hatası var. Sınavda 20 saniye sürer, puanı kurtarır.
Kural 2: çift kök
Karakteristik denklemin tek bir kökü varsa (r0, iki katlı), r0n tek başına iki koşulu sağlamaya yetmez. İkinci temel çözüm nr0n olur:
an=(α1+α2n)r0n.
Örnek.an=4an−1−4an−2, a0=1, a1=6.
r^2 - 4r + 4 = (r - 2)^2 = 0 -> r = 2 (çift kök)a_n = (A + B n) 2^nn = 0: A = 1n = 1: (1 + B) * 2 = 6 -> B = 2a_n = (1 + 2n) 2^nkontrol: a_3 = 4*20 - 4*6 = 56 ; formül 7 * 8 = 56
TUZAK · çift kökte α2n+β2n yazmak. Bu aslında (α+β)2n, yani tek bir sabit. İki başlangıç koşulunu birden sağlayamaz. Çift kökte ikinci terim mutlaka βnrn.
Bir çözümü ispatla doğrulamak
Finalde bazen “Show that an=… is a solution” diye sorulur. Bu bir doğrudan ispattır: formülü sağ tarafa koy, sol tarafı elde et.
Claim.an=3⋅2n−(−1)n satisfies an=an−1+2an−2 for all n≥2, with a0=2, a1=7.
The first two terms give 3⋅2n. Since (−1)n−1=−(−1)n−2, the last two terms give (−1)n−2−2(−1)n−2=−(−1)n−2=−(−1)n. Hence an−1+2an−2=3⋅2n−(−1)n=an. Also a0=3−1=2 and a1=6+1=7. ■
Türkçesi: iki üstel parçayı ayrı ayrı topla. 2n−1+2n−1=2n hilesi ve (−1)‘in kuvvetlerinde bir adım kaydırınca işaret değiştiğini kullan.
an(h): F(n)‘i silip elde ettiğin homojen yinelemenin genel çözümü. an(p): yinelemeyi sağlayan herhangi bir özel çözüm (particular solution). Özel çözüm için tahmin tablosu:
F(n)
Dene
Ne zaman değişir?
sabit d
C
1 karakteristik kökse Cn
dn+e
Cn+D
1 kökse bir n ile çarp
d⋅sn
Csn
s kökse Cnsn (katlıysa nm)
Örnek.an=3an−1+4, a0=1.
homojen: a_n = 3 a_{n-1} -> a_n(h) = A 3^nözel: a_n(p) = C (sabit dene) -> C = 3C + 4 -> C = -2genel: a_n = A 3^n - 2koşul: a_0 = A - 2 = 1 -> A = 3sonuç: a_n = 3^(n+1) - 2 kontrol: a_1 = 3 + 4 = 7 = 9 - 2
TUZAK · başlangıç koşulunu homojen kısma uygulamak.α3n‘e a0=1 uygulayıp sonra −2 eklersen yanlış çıkar. Önce genel çözümü tam yaz (a(h)+a(p)), koşulu en son uygula.
Böl ve yönet yinelemeleri
Problemi a tane, her biri n/b boyutunda alt probleme bölen, birleştirmesi g(n) süren algoritmalar (binary search, merge sort):
f(n) is ⎩⎨⎧O(nd)O(ndlogn)O(nlogba)a<bda=bda>bd
Okuma şekli: a (dal sayısı) ile bd‘yi (bir seviyedeki işin küçülme hızı) karşılaştır.
Yineleme
a
bd
Sonuç
f(n/2)+2 (binary search)
1
20=1
O(logn)
2f(n/2)+n (merge sort)
2
2
O(nlogn)
4f(n/2)+n
4
2
O(n2)
2f(n/2)+n2
2
4
O(n2)
Küçük değerleri elle de hesaplayabilirsin: f(n)=2f(n/2)+3, f(1)=1 ise f(2)=5, f(4)=13, f(8)=29.
Üreteç fonksiyonlar
Bir dizinin üreteç fonksiyonu (generating function), terimleri katsayı olarak taşıyan kuvvet serisidir:
G(x)=a0+a1x+a2x2+⋯=∑k=0∞akxk.
Sezgi: xk bir “raf etiketi”, katsayı o rafta kaç şey olduğunu söylüyor. Polinomları çarpınca üsler toplanır; bu da “toplamı k olan seçimleri say” işine birebir uyar.
Ezberlenecek açılımlar:
Fonksiyon
Dizi ak
1−x1
1
1−ax1
ak
(1−x)21
k+1
(1−x)n1
C(n+k−1,k)
1−x1−xm+1
k≤m için 1, sonra 0
(1+x)n
C(n,k)
Sayma örneği. Üç çeşit poğaçadan 8 tane alacaksın, peynirliden en az 2 tane olmalı. Kaç farklı seçim var?
Sınırlı değişkenlerde (üst sınır varsa) seriyi sonlu polinom olarak yaz ve katsayıyı çarparak bul. Bu, sorulardaki e1+e2+e3=6 örneğinde yapılan iş.
Üreteç fonksiyonla yineleme de çözülebilir: ak=3ak−1, a0=1 için G(x)−3xG(x)=1, G(x)=1−3x1, yani ak=3k. Finalde bu yöntem daha seyrek, karakteristik kök yöntemi asıl beklenen.
İçerme-dışlama (inclusion-exclusion)
İki küme için ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣. Üç küme:
∣A∪B∪C∣=∣A∣+∣B∣+∣C∣−∣A∩B∣−∣A∩C∣−∣B∩C∣+∣A∩B∩C∣.
Sezgi: tek tek toplayınca iki kümede olanları iki kez saydın, çıkar. Ama üçünde olanı önce 3 kez ekleyip 3 kez çıkardın, yani hiç saymadın: bir kez geri ekle.
Örnek.1..100 arasında 2, 3 ya da 7’ye bölünen kaç sayı var?
“Hiçbirine bölünmeyen” sorulursa 100−72=28. Bu tamamlayıcı adımı unutmak en sık kayıp.
Sık yapılan hatalar
Yanlış
Doğrusu
r2=c1r+c2 yerine r2+c1r+c2=0 yazmak
Sağdakileri sola işaret değiştirerek taşı: r2−c1r−c2=0
Çift kökte αrn+βrn
(α+βn)rn
Başlangıç koşulunu sadece homojen kısma uygulamak
Önce a(h)+a(p), sonra koşul
F(n)=3n ve 3 kök iken C3n denemek
Cn3n dene, yoksa C için çelişki çıkar
Master theorem’de a ile b‘yi karıştırmak
a = alt problem sayısı, b = bölme oranı
(1−x)31 için xk katsayısı C(k+3,k)
C(n+k−1,k)=C(k+2,k)
İçerme-dışlamada üçlü kesişimi çıkarmak
Üçlü kesişim eklenir
“None of them” sorusunda ∣A∪B∪C∣ yazmak
Toplamdan çıkar: N−∣A∪B∪C∣
Kendini test et
Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.
Soru 1kolay
Find the characteristic roots of the recurrence an=an−1+6an−2.
Cevabı göster
3 and -2
an=rn koy: r2=r+6, yani r2−r−6=0. Çarpanlara ayır: (r−3)(r+2)=0. Kökler r=3 ve r=−2.
Soru 2orta
Solve an=5an−1−6an−2 with a0=1, a1=4. Then compute a5.
Cevabı göster
an=2⋅3n−2n, a5=454
Karakteristik denklem r2−5r+6=0, kökler 2 ve 3 (farklı). Genel çözüm an=α2n+β3n.n=0: α+β=1. n=1: 2α+3β=4. Birinciyi 2 ile çarpıp çıkar: β=2, α=−1.an=2⋅3n−2n. a5=2⋅243−32=454. Kontrol: a2=5⋅4−6=14 ve 2⋅9−4=14.
Soru 3orta
Solve an=6an−1−9an−2 with a0=2, a1=9, and find a4.
Cevabı göster
an=(n+2)3n, a4=486
r2−6r+9=(r−3)2=0: tek kök r=3, iki katlı (repeated root). Genel çözüm an=(α+βn)3n.n=0: α=2. n=1: 3(2+β)=9, β=1. Yani an=(n+2)3n.a4=6⋅81=486.
Soru 4orta
Solve an=4an−1−4an−2 with a0=1, a1=6.
Cevabı göster
an=(1+2n)2n
(r−2)2=0, çift kök 2. an=(α+βn)2n. a0=α=1. a1=2(1+β)=6, β=2. Sonuç an=(1+2n)2n. Kontrol: a2=4⋅6−4⋅1=20, formül 5⋅4=20.
Soru 5zor
Solve the nonhomogeneous recurrence an=3an−1+2n with a0=1.
Cevabı göster
an=3n+1−2n+1
Homojen kısım an=3an−1: an(h)=α3n. Özel çözüm (particular solution) için F(n)=2n ve 2 karakteristik kök değil, o yüzden an(p)=C2n dene:C2n=3C2n−1+2n. 2n−1'e böl: 2C=3C+2, C=−2.an=α3n−2⋅2n. a0=α−2=1, α=3. Sonuç 3n+1−2n+1. Kontrol: a1=3+2=5=9−4.
Soru 6kolay
Let f(n)=2f(n/2)+3 for n=2k, n≥2, with f(1)=1. Compute f(8).
Cevabı göster
29
Aşağıdan yukarı hesapla: f(2)=2⋅1+3=5, f(4)=2⋅5+3=13, f(8)=2⋅13+3=29. (Genel olarak f(n)=4n−3; n=8 için 29.)
Soru 7orta
Use the master theorem to give a big-O estimate for f(n)=4f(n/2)+n.
Cevabı göster
O(n2)
f(n)=af(n/b)+cnd biçiminde: a=4, b=2, d=1. bd=2 ve a=4>2. Bu durumda f(n)O(nlogba)=O(nlog24)=O(n2).
Soru 8orta
Use the master theorem to give a big-O estimate for f(n)=8f(n/2)+n3.
Cevabı göster
O(n3logn)
a=8, b=2, d=3. bd=23=8=a: eşitlik durumu. Sonuç O(ndlogn)=O(n3logn).
Soru 9orta
What is the coefficient of x5 in (1−x)31? What counting problem does it answer?
Cevabı göster
21
(1−x)n1 açılımında xk katsayısı C(n+k−1,k). Burada n=3, k=5: C(7,5)=21. Bu, x1+x2+x3=5 denkleminin negatif olmayan tam sayı çözümlerinin sayısıdır: her 1−x1 bir değişkenin 0,1,2,… değerlerini temsil eder.
Soru 10zor
Use a generating function to find the number of solutions of e1+e2+e3=6 with 1≤e1≤3, 0≤e2≤2, 0≤e3≤2.
Cevabı göster
3
Üreteç fonksiyon (x+x2+x3)(1+x+x2)2, aranan x6 katsayısı.(1+x+x2)2=1+2x+3x2+2x3+x4. x6 elde etmek için: x2⋅x4 (katsayı 1⋅1) ve x3⋅2x3 (katsayı 1⋅2). x1 ile x5 gerekir ama x5 yok. Toplam 1+2=3. (Liste: (2,2,2), (3,1,2), (3,2,1).)
Soru 11orta
Which sequences have generating functions (a) 1−2x1 and (b) (1−x)2x?
Cevabı göster
(a) ak=2k, (b) ak=k
(a) 1−ax1=∑akxk, burada a=2: 1,2,4,8,…(b) (1−x)21=∑(k+1)xk. x ile çarpmak diziyi bir sağa kaydırır: ∑kxk, yani 0,1,2,3,…
Soru 12zor
How many integers in {1,2,…,200} are divisible by none of 2, 3, 5?
Cevabı göster
54
Önce en az birine bölünenleri say (inclusion-exclusion): ⌊200/2⌋+⌊200/3⌋+⌊200/5⌋=100+66+40=206. İkililer: ⌊200/6⌋+⌊200/10⌋+⌊200/15⌋=33+20+13=66. Üçlü: ⌊200/30⌋=6.∣A∪B∪C∣=206−66+6=146. Hiçbirine bölünmeyen: 200−146=54.
Doğrulama: Tüm yinelemeler node ile 20 terim iterasyonla kapalı formla karşılaştırıldı; üreteç fonksiyon katsayıları polinom çarpımı ve kaba sayımla, içerme-dışlama sonuçları 1..N tek tek sayılarak doğrulandı (verify/MAT2033/11.mjs).
Deftere not kartı
Homojen: a_n = c1 a_{n-1} + c2 a_{n-2} -> r^2 - c1 r - c2 = 0
Farklı kökler r1, r2: a_n = A r1^n + B r2^n
Çift kök r: a_n = (A + B n) r^n (n'yi unutma!)
A, B: a0 ve a1'i yerine koy, 2 bilinmeyenli sistem
Homojen olmayan: a_n = a_n(h) + a_n(p); önce p bul, SONRA başlangıç koşulu
F(n) = sabit -> p = C; F(n) = s^n -> p = C s^n (s kök ise C n s^n)
Master: f(n) = a f(n/b) + c n^d
a < b^d -> O(n^d); a = b^d -> O(n^d log n); a > b^d -> O(n^{log_b a})
1/(1-x) = 1+x+x^2+... 1/(1-ax) -> a^k 1/(1-x)^n -> C(n+k-1, k)
Sınırlı değişken: (x^alt + ... + x^üst) çarpanı, istenen katsayıyı oku
IE (3 küme): |A|+|B|+|C| - |AB|-|AC|-|BC| + |ABC|
"hiçbiri" = toplam - |A u B u C|; k'ya bölünen sayısı = floor(N/k)