Sayfalara Git
Sayfa 99: Konuya Başlarken
Königsberg Köprüleri Problemi ve Algoritma
Königsberg Köprüleri Problemi
İsviçreli matematikçi Euler (Öyler), Pregel (Pregil) Nehri üzerinde yedi köprünün yer aldığı Königsberg (Könisberk) şehrinde 1736'da bir yürüyüş rotası problemi üzerine çalışmıştır. Bu bağlamda Pregel Nehri ve civarını gösteren güncel uydu görüntüsü Görsel 1'de verilmiştir.
Euler şehrin köprülerini, yürüyüş yollarını ve A noktasının üzerinde olduğu adayı modellemiştir (Görsel 2). Her köprüden yalnızca bir kez geçmek şartıyla başlangıç noktasına dönmenin mümkün olup olmadığını araştırmıştır.
Görsel 1: Pregel Nehri ve Königsberg şehri (Güncel uydu görüntüsü)
Görsel 2: Euler'in modellemesi (A, B, C, D noktaları ve 7 köprü)
Rota Oluşturulabilir mi?
Görsel 2'de verilen $A, B, C$ ve $D$ noktalarından birini başlangıç noktası olarak belirleyiniz. Başladığınız noktaya dönmek için yedi köprüyü kullanarak her köprüden yalnızca bir kez geçmek şartıyla bir rota oluşturulabilir mi? Açıklayınız.
Hayır, oluşturulamaz. Euler bu problemi çözerken her noktaya gelen köprü sayısını incelemiştir. $A$ noktasına 5 köprü, $B$ noktasına 3 köprü, $C$ noktasına 3 köprü ve $D$ noktasına 3 köprü bağlanmaktadır. Tek bir çizgi ile (kalemi kaldırmadan) tüm köprüleri geçip başlangıç noktasına dönmek için tüm noktaların derecesinin (gelen köprü sayısı) çift olması gerekir. Ancak burada $A$ noktasının derecesi 5 (tek) olduğu için bu mümkün değildir.
Başlangıç Noktasının Etkisi
Seçtiğiniz başlangıç noktasının rotanız üzerindeki etkisini değerlendiriniz.
Başlangıç noktası seçimi, rotanın mümkün olup olmadığını değiştirmez. Tek dereceli nokta ($A$) olduğu sürece hiçbir başlangıç noktası ile tüm köprüler tekrar edilmeden geçilip başlangıca dönülemez. Eğer tüm noktaların derecesi çift olsaydı, herhangi bir noktadan başlanıp yine o noktada bitebilirdi.
Köprü Sayılarının Etkisi
Görsel 2'de bazı noktaların daha fazla köprüyle bağlantılı olduğu görülmektedir. Bu durumun başladığınız noktaya dönebilmek için izleyeceğiniz rotayı nasıl etkilediğini açıklayınız.
Bir noktaya gelen köprü sayısı (derece) tek ise, o nokta rotanın başlangıcı veya bitişi olmak zorundadır. Eğer başlangıca dönülmesi isteniyorsa tüm noktaların derecesi çift olmalıdır. Bu problemde $A$ noktasına 5 köprü bağlandığı için (tek derece), bu nokta ya başlangıç ya da bitiş noktası olabilir. Ancak hem başlangıca dönme şartı hem de $A$'nın tek dereceli olması çelişki oluşturur. Bu nedenle rota mümkün değildir.
Euler'in Yöntemi ve Algoritma
Euler bu soruyu çözerken nasıl bir yol izlemiş olabilir? Euler'in çalışmasından hareketle algoritma kelimesinin kökeninin ne olabileceğini tartışınız.
Euler problemi soyutlayarak (modelleyerek) çözmüştür. Şehri ve köprüleri bir çizge (graf) olarak temsil etmiş, noktaların derecelerini hesaplayarak sonuca ulaşmıştır. Bu yaklaşım, bir problemi çözmek için izlenen adımların sistematik hali olan algoritma kavramının temelini oluşturur. "Algoritma" kelimesi, 9. yüzyılda yaşamış olan Harezmî (El-Harezmi) adlı matematikçinin isminin Latince'ye uyarlanmış halidir. Euler'in bu sistematik yaklaşımı, günümüzdeki algoritma ve bilgisayar biliminin öncüsü sayılır.
Temel Çıkarım
Königsberg Köprüleri Problemi, çizge teorisi ve algoritma kavramlarının temelini oluşturur. Euler'in sistematik yaklaşımı, bir problemi çözmek için izlenen adımların önemini vurgular. Bir rotanın mümkün olup olmadığını belirlemek için noktaların derecelerini incelemek yeterlidir: Tüm noktaların derecesi çift ise rota mümkündür.
Sayfa 100: 1. Uygulama
Para Üstü Hesaplama - Algoritma ve Akış Şeması
Problem
Bir kitapçıda satılan bir kitabın fiyatı 68 TL'dir. Kitabı satın alan müşteri kasiyere 200 TL vermiştir. Yazar kasada bulunan kâğıt ve madenî paralar: 1 TL, 5 TL, 10 TL, 20 TL, 50 TL, 100 TL ve 200 TL'dir.
Para üstü hesaplama sürecini inceleyelim.
1. Temel Matematiksel İşlemler ve Karar Adımları
Kitap satın alımı ve para üstü hesaplama sürecindeki temel matematiksel işlemleri ve karar adımlarını belirleyiniz.
Temel Matematiksel İşlemler:
- Çıkarma: Para üstü = Verilen para - Ürün fiyatı
- Bölme: Kalan para üstünü banknotlara bölme
- Mod Alma: Kalan para üstünü güncelleme
Karar Adımları:
- Verilen para, ürün fiyatından büyük mü? (Para üstü pozitif mi?)
- Hangi banknot/madeni para kullanılacak? (En büyükten başlayarak)
- Kalan para üstü sıfır olana kadar devam et.
2. Liste / Tablo Temsili
Para üstü hesaplamasını yaparken müşteriye verilecek kâğıt ve madenî paraların sayısını liste veya tablo temsili yardımıyla belirleyiniz.
Para Üstü: 200 - 68 = 132 TL
| Banknot / Madeni Para | Değer (TL) | Adet | Toplam (TL) |
|---|---|---|---|
| 200 TL | 200 | 0 | 0 |
| 100 TL | 100 | 1 | 100 |
| 50 TL | 50 | 0 | 0 |
| 20 TL | 20 | 1 | 20 |
| 10 TL | 10 | 1 | 10 |
| 5 TL | 5 | 0 | 0 |
| 1 TL | 1 | 2 | 2 |
| Toplam Para Üstü | 132 TL | ||
Müşteriye verilecek para: 1 adet 100 TL, 1 adet 20 TL, 1 adet 10 TL, 2 adet 1 TL
3. Sıralı İşlem Adımları
Liste veya tablodaki bilgileri sıralı işlem adımlarına dönüştürünüz.
4. Akış Şeması
Belirlediğiniz işlem adımlarını para üstü verme sürecini gösterecek şekilde akış şeması üzerinde gösteriniz.
5. 100 TL Banknot Olmadığı Durum
Kasada 100 TL'lik banknot bulunmadığı durumda 2, 3 ve 4. soruda yer alan basamakları yeniden oluşturunuz.
100 TL yoksa: Para üstü 132 TL'den en büyük mevcut banknot 50 TL'dir.
| Banknot / Madeni Para | Değer (TL) | Adet | Toplam (TL) |
|---|---|---|---|
| 50 TL | 50 | 2 | 100 |
| 20 TL | 20 | 1 | 20 |
| 10 TL | 10 | 1 | 10 |
| 1 TL | 1 | 2 | 2 |
| Toplam Para Üstü | 132 TL | ||
6-9. Genel Değerlendirme
6. Genel Şema:
Her bir kâğıt paranın kasada olup olmama durumunu dikkate alan genel şema:
- En büyük banknottan başla (200 TL)
- Eğer banknot kasada varsa ve para üstü bu banknottan büyük veya eşitse kullan
- Yoksa veya para üstü küçükse bir sonraki banknota geç
- Para üstü 0 olana kadar devam et
7. Kontrol:
132 TL para üstü için: 100+20+10+1+1 = 132 TL. Doğrulama başarılı.
8. Yöntemlerin Avantajları:
- Liste: Basit, hızlı, kolay anlaşılır.
- Tablo: Düzenli, sütunlar halinde karşılaştırma imkanı.
- Akış Şeması: Adımları görselleştirir, algoritma mantığını gösterir.
9. En Sistematik ve Etkili Yöntem:
Akış şeması en sistematik ve etkili yöntemdir. Çünkü karar adımlarını, döngüleri ve koşulları görsel olarak gösterir. Algoritma geliştirme ve programlamaya en uygun yöntemdir.
Sayfa 101-102: 2. Uygulama
Doğrusal Fonksiyonun Sıfırını Algoritmik Yaklaşımla Bulma
Problem
$f: \mathbb{R} \to \mathbb{R}$, $f(x) = 3x + 6$ şeklinde tanımlı doğrusal fonksiyon veriliyor.
Doğrusal fonksiyonun sıfırını algoritmik yaklaşımla bulalım.
1. Adımlar ve İşlemler
$f$ doğrusal fonksiyonunun sıfırını bulmak için gereken adımları ve işlemleri belirleyiniz.
Adımlar:
- Adım 1: Fonksiyonu sıfıra eşitle: $f(x) = 0$
- Adım 2: Denklemi yaz: $3x + 6 = 0$
- Adım 3: Sabit terimi karşıya at: $3x = -6$
- Adım 4: Her iki tarafı katsayıya böl: $x = -2$
- Adım 5: Sonucu kontrol et: $f(-2) = 3(-2) + 6 = 0$
Kullanılan İşlemler: Eşitlik, denklem çözme, bölme, kontrol.
2. Cebirsel ve Grafik Temsiller
$f$ doğrusal fonksiyonunun sıfırını cebirsel ve grafik temsilleri yardımıyla belirleyiniz.
Cebirsel Temsil:
$3x = -6$
$x = -2$
Fonksiyonun sıfırı: $x = -2$
Grafik Temsil:
- $x$-ekseni kesim noktası: $(-2, 0)$
- $y$-ekseni kesim noktası: $(0, 6)$
Grafikte $x$-eksenini kestiği nokta sıfırdır.
$f(x) = 3x + 6$ grafiği ve sıfır noktası $(-2, 0)$
3. Sıralı İşlem Adımları
Her bir temsildeki bilgileri sıralı işlem adımlarına dönüştürünüz.
Cebirsel Temsil İşlem Adımları:
Grafik Temsil İşlem Adımları:
4. Akış Şeması
Belirlediğiniz işlem adımlarını aşağıdaki şemada gösteriniz.
Cebirsel Temsil Akış Şeması
Grafik Temsil Akış Şeması
5. Genel Fonksiyon için Çözüm
$\forall a, b \in \mathbb{R}$, $g: \mathbb{R} \to \mathbb{R}$, $g(x) = ax + b$ şeklinde tanımlı doğrusal fonksiyonun sıfırını bulmak için 2, 3 ve 4. soruda yer alan basamakları yeniden oluşturunuz.
Genel Çözüm Adımları:
6. Genel Akış Şeması
Her $a$ ve $b$ değeri için $g$ doğrusal fonksiyonunun sıfırını bulmanın genel bir şemasını oluşturunuz.
7. Kontrol
Şemanızın adımlarının her $a$ ve $b$ değeri için $g$ doğrusal fonksiyonunun sıfırını buldurup buldurmadığını kontrol ediniz.
| $a$ | $b$ | $g(x)$ | Beklenen Sıfır | Bulunan Sıfır | Kontrol |
|---|---|---|---|---|---|
| 3 | 6 | $3x+6$ | $-2$ | $-2$ | ✓ |
| 2 | 4 | $2x+4$ | $-2$ | $-2$ | ✓ |
| 5 | 10 | $5x+10$ | $-2$ | $-2$ | ✓ |
| 1 | -3 | $x-3$ | $3$ | $3$ | ✓ |
| 0 | 5 | $5$ | Yok | Yok | ✓ |
| 0 | 0 | $0$ | Tüm reel | Tüm reel | ✓ |
Şema tüm durumlar için doğru sonuç vermektedir.
8-9. Yöntem Değerlendirmesi
8. Yöntemlerin Avantajları:
- Cebirsel Yöntem: Kesin sonuç verir, hızlıdır, genellenebilir.
- Grafik Yöntem: Görseldir, kavramayı kolaylaştırır, fonksiyonun davranışını gösterir.
9. En Sistematik ve Etkili Yöntem:
Cebirsel yöntem daha sistematik ve etkilidir. Çünkü her $a$ ve $b$ değeri için tek bir formül ($x = -b/a$) ile sonuç bulunur. Grafik yöntem ise anlaşılması kolay olsa da her durumda çizim gerektirir ve yaklaşık sonuç verebilir. Algoritma geliştirme için cebirsel yöntem daha uygundur.
Sayfa 107: 1. Sıra Sizde
Vücut Kitle İndeksi (VKİ) Hesaplama Algoritması
Vücut Kitle İndeksi (VKİ) Kategorileri
| VKİ Aralığı | Sağlık Durumu Kategorisi |
|---|---|
| VKİ ≤ 18,5 | Düşük kilolu |
| 18,5 < VKİ ≤ 25 | Normal kilolu |
| 25 < VKİ ≤ 30 | Fazla kilolu |
| VKİ > 30 | Obezite |
VKİ = kilo (kg) / boy² (m²)
a) Akış Şeması Tamamlama
Şemada boş bırakılan alanları gerekli sembol, metin ve matematiksel ifadelerle tamamlayınız.
Algoritmik Doğal Dil
- Başla
- Kilo ve boy değerlerini oku
- VKİ = kilo / boy² hesapla
- Eğer VKİ ≤ 18,5 ise "Düşük kilolu" yaz
- Değilse eğer 18,5 < VKİ ≤ 25 ise "Normal kilolu" yaz
- Değilse eğer 25 < VKİ ≤ 30 ise "Fazla kilolu" yaz
- Değilse "Obezite" yaz
- Bitir
Sözde Kod
1: BAŞLA 2: OKU kilo, boy 3: VKİ = kilo / (boy * boy) 4: EĞER VKİ ≤ 18,5 İSE 5: YAZ "Düşük kilolu" 6: DEĞİLSE EĞER 18,5 < VKİ VE VKİ ≤ 25 İSE 7: YAZ "Normal kilolu" 8: DEĞİLSE EĞER 25 < VKİ VE VKİ ≤ 30 İSE 9: YAZ "Fazla kilolu" 10: DEĞİLSE 11: YAZ "Obezite" 12: BİTİR
c) Algoritmayı Test Etme
Verilen boy ve kilo değerlerini kullanarak algoritmayı test ediniz.
| Boy (m) | Kilo (kg) | VKİ (kg/m²) | Kategori |
|---|---|---|---|
| 1,67 | 60 | 60 / (1,67)² = 60 / 2,7889 ≈ 21,51 | Normal kilolu |
| 1,93 | 80 | 80 / (1,93)² = 80 / 3,7249 ≈ 21,48 | Normal kilolu |
| 1,75 | 120 | 120 / (1,75)² = 120 / 3,0625 ≈ 39,18 | Obezite |
80 kg / 1.93 m → VKİ ≈ 21.48 → Normal kilolu
120 kg / 1.75 m → VKİ ≈ 39.18 → Obezite
Sayfa 110: 2. Sıra Sizde
Bölünebilme Algoritmaları – Doğal Sayılarda 2 ve 4'e Tam Bölünme Kontrolü
2. Sıra Sizde
Aşağıda istenen algoritmaların işleyişlerini algoritmik doğal dil yardımıyla ifade ediniz.
- a) Bir doğal sayının 2'ye tam bölünüp bölünmediğini bulan algoritma
- b) Bir doğal sayının 4'e tam bölünüp bölünmediğini bulan algoritma
a) 2'ye Tam Bölünebilme Algoritması
Bir doğal sayının 2'ye tam bölünüp bölünmediğini bulan algoritmanın algoritmik doğal dil ifadesi:
1: BAŞLA 2: OKU n 3: EĞER n mod 2 = 0 İSE 4: YAZ n, " sayısı 2'ye tam bölünür" 5: DEĞİLSE 6: YAZ n, " sayısı 2'ye tam bölünmez" 7: BİTİR
b) 4'e Tam Bölünebilme Algoritması
Bir doğal sayının 4'e tam bölünüp bölünmediğini bulan algoritmanın algoritmik doğal dil ifadesi:
1: BAŞLA 2: OKU n 3: EĞER n mod 4 = 0 İSE 4: YAZ n, " sayısı 4'e tam bölünür" 5: DEĞİLSE 6: YAZ n, " sayısı 4'e tam bölünmez" 7: BİTİR
Algoritmaların Karşılaştırması
| Özellik | 2'ye Bölünebilme | 4'e Bölünebilme |
|---|---|---|
| Kontrol Koşulu | n mod 2 = 0 |
n mod 4 = 0 |
| Alternatif Kural | Son rakam çift (0,2,4,6,8) | Son iki rakam 4'ün katı |
| Örnek (12) | 12 mod 2 = 0 → Bölünür | 12 mod 4 = 0 → Bölünür |
| Örnek (14) | 14 mod 2 = 0 → Bölünür | 14 mod 4 = 2 → Bölünmez |
Sayfa 110: Araştırma Görevi
PDF dokümanını inceleyin ve indirin
Araştırma Görevi Dokümanı Ön İzlemesi
Sayfa 114-115: 3. Uygulama
Kütlesi Farklı Parayı Bulma Problemi – Böl ve Fethet Algoritması
3. Uygulama: Kütlesi Farklı Parayı Bulma Problemi
Aynı ebatlara sahip n tane bozuk para içinden kütlesi farklı olan 1 tanesini en az tartımla bulma problemi.
1. Soru: Varsayımlar ve Tablo
Aynı ebatlara sahip n tane bozuk para içinden kütlesi farklı olan 1 tanesi en az kaç tartımla kesin olarak bulunabilir? Varsayımlarınızı oluşturunuz.
| n | 2 | 3 | 4 | 8 | 9 | 16 | 27 | 32 | 64 | 81 |
|---|---|---|---|---|---|---|---|---|---|---|
| En Az Tartım Sayısı | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 4 | 4 |
| Açıklama | 1'e karşı 1 | 1'e karşı 1, kalan | 2'ye karşı 2 | 3'e karşı 3 | 3'e karşı 3 | 5-5-6 | 9-9-9 | 10-11-11 | 21-21-22 | 27-27-27 |
2. Soru: Tablo Tamamlama ve Genelleme
n sayısının alabileceği farklı tam sayı değerleri için varsayımlarınızı doğrulayınız. Ardından tartım sayısıyla ilgili genellemeler oluşturunuz.
| n | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 16 | 27 | 32 | 64 | 81 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| En Az Tartım | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | 4 |
3. Soru: Önermeler
Varsayımlarınızla genellemelerinizi karşılaştırarak bir önerme şeklinde ifade ediniz.
- Önerme 1: n tane paranın içinden kütlesi farklı 1 parayı bulmak için en az tartım sayısı, n sayısının 3 tabanındaki logaritmasının üst tam değeridir.
- Önerme 2: Her tartımda paralar 3 eşit gruba ayrılarak (mümkün olduğunca) bir tartımla parça sayısı 3 kat azaltılabilir.
- Önerme 3: n ≤ 3t ise t tartım yeterlidir; n > 3t-1 ise t-1 tartım yeterli değildir.
4. Soru: Algoritmik Doğal Dil
Elde ettiğiniz önermelerin birini seçerek algoritmanın işleyişini algoritmik doğal dille ifade ediniz.
5. Soru: Algoritmayı Farklı n Değerleri İçin Uygulama
| n | 2 | 5 | 10 | 20 | 50 | 100 | 200 | 500 | 1000 | 2187 |
|---|---|---|---|---|---|---|---|---|---|---|
| En Az Tartım | 1 | 2 | 3 | 3 | 4 | 5 | 5 | 6 | 7 | 7 |
| 3t-1 < n ≤ 3t | 1< n ≤3 | 3< n ≤9 | 9< n ≤27 | 9< n ≤27 | 27< n ≤81 | 81< n ≤243 | 81< n ≤243 | 243< n ≤729 | 729< n ≤2187 | 729< n ≤2187 |
6. Soru: Paranın Hafif veya Ağır Olmasının Etkisi
Elde ettiğiniz algoritmanın kullanışlılığı, kütlesi farklı olan paranın hafif ya da ağır olmasından etkilenmez. Çünkü algoritma, her tartımda eşit grupları karşılaştırarak farklı olan grubu tespit eder. Farklı olan paranın hafif mi yoksa ağır mı olduğu, sadece hangi grubun diğerinden hafif/ağır olduğuna bakılarak belirlenir. Ancak problemde sadece farklı olan parayı bulmak istendiği için, hafif/ağır olması sonucu etkilemez.
7. Soru: Performans Stratejileri
- Paraları her zaman mümkün olduğunca eşit 3 gruba ayır
- Tartım sayısını minimize etmek için 3'lü gruplama kullan
- Önceden bilinen bilgileri (hafif/ağır olma durumu) kullan
- Büyük n değerleri için iteratif yerine rekürsif yaklaşım tercih et
- İkili Arama (Binary Search): 2'li gruplama (daha fazla tartım gerekir)
- Doğrusal Arama: Tek tek tartma (en kötü durum n-1 tartım)
- Karma Yöntem: Önce 3'lü, sonra 2'li gruplama
8. Soru: 1024 Vida Kalite Kontrolü
1024 vida içindeki 1 hatalı vidayı tespit etmek için en az kaç tartım yapılması gerekir?
Çözüm: 1024 sayısı için t = ⌈log₃(1024)⌉ hesaplanır.
t = ⌈log₃(1024)⌉ = 7 tartım
7 tartımda 1024 vida içinden hatalı olan kesin olarak bulunabilir.
9. Soru: 2187 İlaç Kapsülü Kalite Kontrolü
2187 ilaç kapsülü içindeki 1 hatalı kapsülü tespit etmek için en az kaç tartım yapılması gerekir?
Çözüm: 2187 = 37 olduğu için:
t = ⌈log₃(2187)⌉ = 7 tartım
7 tartımda 2187 kapsül içinden hatalı olan (etken maddesi eksik veya fazla) kesin olarak tespit edilebilir.
Sayfa 115-116: 4. Uygulama
Grup İçi Toplam Tokalaşma Sayısını Hesaplama
4. Uygulama: Grup İçi Toplam Tokalaşma Sayısını Hesaplama
n kişilik bir grupta gruptaki her bir kişinin diğer kişilerle bir kez tokalaşması durumunda toplam tokalaşma sayısı tespit edilmek istenmektedir.
| Kişi Sayısı | 2 | 3 | 4 | 5 | 6 | ... | n |
|---|---|---|---|---|---|---|---|
| Toplam Tokalaşma Sayısı | 1 | 3 | 6 | 10 | 15 | ... | n(n-1)/2 |
1. Soru: Cebirsel Temsil
Kişi sayısı n olduğunda toplam tokalaşma sayısının cebirsel temsilini elde ediniz.
Çözüm: n kişilik bir grupta her kişi diğer n-1 kişi ile tokalaşır. Ancak her tokalaşma iki kişi arasında gerçekleştiği için toplam sayı ikiye bölünür.
Bu formül, 1'den n-1'e kadar olan sayıların toplamına eşittir: 1 + 2 + 3 + ... + (n-1) = n(n-1)/2
2. Soru: Sıralı İşlem Adımları
Tablo veya cebirsel temsil ile elde ettiğiniz bilgileri sıralı işlem adımlarına dönüştürünüz.
3. Soru: Algoritmanın İfade Edilmesi
Belirlediğiniz işlem adımları ile toplam tokalaşma sayısını bulan algoritmanın işleyişini algoritmik doğal dil, akış şeması ve sözde kodla ifade ediniz.
- Başla
- Kişi sayısını (n) gir
- Tokalaşma sayısını hesapla: T = n × (n - 1) / 2
- Sonucu (T) ekrana yaz
- Bitir
1: BAŞLA 2: OKU n 3: T = n * (n - 1) / 2 4: YAZ T 5: BİTİR
4. Soru: Algoritmayı Uygulama
Hazırladığınız algoritmayı kullanarak 5, 6 ve 7 kişilik gruplar için toplam tokalaşma sayısını hesaplayınız.
| Kişi Sayısı (n) | Formül: T = n(n-1)/2 | Toplam Tokalaşma |
|---|---|---|
| 5 | 5 × 4 / 2 | 10 |
| 6 | 6 × 5 / 2 | 15 |
| 7 | 7 × 6 / 2 | 21 |
5. Soru: Performans Analizi
Elde ettiğiniz algoritmanın performansı, kişi sayısı artarsa nasıl etkilenir? Tokalaşacak kişi sayısı n olacak şekilde algoritmanızı yeniden oluşturunuz.
Performans Değerlendirmesi: Algoritma O(1) zaman karmaşıklığına sahiptir. Yani kişi sayısı (n) arttıkça hesaplama süresi sabit kalır. Çünkü sadece tek bir aritmetik işlem yapılmaktadır.
1. n değerini oku
2. T = n × (n - 1) / 2 hesapla
3. T'yi ekrana yaz
6. Soru: Algoritmanın Doğrulanması
Algoritmanızın her durumda doğru yanıt verip vermediğini kontrol ediniz.
| n | 1 | 2 | 3 | 4 | 5 | 10 | 20 | 50 | 100 |
|---|---|---|---|---|---|---|---|---|---|
| T = n(n-1)/2 | 0 | 1 | 3 | 6 | 10 | 45 | 190 | 1225 | 4950 |
| Doğrulama | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
7. Soru: Yöntemlerin Avantajları
Bu problemi çözmek için kullanılabilecek her bir yöntemin (tablo, şema) avantajlarını belirleyiniz.
- Görsel olarak anlaşılırdır
- Örüntüyü fark etmeyi kolaylaştırır
- Küçük veri kümeleri için pratiktir
- Matematiksel formülü keşfetmeye yardımcı olur
- Adım adım işlem akışını gösterir
- Algoritmanın mantığını görselleştirir
- Programlama öncesi tasarım için uygundur
- Karar noktalarını ve döngüleri gösterir
- En sistematik ve kesin yöntemdir
- Doğrudan programlamaya aktarılabilir
- Büyük veriler için hızlı hesaplama sağlar
- Genelleme yapmayı kolaylaştırır
8. Soru: En Sistematik ve Etkili Yöntem
Bu yöntemlerden hangisinin daha sistematik ve etkili olduğunu değerlendiriniz.
Değerlendirme:
- En sistematik yöntem: Cebirsel formül (T = n(n-1)/2) çünkü her n değeri için tek bir işlemle sonucu verir ve matematiksel olarak kesindir.
- En etkili yöntem: Sözde kod / Algoritma çünkü bilgisayarda uygulanabilir, büyük veriler için ölçeklenebilir ve tekrarlanabilirdir.
- Sonuç: Tablo ve akış şeması öğrenme ve anlama aşamasında faydalıdır. Ancak pratik uygulama ve hesaplama için formül ve sözde kod daha sistematik ve etkilidir.
Sayfa 117-119: 5. Uygulama
Königsberg Şehrindeki Yürüyüş Rotası Problemi – Çizgeler Yardımıyla Çözümleme
1. Soru: Tablo Doldurma
Verilen çizgeler için tabloyu örnekteki gibi doldurunuz.
| Çizge | Sözel Temsili | Tüm Düğümlerin Tek/Çift Sayıda Ayrıta Sahip Olma Durumu | Başladığı Düğüme Dönme Durumu |
|---|---|---|---|
| A düğümünden yola çıkan kişi, a ayrıtını kullanarak B düğümüne ulaşır ve b ayrıtını kullanarak başladığı düğüme dönebilir. | A ve B düğümlerine bağlı ikişer ayrıt vardır. Tüm düğümler çift sayıda ayrıta sahiptir. | ✓ | |
| A'dan B'ye, B'den C'ye uzanan tek bir yol vardır. Başlangıç noktasına dönüş yoktur. | A:1 (tek), B:2 (çift), C:1 (tek). Tek sayıda ayrıta sahip düğümler var. | ✗ | |
| A'dan B'ye, B'den C'ye, C'den A'ya dönen bir üçgen çizge. Tüm düğümler birbirine bağlı. | A:2 (çift), B:2 (çift), C:2 (çift). Tüm düğümler çift sayıda ayrıta sahiptir. | ✓ | |
| A'dan B'ye, B'den C'ye, C'den A'ya dönen üçgen çizgeye ek olarak A'dan C'ye doğrudan bir yol daha var. | A:3 (tek), B:2 (çift), C:3 (tek). Tek sayıda ayrıta sahip düğümler var. | ✗ |
2. Soru: Çizge Çizim Alanı
Tablodaki diğer çizge örneklerini bir başlangıç noktası belirleyerek, kaleminizi hiç kaldırmadan ve her ayrıttan bir kez geçmek şartıyla çiziniz.
3. Soru: Tek/Çift Ayrıt İlişkisi
Her bir düğümün sahip olduğu ayrıt sayısının tek ya da çift olmasının çizgenin kalem hiç kaldırılmadan çizilebilme durumu ile ilişkisini açıklayınız.
Euler Yolu ve Euler Çevresi Teoremi:
- Euler Çevresi (Başlangıca Dönüş): Çizgedeki tüm düğümlerin derecesi (ayrıt sayısı) çift ise, kalem kaldırılmadan ve her ayrıttan bir kez geçilerek başlangıç noktasına dönülebilir.
- Euler Yolu (Başlangıca Dönüş Yok): Çizgede tam olarak 2 düğümün derecesi tek ise, kalem kaldırılmadan ve her ayrıttan bir kez geçilerek çizim yapılabilir ancak başlangıç noktasına dönülemez.
- Çizilemez Durum: Çizgede 4 veya daha fazla düğümün derecesi tek ise, kalem kaldırılmadan ve her ayrıttan bir kez geçilerek çizim yapılamaz.
4. Soru: Königsberg Köprü Problemi
a) Tek/Çift Ayrıt Sayısının Rota Planlarına Etkisi
Königsberg şehrinde 4 kara parçası (A, B, C, D) ve 7 köprü bulunmaktadır. Çizge modelinde:
- A düğümü: 3 ayrıt (tek)
- B düğümü: 3 ayrıt (tek)
- C düğümü: 3 ayrıt (tek)
- D düğümü: 3 ayrıt (tek)
4 düğümün tamamı tek derecelidir. Bu nedenle ne Euler Çevresi ne de Euler Yolu bulunmaktadır. Yani her köprüden yalnızca bir kez geçerek başlangıç noktasına dönmek mümkün değildir.
b) Algoritma Girdileri ve Beklenen Çıktılar
Girdiler (Input):
- Düğüm sayısı (n)
- Her düğümün derecesi (ayrıt sayısı)
- Düğümler arası ayrıtların listesi
Beklenen Çıktılar (Output):
- Euler Çevresi var mı? (Tüm düğümler çift dereceli ise)
- Euler Yolu var mı? (Tam olarak 2 düğüm tek dereceli ise)
- Çizim mümkün değil (4 veya daha fazla düğüm tek dereceli ise)
- Mümkünse başlangıç ve bitiş düğümleri
c) Algoritmik Doğal Dil ve Akış Şeması
- Başla
- Düğüm sayısını (n) oku
- Her düğümün derecesini (ayrıt sayısını) oku
- Tek dereceli düğüm sayısını (tekSayac) hesapla
- Eğer tekSayac = 0 ise "Euler Çevresi var" yaz
- Değilse eğer tekSayac = 2 ise "Euler Yolu var" yaz
- Değilse "Çizim mümkün değil" yaz
- Bitir
5. Soru: Farklı Durumlar İçin Test
Elde ettiğiniz algoritmayı farklı durumlar için test ediniz.
| Durum | Düğüm Dereceleri | Tek Dereceli Sayısı | Algoritma Sonucu |
|---|---|---|---|
| Orijinal Königsberg | A:3, B:3, C:3, D:3 | 4 | Çizilemez |
| 1 Köprü Kullanım Dışı (A-B kaldırıldı) | A:2, B:2, C:3, D:3 | 2 | Euler Yolu |
| 2 Köprü Eklendi (C-D arasına 2 yeni) | A:3, B:3, C:5, D:5 | 4 | Çizilemez |
| Yeni Köprü Eklendi (A-C) | A:4, B:3, C:4, D:3 | 2 | Euler Yolu |
| 2 Yeni Köprü (A-C ve B-D) | A:4, B:4, C:4, D:4 | 0 | Euler Çevresi |
Sayfa 119-121: 6. Uygulama
Temiz Çevre Optimizasyon Problemi – Gezgin Satıcı Problemi (TSP)
Çöp Depoları Arası Mesafeler Tablosu
| Çöp Depoları | A-B | B-C | C-A | C-D | D-A | B-D |
|---|---|---|---|---|---|---|
| Mesafe (birim) | 133 | 96 | 100 | 103 | 70 | 200 |
Çöp arabası A'dan başlayıp B, C ve D'yi birer kez ziyaret ederek A'ya dönecektir.
1. Soru: Toplam Mesafeyi En Aza İndirme
Tablodaki verileri kullanarak toplam mesafeyi en aza indirmeye çalışınız.
| Rota | Mesafe Hesaplaması | Toplam Mesafe | Durum |
|---|---|---|---|
| A → B → C → D → A | 133 + 96 + 103 + 70 | 402 | Deneme |
| A → B → D → C → A | 133 + 200 + 103 + 100 | 536 | Deneme |
| A → C → B → D → A | 100 + 96 + 200 + 70 | 466 | Deneme |
| A → C → D → B → A | 100 + 103 + 200 + 133 | 536 | Deneme |
| A → D → B → C → A | 70 + 200 + 96 + 100 | 466 | Deneme |
| A → D → C → B → A | 70 + 103 + 96 + 133 | 402 | Deneme |
| A → B → C → D → A | 133 + 96 + 103 + 70 | 402 | ✓ En İyi |
2. Soru: Çizge Oluşturma
Tablodaki verileri kullanarak bir çizge oluşturunuz.
3. Soru: Girdi ve Çıktı Tanımlama
Toplam mesafeyi en aza indiren algoritmanın çalışması için gereken girdi verilerini ve beklenen çıktıları tanımlayınız.
- Düğüm sayısı (n)
- Düğümler arası mesafe matrisi
- Başlangıç düğümü (A)
- Ziyaret edilecek düğümlerin listesi
- En kısa rota (düğüm sırası)
- Toplam mesafe (en kısa)
- Ziyaret edilen tüm düğümler
- Başlangıç noktasına dönüş kontrolü
4. Soru: Algoritmanın İfade Edilmesi
Toplam mesafeyi en aza indiren algoritmanın işleyişini algoritmik doğal dil, akış şeması ve sözde kodla ifade ediniz.
- Başla
- Düğüm sayısını (n) ve mesafe matrisini oku
- Başlangıç düğümünü A olarak belirle
- Ziyaret edilmemiş tüm düğümler için:
- Her bir olası rotayı dene
- Toplam mesafeyi hesapla
- En kısa mesafeli rotayı seç
- Rota ve toplam mesafeyi yaz
- Bitir
1: BAŞLA 2: OKU n, matris 3: baslangic = A 4: enKisa = sonsuz 5: HER rota İÇİN: 6: toplam = HESAPLA(mesafe) 7: EĞER toplam < enKisa İSE 8: enKisa = toplam 9: enIyiRota = rota 10: YAZ enIyiRota, enKisa 11: BİTİR
5. Soru: En Kısa Rota
Oluşturduğunuz çizge üzerinde çöp arabasının katettiği toplam mesafeyi en aza indiren rotayı bulunuz.
6. Soru: Rotaları Karşılaştırma
Toplam mesafeyi en aza indiren rotanızı arkadaşlarınızın rotaları ile karşılaştırıp en iyi rotayı belirleyiniz.
| Öğrenci | Rota | Toplam Mesafe | Değerlendirme |
|---|---|---|---|
| Öğrenci 1 | A → B → C → D → A | 402 | En İyi |
| Öğrenci 2 | A → C → B → D → A | 466 | İyi |
| Öğrenci 3 | A → B → D → C → A | 536 | Kötü |
| Öğrenci 4 | A → D → C → B → A | 402 | En İyi |
| En İyi Rota | 402 birim | ✓ | |
7. Soru: Performans Analizi
Çöp deposu sayısı artarsa elde ettiğiniz algoritmanın performansının nasıl etkileneceğini açıklayınız.
Performans Değerlendirmesi:
- Algoritma Türü: Bu algoritma Brute Force (Kaba Kuvvet) yöntemidir. Tüm olası rotaları dener ve en kısasını seçer.
- Zaman Karmaşıklığı: O(n!) (faktöriyel) – n düğüm için (n-1)! olası rota vardır.
- Performans Etkisi: Çöp deposu sayısı (n) arttıkça hesaplama süresi çok hızlı artar.
- n=5 için 24 rota
- n=10 için 362.880 rota
- n=20 için 1.2 × 1017 rota
- Sonuç: Brute Force yöntemi küçük n değerleri için uygundur. Büyük n değerlerinde performans çok düşer.
8. Soru: Performans Artırma Stratejileri
Çöp deposu sayısı artarsa algoritmanın performansını artırmak için hangi stratejileri önerirsiniz?
- Dal ve Sınır (Branch and Bound): En kısa yoldan daha uzun olan rotaları eler
- Dinamik Programlama (Held-Karp): O(n²·2ⁿ) karmaşıklık
- Sezgisel Yöntemler: En Yakın Komşu, Genetik Algoritma
- Metasezgisel Yöntemler: Benzetilmiş Tavlama, Karınca Kolonisi
- En Yakın Komşu Algoritması: Her adımda en yakın noktaya git
- En Küçük Ağaç Algoritması: Minimum spanning tree kullan
- Genetik Algoritma: Popülasyon tabanlı optimizasyon
- Karınca Kolonisi: Doğadan ilham alan yaklaşım
9. Soru: Tablo vs Çizge
Bu problemin çözümünde kullanılan tablo ve çizgeden hangisinin daha verimli olduğunu açıklayınız.
- ✓ Veriler sayısal olarak net görülür
- ✓ Hesaplamalar kolaydır
- ✓ Küçük veri kümeleri için pratiktir
- ✗ Görsel ilişkiyi görmek zordur
- ✗ Rotaları karşılaştırmak zahmetlidir
- ✓ Görsel olarak ilişkiler net görülür
- ✓ Rotaların takibi kolaydır
- ✓ En kısa yol sezgisel olarak bulunabilir
- ✓ Büyük veriler için daha anlaşılırdır
- ✓ Algoritma geliştirmeye uygundur
10. Soru: Benzerlik Gösteren Gerçek Yaşam Durumları
Bu problemin benzerlik gösterdiği gerçek yaşam durumlarını açıklayınız.
- Kargo şirketlerinin en kısa yol rotaları
- Yemek dağıtımı optimizasyonu
- Araç filo yönetimi
- PCB devre tasarımı
- Veri ağlarında yönlendirme
- DNA dizilim analizi
- Üretim hatlarında makine sıralaması
- Robotik navigasyon
- Tur rotası planlama
Sayfa 121: 3. Sıra Sizde
Veri Merkezi Bağlantı Problemi – Çapraz Bağlantısız Çizge Oluşturma
3. Sıra Sizde
Bir veri merkezindeki üç farklı sunucu (A, B, C) ve üç farklı veri deposu (Ç, D, E) ile A ve Ç arasındaki ilişkiyi gösteren çizge şekilde gösterilmiştir. Her bir sunucu, her bir veri deposundan yüksek hızda ve güvenilir şekilde veri alışverişi yapabilmelidir.
Veri merkezinin tasarım kuralları gereği sunucular ve depolar arasında çapraz (kesişme) bağlantı olmadan en iyi veri akışını sağlayacak çizgeyi oluşturunuz.
Çizge Çizim Alanı
Sunucular (A, B, C) ve veri depoları (Ç, D, E) arasında çapraz bağlantı olmadan en iyi veri akışını sağlayacak çizgeyi aşağıdaki alana çiziniz.
veri merkezi bağlantı
Sayfa 122: Araştırma Ödevi
PDF dokümanını inceleyin ve indirin
Araştırma Ödevi Dokümanı Ön İzlemesi
Sayfa 123-124: 7. Uygulama
ASCII Karakter Kümesi ve İkili (Binary) Kodlama
ASCII Karakter Kümesi (Özet)
| Karakter | ASCII | Karakter | ASCII | Karakter | ASCII | Karakter | ASCII |
|---|---|---|---|---|---|---|---|
| @ | 64 | A | 65 | B | 66 | C | 67 |
| D | 68 | E | 69 | F | 70 | G | 71 |
| H | 72 | I | 73 | J | 74 | K | 75 |
| L | 76 | M | 77 | N | 78 | O | 79 |
| P | 80 | Q | 81 | R | 82 | S | 83 |
| T | 84 | U | 85 | V | 86 | W | 87 |
| X | 88 | Y | 89 | Z | 90 | [ | 91 |
| \ | 92 | ] | 93 | ^ | 94 | _ | 95 |
| ` | 96 | a | 97 | b | 98 | c | 99 |
| d | 100 | e | 101 | f | 102 | g | 103 |
| h | 104 | i | 105 | j | 106 | k | 107 |
| l | 108 | m | 109 | n | 110 | o | 111 |
| p | 112 | q | 113 | r | 114 | s | 115 |
| t | 116 | u | 117 | v | 118 | w | 119 |
| x | 120 | y | 121 | z | 122 | { | 123 |
| | | 124 | } | 125 | ~ | 126 |
ASCII: American Standard Code for Information Interchange (Amerikan Bilgi Değişimi İçin Standart Kod)
1. Soru: Şifre Belirleme
En az bir büyük harf, bir küçük harf ve bir özel karakter içeren, ASCII dışı karakter içermeyen ve en az 8 karakterden oluşan bir şifre belirleyiniz.
- Ab#9Xy$3 → Ab#9Xy$3
- Secret@1 → Secret@1
- PassWord! → PassWord!
- MyP@ss#1 → MyP@ss#1
| Koşul | Ab#9Xy$3 | Secret@1 | PassWord! |
|---|---|---|---|
| En az 1 büyük harf | ✓ | ✓ | ✓ |
| En az 1 küçük harf | ✓ | ✓ | ✓ |
| En az 1 özel karakter | ✓ | ✓ | ✓ |
| En az 8 karakter | ✓ | ✓ | ✓ |
| ASCII dışı karakter yok | ✓ | ✓ | ✓ |
2. Soru: Şifrenin Bilgisayar Sistemindeki Karşılığı
Belirlediğiniz şifrenin bilgisayar sistemindeki karşılığını (ASCII ve Binary) bulunuz.
| Karakter | A | b | # | 9 | X | y | $ | 3 |
|---|---|---|---|---|---|---|---|---|
| ASCII | 65 | 98 | 35 | 57 | 88 | 121 | 36 | 51 |
| Binary (8-bit) | 01000001 | 01100010 | 00100011 | 00111001 | 01011000 | 01111001 | 00100100 | 00110011 |
| Karakter | S | e | c | r | e | t | @ | 1 |
|---|---|---|---|---|---|---|---|---|
| ASCII | 83 | 101 | 99 | 114 | 101 | 116 | 64 | 49 |
| Binary (8-bit) | 01010011 | 01100101 | 01100011 | 01110010 | 01100101 | 01110100 | 01000000 | 00110001 |
3. Soru: Algoritmik Doğal Dil
Onluk sistemdeki bir sayıyı bilgisayar sistemindeki (binary) bir sayıya çeviren algoritmanın işleyişini algoritmik doğal dil yardımıyla açıklayınız.
- Başla
- Kullanıcıdan onluk sistemde bir sayı (n) al
- Sonuç değişkenini boş bir dizi olarak tanımla
- n > 0 olduğu sürece:
- n'nin 2'ye bölümünden kalanı (n mod 2) bul
- Kalanı sonuç dizisinin başına ekle
- n = n / 2 (tam bölme) işlemini yap
- Elde edilen binary sayıyı ekrana yaz
- Bitir
32 ÷ 2 = 16 kalan 0 → 01
16 ÷ 2 = 8 kalan 0 → 001
8 ÷ 2 = 4 kalan 0 → 0001
4 ÷ 2 = 2 kalan 0 → 00001
2 ÷ 2 = 1 kalan 0 → 000001
1 ÷ 2 = 0 kalan 1 → 1000001
46 ÷ 2 = 23 kalan 0 → 00
23 ÷ 2 = 11 kalan 1 → 100
11 ÷ 2 = 5 kalan 1 → 1100
5 ÷ 2 = 2 kalan 1 → 11100
2 ÷ 2 = 1 kalan 0 → 011100
1 ÷ 2 = 0 kalan 1 → 1011100
Sayfa 125: Performans Görevi
Sıralama ve Arama Algoritmaları – Sözde Kod, Akış Şeması ve Analiz
Performans Görevi
Bu görevde sizden belirli sıralama ve arama algoritmalarını analiz etmeniz, bu algoritmalar için akış şemaları oluşturmanız, seçtiğiniz algoritmanın işleyişini sözde kod ve akış şemasıyla ifade etmeniz, çalışmanızı sınıf arkadaşlarınıza sunmanız beklenmektedir.
Performans Görevi Dokümanı Ön İzlemesi
Sayfa 126: Alıştırmalar
İkili Arama Algoritması – Anadolu Parsı Takibi
Anadolu Parsı Takibi
Anadolu parsı Türkiye’nin en büyük kedi türü olan, postu sarımsı, üzeri siyah benekli, çevik, yırtıcı, etçil, memeli bir hayvandır. Bir hayvan bilimci olan Zehra, araştırma ekibiyle birlikte nesli tükenmekte olan Anadolu parsının takibini yapmaktadır. Zehra, haritada gösterilen 163 000 km²lik beyaz renkli bölgenin tamamında araştırmasını yürütmektedir.
Zehra, parsın izini sürmek için ikili arama algoritmasını kullanmayı planlamaktadır. Her adımda araziyi iki eşit parçaya bölüp sadece bir tarafında parsın olup olmadığını kontrol edecektir. Parsın varlığının tespit edildiği taraf daha sonra yeniden ikiye bölünecek ve arama alanı 1 km²den az olduğunda parsın tespit edildiği varsayılacaktır. Zehra, her gün sadece bir alanı kontrol edecektir.
Algoritmik doğal dille ifade edilen ikili arama algoritmasının işleyişini akış şeması ve sözde kodla ifade ediniz.
Algoritmik Doğal Dil
Akış Şeması
Algoritmik doğal dille gösterilen ikili arama algoritmasının işleyişini akış şemasıyla ifade ediniz.
163000 km² → 1 km²'ye inmek için: ⌈log₂(163000)⌉ = ⌈17.31⌉ = 18 gün
Sözde Kod
Algoritmik doğal dille gösterilen ikili arama algoritmasının işleyişini sözde kodla ifade ediniz.
1: BAŞLA 2: // Kullanıcıdan bölgenin alanını al 3: OKU alan 4: 5: DÖNGÜ 6: // Alanı ikiye böl 7: alan = alan / 2 8: 9: // Parsın bu yarıda olup olmadığını kontrol et 10: EĞER "Pars bu yarıda" İSE 11: YAZ "Pars bulundu, detaylı incele" 12: DEĞİLSE 13: YAZ "Diğer yarıya geç" 14: // Kontrol edilen alan 1 km²'den küçük mü? 15: EĞER alan < 1 İSE 16: YAZ "Pars tespit edildi" 17: DÖNGÜDEN ÇIK 18: BİTİR
1: BAŞLA 2: alan = 163000 // Başlangıç alanı (km²) 3: gün = 0 4: 5: DÖNGÜ alan >= 1 6: alan = alan / 2 // Alanı ikiye böl 7: gün = gün + 1 8: 9: EĞER "Pars bu yarıda" İSE 10: YAZ "Pars bulundu, detaylı incele" 11: DEĞİLSE 12: YAZ "Diğer yarıya geç" 13: 14: EĞER alan < 1 İSE 15: YAZ "Pars tespit edildi" 16: YAZ "Toplam gün sayısı: ", gün 17: BİTİR