Karatsuba Hızlı Çarpımı, Hanoi Kuleleri, Lig Usulü Turnuva Eşleştirmesi ve Çokgen Triangulation gibi klasik algoritmik bulmacaları ve çözümlerini barındırır.
Bilgisayar bilimlerinde klasik bulmacalar ve matematiksel bölünmeler, algoritmik düşünme becerisini geliştiren ve karmaşık optimizasyon modellerine zemin hazırlayan temel yapılardır.
Karatsuba Algoritması, iki büyük sayıyı çarparken standart $O(n^2)$ yerine, sayıları ikiye bölüp sadece 3 alt çarpım kullanarak süreyi $O(n^{1.585})$ düzeyine düşüren klasik bir divide-and-conquer yöntemidir.
Hanoi Kuleleri, disklerin büyüklük sırasına göre üç direk arasında taşınmasını özyinelemeli çözen $O(2^n)$ adımlık bir bulmacadır. Lig Usulü Turnuva (Round-robin) planlaması her takımın birbiriyle karşılaşmasını planlarken, En Küçük Maliyetli Nirengi (Minimal-cost Triangulation) dinamik programlama ile çokgenleri üçgenlere bölme maliyetini en aza indirir.
Aşağıdaki uygulamalar PDF kaynaklarındaki pseudo kod akışını modern veri yapılarıyla ifade eder. Kenar durumları görünür bırakıldığı için örnekler doğrudan test edilebilir.
1export function karatsubaMultiply(x: number, y: number): number {2 // Base case for single digit multiplication3 if (x < 10 || y < 10) return x * y;4 5 const xStr = x.toString();6 const yStr = y.toString();7 const n = Math.max(xStr.length, yStr.length);8 const m = Math.floor(n / 2);9 10 const p = Math.pow(10, m);11 12 const a = Math.floor(x / p);13 const b = x % p;14 const c = Math.floor(y / p);15 const d = y % p;16 17 // 3 recursive calls18 const ac = karatsubaMultiply(a, c);19 const bd = karatsubaMultiply(b, d);20 const abcd = karatsubaMultiply(a + b, c + d);21 22 const mid = abcd - ac - bd;23 return ac * Math.pow(10, 2 * m) + mid * p + bd;24}2526export function hanoiMoves(n: number, from: string, to: string, aux: string, trace: string[]): void {27 if (n === 1) {28 trace.push(`Disk 1'i ${from} -> ${to} direğine taşı`);29 return;30 }31 hanoiMoves(n - 1, from, aux, to, trace);32 trace.push(`Disk ${n}'i ${from} -> ${to} direğine taşı`);33 hanoiMoves(n - 1, aux, to, from, trace);34}Hanoi adımlarını listeyin veya Karatsuba hızlı çarpım bölünmelerini adım adım izleyin.
Hanoi adımlarını listeyin veya Karatsuba hızlı çarpım bölünmelerini adım adım izleyin.
En İyi Durum: O(n^1.585) - Karatsuba hızlı çarpım
Ortalama Durum: O(n^1.585)
En Kötü Durum: O(2^n) - Hanoi Kuleleri hamle sayısı
O(n) - Recursive çağrı derinliği ve katsayılar için - Bu algoritmanın karmaşıklığı belirtilmemiş.
Matematik ve Klasik Bulmacalar (Math & Classic Riddles) Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar:
Büyük polinom çarpımlarını O(n log n) süresinde gerçekleştiren ileri matematiksel algoritma.
Hanoi kuleleri gibi karar problemlerini derinlemesine tarayarak çözen yöntem.