MAT2033 · 5. hafta · sequences and sums, cardinality of sets, intoduction to algorithms

Diziler, toplamlar, kardinalite ve algoritmalara giriş

Aritmetik/geometrik diziler, Σ toplam formülleri ve çift toplam, sayılabilir ve sayılamaz kümeler (Cantor), sözde kod ile maksimum, doğrusal/ikili arama, bubble sort ve açgözlü algoritma.

sequencearithmetic progressiongeometric progressionrecurrence relationFibonacci sequenceclosed formulasummation notationindex of summationdouble summationproduct notationcardinalitycountableuncountableCantor diagonal argumentalgorithmpseudocodelinear searchbinary searchbubble sortinsertion sortgreedy algorithm

Bu hafta üç ayrı konu bir arada: diziler ve toplamlar (sequences and sums), kümelerin büyüklüğü (cardinality) ve algoritmalara giriş. Vizede toplam hesabı kesin bir puan kaynağıdır: hesap makinesi yok, o yüzden sayılar elle hesaplanacak kadar küçük olur ve formülleri bilmek yeter. Kardinaliteden genelde “bu küme sayılabilir mi, bijection ver” türü kısa bir parça gelir. Algoritmalar kısmı gelecek haftanın Big-O konusunun zemini: sözde kodu okuyup izlemeyi (trace) öğreneceksin.

Altın kurallar:

  1. Toplamı parçala: ∑(ak+b)=a∑k+∑b\sum (ak + b) = a\sum k + \sum b.
  2. Alt sınır 1 değilse: 1’den üst sınıra topla, 1’den (alt sınır − 1)‘e kadarını çıkar.
  3. Geometrik toplamda terim sayısını say. j=0..nj = 0..n ise n+1n + 1 terim.
  4. Sayılabilir = elemanları 1., 2., 3. diye tek tek sıralayabiliyorum.
  5. Algoritma izlerken her değişkeni tabloya yaz. Kafadan yapma.

Diziler (sequences)

Dizi: tam sayılardan (genelde {0,1,2,… }\{0, 1, 2, \dots\} ya da {1,2,3,… }\{1, 2, 3, \dots\}) bir kümeye fonksiyon. nn‘inci terimi ana_n.

TürKuralÖrnek
Arithmetic progressionan=a+nda_n = a + nd5,8,11,14,…5, 8, 11, 14, \dots (a=5a = 5, d=3d = 3)
Geometric progressionan=arna_n = a r^n3,6,12,24,…3, 6, 12, 24, \dots (a=3a = 3, r=2r = 2)
Recurrence relationana_n önceki terimlerlean=an−1+3a_n = a_{n-1} + 3, a0=5a_0 = 5
Fibonaccifn=fn−1+fn−2f_n = f_{n-1} + f_{n-2}, f0=0f_0 = 0, f1=1f_1 = 10,1,1,2,3,5,8,13,210, 1, 1, 2, 3, 5, 8, 13, 21

Bir yineleme bağıntısını (recurrence relation) çözmek, ana_n‘yi sadece nn cinsinden yazan bir closed formula bulmak demektir. Basit yöntem iterasyon: birkaç terimi yaz, kalıbı gör, tümevarımla doğrula. an=an−1+3a_n = a_{n-1} + 3, a0=5a_0 = 5 için an=5+3na_n = 5 + 3n.

Terimlerden formül bulma sırası: farklar sabit mi (aritmetik)? Oranlar sabit mi (geometrik)? Kareler, küpler, 2n2^n, n!n! ile karşılaştır. Her terim öncekinin iki katı artı bir mi?

Toplamlar (summations)

∑k=mnak=am+am+1+⋯+an\sum_{k=m}^{n} a_k = a_m + a_{m+1} + \dots + a_n

kk index of summation, mm alt sınır, nn üst sınır. İndeksin adı önemsiz: ∑k=15k2=∑j=15j2\sum_{k=1}^5 k^2 = \sum_{j=1}^5 j^2.

Ezber formüller

ToplamSonuçÖrnek
∑k=1nc\sum_{k=1}^{n} ccncn∑k=185=40\sum_{k=1}^{8} 5 = 40
∑k=1nk\sum_{k=1}^{n} kn(n+1)2\dfrac{n(n+1)}{2}n=100n = 100: 50505050
∑k=1nk2\sum_{k=1}^{n} k^2n(n+1)(2n+1)6\dfrac{n(n+1)(2n+1)}{6}n=10n = 10: 385385
∑k=1nk3\sum_{k=1}^{n} k^3(n(n+1)2)2\left(\dfrac{n(n+1)}{2}\right)^2n=4n = 4: 100100
∑j=0narj\sum_{j=0}^{n} ar^ja(rn+1−1)r−1\dfrac{a(r^{n+1} - 1)}{r - 1}, r≠1r \ne 1∑j=052⋅3j=728\sum_{j=0}^{5} 2 \cdot 3^j = 728

Geometrik formülün neden doğru olduğunu bir kere gör: S=a+ar+⋯+arnS = a + ar + \dots + ar^n. rS=ar+⋯+arn+1rS = ar + \dots + ar^{n+1}. Çıkar: rS−S=arn+1−arS - S = ar^{n+1} - a, yani S=a(rn+1−1)r−1S = \tfrac{a(r^{n+1} - 1)}{r - 1}. Ortadaki bütün terimler birbirini götürdü.

İndeks kaydırma (shifting the index)

∑k=48k2\sum_{k=4}^{8} k^2‘yi j=k−3j = k - 3 ile yaz: k=4⇒j=1k = 4 \Rightarrow j = 1, k=8⇒j=5k = 8 \Rightarrow j = 5, terim (j+3)2(j + 3)^2.

∑k=48k2=∑j=15(j+3)2=16+25+36+49+64=190.\sum_{k=4}^{8} k^2 = \sum_{j=1}^{5} (j+3)^2 = 16 + 25 + 36 + 49 + 64 = 190.

Daha hızlısı: ∑18k2−∑13k2=204−14=190\sum_{1}^{8} k^2 - \sum_{1}^{3} k^2 = 204 - 14 = 190.

Çift toplam ve çarpım

Çift toplamda iç toplamı önce hesapla (dış indeks sabitmiş gibi davran), sonra dış toplamı. Bu, iç içe iki for döngüsüyle aynı:

total := 0
for i := 1 to 3
    for j := 1 to 4
        total := total + (2i − j)

Çarpım gösterimi: ∏i=142i=2⋅4⋅6⋅8=384\prod_{i=1}^{4} 2i = 2 \cdot 4 \cdot 6 \cdot 8 = 384. n!=∏i=1nin! = \prod_{i=1}^{n} i.

TUZAK · ∑k=mn\sum_{k=m}^{n}‘de terim sayısı. k=10k = 10‘dan 3030‘a kadar 30−10+1=2130 - 10 + 1 = 21 terim var, 20 değil. Sabit terimin toplamında bu fark puan kaybettirir: ∑k=10302=42\sum_{k=10}^{30} 2 = 42.

Kardinalite (cardinality)

Sonlu kümelerde büyüklük eleman sayısıdır. Sonsuz kümeleri karşılaştırmak için sayamazsın; bunun yerine eşleştirirsin. ∣A∣=∣B∣\lvert A \rvert = \lvert B \rvert ancak AA‘dan BB‘ye bir bijection varsa.

  • Countable (sayılabilir): sonlu ya da Z+\mathbb{Z}^+ ile aynı kardinalitede (countably infinite). Elemanlarını a1,a2,a3,…a_1, a_2, a_3, \dots diye, hiçbirini atlamadan listeleyebilirsin.
  • Uncountable (sayılamaz): sayılabilir değil.

Sonsuz otel sezgisi: stadyumda 1,2,3,…1, 2, 3, \dots diye numaralanmış sonsuz koltuk var. Kümenin her elemanına bir koltuk verebiliyorsan (kimse açıkta kalmadan, iki kişi aynı koltuğa oturmadan) küme sayılabilir.

Sayılabilir kümeler

  • Pozitif çift sayılar: f(n)=2nf(n) = 2n. Sonsuz bir küme kendi öz alt kümesiyle aynı büyüklükte olabilir; sonlu kümelerde bu imkânsız.
  • Z\mathbb{Z}: sırayla 0,1,−1,2,−2,3,−3,…0, 1, -1, 2, -2, 3, -3, \dots listele (soru 8’deki fonksiyon).
  • Pozitif rasyoneller Q+\mathbb{Q}^+: p/qp/q‘ları p+qp + q toplamına göre grupla. Her grup sonlu. Sadeleşmeyen kesirleri sırayla yaz, tekrar edenleri atla:
p+q = 2:  1/1
p+q = 3:  1/2, 2/1
p+q = 4:  1/3, 3/1           (2/2 = 1/1 atlandı)
p+q = 5:  1/4, 2/3, 3/2, 4/1
p+q = 6:  1/5, ...
Liste: 1/1, 1/2, 2/1, 1/3, 3/1, 1/4, 2/3, 3/2, 4/1, 1/5, ...

Sayılabilir iki kümenin birleşimi ve sonlu ya da sayılabilir sayıda sayılabilir kümenin birleşimi sayılabilir.

R\mathbb{R} sayılamaz: Cantor’un köşegen yöntemi

Teorem: (0,1)(0, 1) aralığı sayılamaz (o yüzden R\mathbb{R} de).

Kanıt fikri (çelişki ile): (0,1)(0, 1)‘deki bütün sayıların bir listesi olduğunu varsay. Listenin ii‘inci sayısının ii‘inci ondalık basamağına bak. Yeni bir sayı kur: ii‘inci basamak, ii‘inci sayının ii‘inci basamağı 5 değilse 5, 5 ise 4. Bu sayı listedeki her sayıdan en az bir basamakta farklı, yani listede yok. Çelişki.

r1 = 0.[3]1415          köşegen basamakları: 3, 7, 1, 2, 4
r2 = 0.2[7]182          hiçbiri 5 değil → hepsini 5 yap
r3 = 0.14[1]42          yeni sayı: 0.55555...
r4 = 0.577[2]1          r_i'den i'inci basamakta farklı
r5 = 0.6931[4]

(Gerçek ispatta liste sonsuz ve her sayının sonsuz basamağı var; 5 ve 4 seçmek 0.4999… = 0.5 gibi çift gösterim sorununu önler.)

Sonuçlar: irrasyonel sayılar sayılamaz, P(Z+)\mathcal{P}(\mathbb{Z}^+) sayılamaz. Bir alt kümesi sayılamaz olan küme de sayılamazdır.

Algoritmalara giriş

Algoritma: bir problemi çözmek için sonlu, kesin adımlar dizisi. Özellikleri: input, output, definiteness (her adım net), correctness (doğru sonuç), finiteness (sonlu adımda biter), effectiveness (her adım yapılabilir), generality (bir problem sınıfının tümüne uygulanır).

Maksimum bulma

procedure max(a1, a2, ..., an: integers)
max := a1
for i := 2 to n
    if max < ai then max := ai
return max

İz: 4, 9, 2, 11, 7 için max sırasıyla 4, 9, 9, 11, 11. Her eleman bir kez karşılaştırılır: n−1n - 1 karşılaştırma.

Doğrusal arama ve ikili arama

Linear search: baştan sona tek tek bak. Liste sırasız olabilir. En kötü durumda nn elemanla karşılaştırma.

Binary search: liste sıralı olmalı. Her adımda aralığı ikiye böler:

procedure binary search(x: integer, a1 < a2 < ... < an)
i := 1; j := n
while i < j
    m := ⌊(i + j)/2⌋
    if x > am then i := m + 1
    else j := m
if x = ai then location := i else location := 0
return location

İz: 2, 5, 8, 12, 16, 23, 38, 56, 72, 91 listesinde x=72x = 72:

iijjmmama_mx>amx > a_m?
110516evet, i=6i = 6
610856evet, i=9i = 9
910972hayır, j=9j = 9
99döngü biter, a9=72a_9 = 72, location 9

Her turda aralık yarıya indiği için yaklaşık log⁡2n\log_2 n tur yeter. 1.000.000 elemanda bile 20 civarı.

Sıralama: bubble sort ve insertion sort

Bubble sort: komşu elemanları karşılaştır, sıra bozuksa yer değiştir. Her geçişin sonunda en büyük kalan eleman sona yerleşir.

3, 2, 4, 1, 5
pass 1:  2, 3, 1, 4, 5      (5 zaten yerinde, 4 yerine oturdu)
pass 2:  2, 1, 3, 4, 5
pass 3:  1, 2, 3, 4, 5

Karşılaştırma sayısı her durumda (n−1)+(n−2)+⋯+1=n(n−1)2(n-1) + (n-2) + \dots + 1 = \tfrac{n(n-1)}{2}.

Insertion sort: soldaki kısmı sıralı tut, sıradaki elemanı doğru yere sok. Kâğıt oyununda eldeki kartları dizmek gibi.

Açgözlü algoritma (greedy algorithm)

Her adımda o an en iyi görünen seçimi yap. Para üstü: sığan en büyük madeni parayı ver. 25, 10, 5, 1 sentlik paralarla açgözlü algoritma her zaman en az parayı verir (bu ispatlanabilir). Ama para seti değişince bozulabilir: 25, 10, 1 ile 30 sent için açgözlü 6 para verir, oysa 3 tane 10’luk yeter. “Açgözlü algoritma optimal mi?” sorusuna cevap ya ispat ya karşı örnektir.

Sık yapılan hatalar

Yanlış düşünceDoğrusu
∑k=1030k=∑130−∑110\sum_{k=10}^{30} k = \sum_1^{30} - \sum_1^{10}∑130−∑19\sum_1^{30} - \sum_1^{9}; 10 dahil
∑j=05rj\sum_{j=0}^{5} r^j‘de üs 5Formülde rn+1=r6r^{n+1} = r^6; 6 terim var
∑(k2+k)=∑k2⋅∑k\sum (k^2 + k) = \sum k^2 \cdot \sum kToplam parçalanır, çarpılmaz
Çift toplamda dış toplamı önce yapmakİç toplam önce, dış indeks sabit
Sonsuz küme = sayılamazZ\mathbb{Z}, Q\mathbb{Q} sonsuz ama sayılabilir
Çift sayılar Z+\mathbb{Z}^+‘dan küçükAynı kardinalite: f(n)=2nf(n) = 2n
Binary search sırasız listede çalışırSıralı liste şart
Bubble sort sıralı listede daha az karşılaştırırBu sürümde her zaman n(n−1)/2n(n-1)/2
Açgözlü her zaman en iyisiKarşı örnek: 25, 10, 1 ile 30 sent

Kendini test et

Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.

Soru 1kolay

Evaluate ∑k=120(3k−2)\displaystyle\sum_{k=1}^{20} (3k - 2).

Cevabı göster
590

Toplamı parçala: 3∑k=120k−∑k=1202=3⋅20⋅212−2⋅20=3⋅210−40=5903\sum_{k=1}^{20} k - \sum_{k=1}^{20} 2 = 3 \cdot \tfrac{20 \cdot 21}{2} - 2 \cdot 20 = 3 \cdot 210 - 40 = 590. Sabitin toplamı = sabit × terim sayısı.

Soru 2kolay

Evaluate ∑j=052⋅3j\displaystyle\sum_{j=0}^{5} 2 \cdot 3^j.

Cevabı göster
728

Geometrik toplam, a=2a = 2, r=3r = 3, j=0..5j = 0..5 yani 6 terim: a(rn+1−1)r−1=2(36−1)2=729−1=728\tfrac{a(r^{n+1} - 1)}{r - 1} = \tfrac{2(3^6 - 1)}{2} = 729 - 1 = 728. Üs n+1=6n + 1 = 6, çünkü jj sıfırdan başlıyor.

Soru 3orta

Evaluate ∑k=1030k\displaystyle\sum_{k=10}^{30} k.

Cevabı göster
420

Alt sınır 1 değil: ∑k=1030k=∑k=130k−∑k=19k=465−45=420\sum_{k=10}^{30} k = \sum_{k=1}^{30} k - \sum_{k=1}^{9} k = 465 - 45 = 420. Çıkardığın toplam 9'a kadar, 10'a kadar değil. Kontrol: 21 terim, ortalama 20, 21⋅20=42021 \cdot 20 = 420.

Soru 4orta

Evaluate the double sum ∑i=13∑j=14(2i−j)\displaystyle\sum_{i=1}^{3} \sum_{j=1}^{4} (2i - j).

Cevabı göster
18

Önce iç toplam (ii sabit): ∑j=14(2i−j)=4⋅2i−(1+2+3+4)=8i−10\sum_{j=1}^{4}(2i - j) = 4 \cdot 2i - (1+2+3+4) = 8i - 10. Değerler i=1,2,3i = 1, 2, 3 için −2,6,14-2, 6, 14. Dış toplam: −2+6+14=18-2 + 6 + 14 = 18.

Soru 5kolay

Let a0=1a_0 = 1 and an=2an−1+1a_n = 2a_{n-1} + 1 for n≥1n \ge 1. List a0,…,a4a_0, \dots, a_4 and guess a closed formula.

Cevabı göster
1, 3, 7, 15, 31; a_n = 2^(n+1) − 1

İterasyon: a1=2⋅1+1=3a_1 = 2 \cdot 1 + 1 = 3, a2=7a_2 = 7, a3=15a_3 = 15, a4=31a_4 = 31. Hepsi 2'nin kuvvetinden bir eksik: 2,4,8,16,322, 4, 8, 16, 32 eksi 1. Tahmin an=2n+1−1a_n = 2^{n+1} - 1. (Tümevarımla ispatı: 2(2k+1−1)+1=2k+2−12(2^{k+1} - 1) + 1 = 2^{k+2} - 1.)

Soru 6orta

Find a simple formula for the nnth term (n≥1n \ge 1) of each sequence: (a) 3, 7, 11, 15, ... (b) 2, 6, 18, 54, ...

Cevabı göster
(a) a_n = 4n − 1 (b) a_n = 2 · 3^(n−1)

(a) Ardışık farklar sabit 4: aritmetik dizi, an=3+4(n−1)=4n−1a_n = 3 + 4(n - 1) = 4n - 1. (b) Ardışık oranlar sabit 3: geometrik dizi, an=2⋅3n−1a_n = 2 \cdot 3^{n-1}. Önce farklara, sonra oranlara bak.

Soru 7orta

Evaluate ∑k=110(k2+k)\displaystyle\sum_{k=1}^{10} (k^2 + k).

Cevabı göster
440

∑k2=n(n+1)(2n+1)6=10⋅11⋅216=385\sum k^2 = \tfrac{n(n+1)(2n+1)}{6} = \tfrac{10 \cdot 11 \cdot 21}{6} = 385, ∑k=55\sum k = 55. Toplam 385+55=440385 + 55 = 440.

Soru 8orta

Let f:Z+→Zf: \mathbb{Z}^+ \to \mathbb{Z} be f(n)=n/2f(n) = n/2 if nn is even and f(n)=−(n−1)/2f(n) = -(n-1)/2 if nn is odd. Find f(1),f(2),f(3),f(7),f(10)f(1), f(2), f(3), f(7), f(10). What does this function show?

Cevabı göster
0, 1, −1, −3, 5; it is a bijection, so Z is countable

f(1)=0f(1) = 0, f(2)=1f(2) = 1, f(3)=−1f(3) = -1, f(7)=−3f(7) = -3, f(10)=5f(10) = 5. Liste 0,1,−1,2,−2,3,…0, 1, -1, 2, -2, 3, \dots: her tam sayı tam bir kez çıkıyor. Bu bir bijection, yani ∣Z∣=∣Z+∣\lvert \mathbb{Z} \rvert = \lvert \mathbb{Z}^+ \rvert ve Z\mathbb{Z} sayılabilir.

Soru 9zor

Which of these sets are countable? (a) the positive multiples of 7 (b) Z×Z\mathbb{Z} \times \mathbb{Z} (c) the irrational numbers (d) the set of all finite bit strings.

Cevabı göster
(a) countable (b) countable (c) uncountable (d) countable

(a) f(n)=7nf(n) = 7n, Z+\mathbb{Z}^+ ile bijection. (b) İkilileri ∣x∣+∣y∣\lvert x \rvert + \lvert y \rvert değerine göre sırayla listele, her grup sonlu. (c) R\mathbb{R} sayılamaz, Q\mathbb{Q} sayılabilir; irrasyoneller de sayılabilir olsaydı R=Q∪irrasyoneller\mathbb{R} = \mathbb{Q} \cup \text{irrasyoneller} sayılabilir olurdu. Çelişki. (d) Uzunluğa göre listele: uzunluk 0, sonra 1, sonra 2 ... (her uzunlukta 2k2^k tane, sonlu).

Soru 10orta

Apply binary search (with i<ji < j loop, m=⌊(i+j)/2⌋m = \lfloor (i+j)/2 \rfloor, "if x>amx > a_m then i:=m+1i := m+1 else j:=mj := m") to find x=23x = 23 in 2, 5, 8, 12, 16, 23, 38, 56, 72, 91. Which elements are compared with xx, and what location is returned?

Cevabı göster
Midpoints 16, 56, 38, 23; location 6

i=1,j=10i = 1, j = 10: m=5m = 5, a5=16a_5 = 16, 23>1623 > 16 → i=6i = 6. m=8m = 8, a8=56a_8 = 56, değil → j=8j = 8. m=7m = 7, a7=38a_7 = 38 → j=7j = 7. m=6m = 6, a6=23a_6 = 23, 23>2323 > 23 değil → j=6j = 6. Şimdi i=j=6i = j = 6, a6=23=xa_6 = 23 = x, location 6.

Soru 11orta

Apply bubble sort to 5, 1, 4, 2, 8. Give the list after the first pass and after the second pass. How many comparisons does bubble sort make on a list of 5 elements?

Cevabı göster
Pass 1: 1, 4, 2, 5, 8; pass 2: 1, 2, 4, 5, 8; 10 comparisons

1. geçiş: (5,1) değiş → 1,5,4,2,8; (5,4) değiş → 1,4,5,2,8; (5,2) değiş → 1,4,2,5,8; (5,8) kalır. En büyük eleman sona oturdu. 2. geçiş: (1,4) kalır, (4,2) değiş → 1,2,4,5,8; (4,5) kalır. Karşılaştırma sayısı (n−1)+(n−2)+⋯+1=n(n−1)2=10(n-1) + (n-2) + \dots + 1 = \tfrac{n(n-1)}{2} = 10.

Soru 12zor

Using the greedy algorithm with coins of 25, 10, 5 and 1 cents, make change for 67 cents. Then show that with coins of 25, 10 and 1 cents only, the greedy algorithm does not give the fewest coins for 30 cents.

Cevabı göster
67 = 25+25+10+5+1+1 (6 coins); for 30: greedy uses 6 coins, but 3 dimes suffice

Açgözlü: her adımda sığan en büyük madeni para. 67 → 25 (42) → 25 (17) → 10 (7) → 5 (2) → 1 → 1: 6 para. 5 sentlik olmadan 30: açgözlü 25 alır, kalan 5'i 1'liklerle verir: 1+5=61 + 5 = 6 para. Oysa 10+10+1010 + 10 + 10 3 para. Açgözlü her zaman optimal değildir; tek bir karşı örnek bunu gösterir.

Doğrulama: Bütün toplamlar hem formülle hem tek tek toplanarak, dizi terimleri iterasyonla, Z+ → Z eşlemesi -1000..1000 penceresinde, ikili arama ve bubble sort izleri kod çalıştırılarak, açgözlü para üstü dinamik programlamayla karşılaştırılarak node ile kontrol edildi (verify/MAT2033/05.mjs).

Deftere not kartı

Aritmetik: a_n = a + nd (fark sabit) Geometrik: a_n = a·r^n (oran sabit) Σ_{k=1}^n k = n(n+1)/2 Σ k² = n(n+1)(2n+1)/6 Σ k³ = [n(n+1)/2]² Σ_{j=0}^n ar^j = a(r^(n+1) − 1)/(r − 1), r ≠ 1 (j=0'dan: n+1 terim) Σ_{k=m}^n = Σ_{1}^n − Σ_{1}^{m−1} (m−1'e kadar çıkar!) Σ c = c·(terim sayısı) Σ(ak+b) = aΣk + Σb çift toplam: önce iç ∏ çarpım: ∏_{i=1}^4 2i = 384 |A|=|B| ⇔ bijection var. Countable: sonlu ya da Z+ ile bijection Countable: N, Z (0,1,−1,2,−2,...), Q+, Z×Z, sonlu bit dizileri Uncountable: R, (0,1) (Cantor köşegen), irrasyoneller, P(Z+) Algoritma özellikleri: input, output, definiteness, correctness, finiteness, effectiveness, generality Linear search en kötü n karşılaştırma; binary search sıralı liste ister, ~log2 n adım Bubble sort: n(n−1)/2 karşılaştırma, her geçişte en büyük sona Greedy: her adımda en iyi yerel seçim, optimal olmayabilir (25,10,1 ile 30)