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.
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:
- Toplamı parçala: .
- 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.
- Geometrik toplamda terim sayısını say. ise terim.
- Sayılabilir = elemanları 1., 2., 3. diye tek tek sıralayabiliyorum.
- Algoritma izlerken her değişkeni tabloya yaz. Kafadan yapma.
Diziler (sequences)
Dizi: tam sayılardan (genelde ya da ) bir kümeye fonksiyon. ‘inci terimi .
| Tür | Kural | Örnek |
|---|---|---|
| Arithmetic progression | (, ) | |
| Geometric progression | (, ) | |
| Recurrence relation | önceki terimlerle | , |
| Fibonacci | , , |
Bir yineleme bağıntısını (recurrence relation) çözmek, ‘yi sadece cinsinden yazan bir closed formula bulmak demektir. Basit yöntem iterasyon: birkaç terimi yaz, kalıbı gör, tümevarımla doğrula. , için .
Terimlerden formül bulma sırası: farklar sabit mi (aritmetik)? Oranlar sabit mi (geometrik)? Kareler, küpler, , ile karşılaştır. Her terim öncekinin iki katı artı bir mi?
Toplamlar (summations)
index of summation, alt sınır, üst sınır. İndeksin adı önemsiz: .
Ezber formüller
| Toplam | Sonuç | Örnek |
|---|---|---|
| : | ||
| : | ||
| : | ||
| , |
Geometrik formülün neden doğru olduğunu bir kere gör: . . Çıkar: , yani . Ortadaki bütün terimler birbirini götürdü.
İndeks kaydırma (shifting the index)
‘yi ile yaz: , , terim .
Daha hızlısı: .
Ç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: . .
TUZAK · ‘de terim sayısı. ‘dan ‘a kadar terim var, 20 değil. Sabit terimin toplamında bu fark puan kaybettirir: .
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. ancak ‘dan ‘ye bir bijection varsa.
- Countable (sayılabilir): sonlu ya da ile aynı kardinalitede (countably infinite). Elemanlarını diye, hiçbirini atlamadan listeleyebilirsin.
- Uncountable (sayılamaz): sayılabilir değil.
Sonsuz otel sezgisi: stadyumda 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: . Sonsuz bir küme kendi öz alt kümesiyle aynı büyüklükte olabilir; sonlu kümelerde bu imkânsız.
- : sırayla listele (soru 8’deki fonksiyon).
- Pozitif rasyoneller : ‘ları 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.
sayılamaz: Cantor’un köşegen yöntemi
Teorem: aralığı sayılamaz (o yüzden de).
Kanıt fikri (çelişki ile): ‘deki bütün sayıların bir listesi olduğunu varsay. Listenin ‘inci sayısının ‘inci ondalık basamağına bak. Yeni bir sayı kur: ‘inci basamak, ‘inci sayının ‘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, 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: 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 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 :
| ? | ||||
|---|---|---|---|---|
| 1 | 10 | 5 | 16 | evet, |
| 6 | 10 | 8 | 56 | evet, |
| 9 | 10 | 9 | 72 | hayır, |
| 9 | 9 | döngü biter, , location 9 |
Her turda aralık yarıya indiği için yaklaşık 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 .
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üşünce | Doğrusu |
|---|---|
| ; 10 dahil | |
| ‘de üs 5 | Formülde ; 6 terim var |
| Toplam parçalanır, çarpılmaz | |
| Çift toplamda dış toplamı önce yapmak | İç toplam önce, dış indeks sabit |
| Sonsuz küme = sayılamaz | , sonsuz ama sayılabilir |
| Çift sayılar ‘dan küçük | Aynı kardinalite: |
| Binary search sırasız listede çalışır | Sıralı liste şart |
| Bubble sort sıralı listede daha az karşılaştırır | Bu sürümde her zaman |
| Açgözlü her zaman en iyisi | Karşı örnek: 25, 10, 1 ile 30 sent |
Kendini test et
Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.
Evaluate .
Cevabı göster
Toplamı parçala: . Sabitin toplamı = sabit × terim sayısı.
Evaluate .
Cevabı göster
Geometrik toplam, , , yani 6 terim: . Üs , çünkü sıfırdan başlıyor.
Evaluate .
Cevabı göster
Alt sınır 1 değil: . Çıkardığın toplam 9'a kadar, 10'a kadar değil. Kontrol: 21 terim, ortalama 20, .
Evaluate the double sum .
Cevabı göster
Önce iç toplam ( sabit): . Değerler için . Dış toplam: .
Let and for . List and guess a closed formula.
Cevabı göster
İterasyon: , , , . Hepsi 2'nin kuvvetinden bir eksik: eksi 1. Tahmin . (Tümevarımla ispatı: .)
Find a simple formula for the th term () of each sequence: (a) 3, 7, 11, 15, ... (b) 2, 6, 18, 54, ...
Cevabı göster
(a) Ardışık farklar sabit 4: aritmetik dizi, . (b) Ardışık oranlar sabit 3: geometrik dizi, . Önce farklara, sonra oranlara bak.
Evaluate .
Cevabı göster
, . Toplam .
Let be if is even and if is odd. Find . What does this function show?
Cevabı göster
, , , , . Liste : her tam sayı tam bir kez çıkıyor. Bu bir bijection, yani ve sayılabilir.
Which of these sets are countable? (a) the positive multiples of 7 (b) (c) the irrational numbers (d) the set of all finite bit strings.
Cevabı göster
(a) , ile bijection. (b) İkilileri değerine göre sırayla listele, her grup sonlu. (c) sayılamaz, sayılabilir; irrasyoneller de sayılabilir olsaydı sayılabilir olurdu. Çelişki. (d) Uzunluğa göre listele: uzunluk 0, sonra 1, sonra 2 ... (her uzunlukta tane, sonlu).
Apply binary search (with loop, , "if then else ") to find in 2, 5, 8, 12, 16, 23, 38, 56, 72, 91. Which elements are compared with , and what location is returned?
Cevabı göster
: , , → . , , değil → . , → . , , değil → . Şimdi , , location 6.
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
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ı .
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
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: para. Oysa 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).