Bu sayfadaki yazılar
Sayfanın metni
Sayfa 63
bi her defasında yeni karakter kullanmaya (onlar için X, yüzler için C, binler için M) gerek duymaksızın, aynı on rakamı kullanarak istenen büyüklükte sayıları yazma olanağı da sağladı. Ayrıca, bu tür sayılarla tüm “hesaplama” işlemleri, eski Babillilerin tasnif işlemlerindeki gibi, belirli yeni “oyun kuralları”'na göre kısmi sonuçların “kaydırılması”'na dönüştü. Bu yeni “sanat” Hindistan'dan Batı'ya doğru yayıldığında, Babil çoktan yıkıntı halindeydi. Onun yerinde son derece gelişmiş bir başka kent vardı artık: Genç Arap İmparatorluğu'nun halifeler kenti Bağdat. Ve bu kentte yazımızın asıl kahramanı, çevirilerden yararlanarak Hint sayılarını öğreniyordu: Ebu Cafer Muhammed İbn Musa el'Harizmi. harizmi (Harzem), Aral Gölü'nün güneyinde bir İran kentiydi; günümüzde SSCB sınırları içinde kalan kent Khiva adını taşıyor. O dönemde Arap alimleri, Yunanlıların bilimsel mirasından yararlanıyorlardı. Muhammed de onlar arasında en büyük matematik alimiydi. Büyük bir coşku içinde hemen bu yeni dokuz sayıyla hesap yapmanın kuralları üzerine bir kitap yazdı. Ama kitabın İspanya üzerinden batı alimlerinin eline geçmesi ve Latince'ye çevrilmesi, 12. yüzyılın başını buldu. Bundan sonra bir sürü garip ve komik yanlış anlama birbirini izledi. Kimisi, yazarın adında upuzun bir ön ad silsilesinden sonra gelen son sözcüğün herhalde soyadı olduğunu ileri sürüp, aslında doğum yerini belirten *“tel'Harizmi”'yi, “Bay Alharizmi” olarak yorumladı. Kendi çevirisine de buna dayanarak “Liber Algoritmi” adını koydu (Liber — Kitap). Bir başkası, kitabı Latince'den bir başka dile çevirirken, “Liber”i “kitap” olarak çevirdi, ama Latince'de i harfiyle biten sözcüklerin daima ismin 2. hali olması nedeniyle, “Algoritmi”'yi “Algorithmus” olarak aldı. Dolayısıyla kitabın adı “Algorithmus (Algoritma) Kitabı” oldu. Peki, bu “Algoritma” ne anlama geliyordu? Aslında kitap, yeni bir hesaplama yöntemine ilişkin bilgileri içeriyordu. Ama daha sonra gelen bilim adamları, kitabın adının neden böyle olduğunu araştırdılar ve bir sürü getirdiler. Biri, yöntemin Algor adlı Hint kralı tarafından bulunduğunu ileri sürdü. Bir değeri, Yunanca “algiros” (ağrıh) ve “arithmos” (sayı) sözcüklerinin bileşimi olduğunu iddia etti. Her halükarda sonuç, bizim bugün de formel, kesin yönerge verilerini kullanmayı, olarak adlandırıyor olmamız. Hem de bu şatafatlı sözcüğün, sıcak küçük sosisler için kullanılan ““Frankfurter” ya da kızarmış köfte için kullanılan “Hamburger” gibi, espirili bir biçimde doğmuş olduğunu hiç düşünmeden. Peki, o zamana kadar Avrupa'da nasıl hesap yapılıyordu? Elverişsiz Roma rakamlarıyla aslında hesap yapılamıyordu (isterseniz CXXIV ile XVITT'i çarpmayı bir deneyin). Dolayısıyla Romalıların yaptığı, başka bir yöntemle bulunan sonucu yazmaktan başka bir şey değildi: Bu iş için kullanılan gereç, karşılık gelen hanelerde birli, onlu, yüzlü vb. sayıları gösteren taşların olduğu “hesap tahtası”'ydı (abaküs). Bu taşlara Romalılar “calculi” adını vermişlerdi. Günümüzde kullanılan elektronik hesap makinelerine aynı kökten yola çıkarak ““Calculator”” (kalkülatör) denmekte. Batı dünyası birdenbire 124 x 18 işlemini yapmak için, önce 4'ü 8'le çarparak kısmi sonucu bir kenara yazdıktan sonra, diğer haneleri hesaplamaya devam edebileceğini öğrendi. Bu ne müthiş bir olaydı? Bu sefer uzun süreli bir alimler tartışması başladı. Bu tartışma biraz bugünkü “BASIC mi, Pascal mı?” tartışmasına benziyordu. Ortaçağ stili bir münakaşa: Bir grup alim, Roma 63 rakamlarını pagan çok tanrılı”” yeniliklere karşı ateşli bir biçimde savunuyordu. “Hiçbir şey” için kullanılan ekstra bir rakam, bir şeytan büyüsü değil miydi? Zaten gerçekten pagan olan Eski Romalılar ise bunlara karşı çıkıyor ve sıfırda, Tanrı'- nın her şeyi yoktan var ettiğine işaret eden “büyük bir kutsallığın gizli olduğunu” ileri sürüyorlardı. Ayrıca artık insanlar tahta kullanmadan hesaplarını yapabileceklerdi! Teoloji ve propagandaya rağmen “algoritmacılar”, “abaküscüler”'e galip gelebilmek için üç yüzyıldan fazla uğraştılar. O dönemde yayımladıkları kitapların kapaklarında, günümüz reklam afişlerini anımsatan resimler kullanıyorlardı: Kan-ter içinde bir abaküsçü, taşları itip çekmekle uğraşırken, akıllı meslektaşı tüy kalemiyle hesap yapmakta. Böyle bir resmi bugün incelediğimizde, şaşkınlık içinde şunu tespit ediyoruz: “Algoritma”', problemleri tabiri caizse “otomatik” olarak çözmeye yarayan bir yöntem olmak zorundaysa, hesap tahtasının başındaki abaküsçü aslında çok daha tutarlı bir “algoritmacı”'dır! Çünkü meslektaşı 456 ile 123'ü toplamak için, “kafasında” 542-7, 441-5 hesaplarını yapmak zorundayken, abaküsçü, tahtasının hanelerine 4, 5 ve 6'yı koyup alt sıraya da 1, 2 ve 3'ü koyduğunda, herhangi bir hesaba gerek kalmaksızın sonucu anında tahtadan okuyabilmektedir. Çünkü son hanede 9, bir öncekinde 7 ve ondan bir öncekinde de 5 taş vardır. (Eğer bir hanedeki taş sayısı 10 veya daha çok olursa, “aktarma”'nın son derece “mekanik” bir biçimde yapılabilmesi olanağı da vardır: Bir taş bir önceki haneye alınır ve geri kalanlar arasında dokuz taş eksiltilir). Aslına bakılırsa “algoritmacılar”” yalnızca Harizmi”'li pirlerinin adını değil, ““abaküscçüler”'le mücadelelerinin ana konusunu da yanlış anladılar. “Veriler”'iyle ya da “algoritmalar”ıyla uğraşırken her iki grup da formel kurallara uyuyorlardı. Aralarındaki karşıtlık esas olarak bu verilerin sunuluş tarzlarındaydı: Arap rakamları, Roma rakamları ya da hesap taşları... Aslında her sorunun çözümü temelde iki yolla gerçekleşebilir: Pascal programlama dilinin yaratıcısı Niklaus Wirth'in yapıtlarının birine ad olarak verdiği gibi, ““Veri Yapıları ve Algoritmalar”. Çünkü sonuca hangi kurallara göre gidilebileceğini belirleyen en önemli faktör, verinin yapısıdır. (Örneğin, Babillilerin tasnif algoritmasının işe yaramasının nedeni, daha önce bir ön tasniften geçmiş verileri kullanmış olmalarıdır). Roma sayılarının karmaşık yapısı, formel, “algoritmik” hesaplamalar açısından uygun değildi. Buna karşıhk Hint-Arap hane yapısı çok daha iyiydi. Ama hesap tahtası hanelerindeki taşlardan oluşan ilkel yapı, aslında en iyisiydi: Taşların yerine dişli dişleri konabildiğinde, hesaplamayı “tam otomatik” olarak yapabilecek bir “makine”'ye geçebilirdi. Peki, neden hesap alanına takıldık? Tüm bilim dallarının kavramları alınarak bu tür yapılarda toplamak ve katı Kurallara göre tüm doğruları üretebileceğimiz bulmak mümkün değil mi? Bu, Katalonyalı skolastik Raimundus Lullus'un pervasız fikriydi. Leibniz de, bu tür hayalin peşindeydi. Böyle bir “Ars Magna Lulli”' (Lullus'un Büyük Sanatı) ile, bilim adamları, yakında kısır çekişmeleri bir yana bırakıp, son derece açık olan gerçeği bulmak için “Calculemus - bırakın hesap yapahım!” diyeceklerdi... Algoritmalara göre karmaşık veri yapılarını işleyen bilgisayarları üretmeye başladığımızdan beri, bir şeyi farkettik: ““Prensipte” işleyen bir sürü şey, aslında pratikte hiçbir işe yaramıyor. “Beyaz, satranç karşılaşmasının ilk hamlesinde kazanmayı zorlayabilir mi?”” sorusunun açık cevabını elde etmeyi sağlayacak bir “algoritma” aslında mevcuttur. Ama en hızlı bilgisayar bile bu iş için kainatın yaratılmasından bu yana geçen süreden daha uzun bir süreye ihtiyaç duyar.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 62
niden başlamak gerekiyordu. Çünkü daha önce o değerin hesaplanmış olup olmadığını bulmak için tüm arşivi taramaktansa, değeri yeniden hesaplamak çok daha çabuk sonuç veriyordu. Rahip, Başrahibin bu konuda kendisinden isteyeceği işi önceden tasavvur bile edemezdi: “Şimdiye kadar hesaplanmış tüm değerleri tek bir yeni tabletin üzerinde biraraya getirmek, çok yararlı olacak. Böylece istediğimiz tüm değerleri kolayca bulabileceğiz. Bu iş için kaç yazıcı istediğinizi söyleyin yeter.” Başrahip böyle bir fikri nasıl düşünebildi? Ondan önce başrahiplik yapmış tüm selefleri, herhalde kendi dönemlerinde oluşturulan sayı değerlerini en küçüğünden en büyüğüne düzenli bir biçimde kaydettirmiştir. Fakat bütün bunlardan tek bir tablet oluşturmak? Bunun anlamı şu: Arşivdeki bütün tabletleri tarayarak, o güne kadar kullanılmış en küçük değeri bulmak, bunu bir yere yazmak. Daha sonra yine tabletleri baştan sona tarayarak bir sonraki değeri bulmak ve bu da yeni tablette ikinci sıraya yazmak. Ve bu işi sonuna kadar böyle sürdürmek. Tabii bir haftalık emek sonunda ikinci satırdaki değeri bulabilirlerse, ne mutlu onlara. Diğer bir deyişle yaklaşık 800 değeri bulup altalta yazmak için, 800 hafta yani 16 yıl harcamak gerekecek. Peki, ya bir de arama sırasında daha önce atlamış oldukları bir değerle karşılaşırlarsa? Hayır, rahibin asıl ihtiyacı, emirlerini uygulayacak bir yazıcı ordusu değil, bu görevi en azından 16 yıldan çok daha kısa bir sürede yapabilmek için yazıcılara hangi emri vermesi gerektiğini bulmasını sağlayacak bir fikirdi. Yazıcılar ne yapabileceklerdi? Çivi yazısıyla yazılmış sayıları kopya edecekler ve hangisinin daha küçük olduğunu belirleyeceklerdi. Peki, bunu yapmak için de her defasında tüm arşivi yeniden taramaları mı gerekecekti? Bir yazıcıya eski tabletlerden ikisini verse ve deseydi ki: ““Bu tabletlerden birini en üstteki sayıya kadar bir palmiye yaprağıyla kapat. Diğer tablette de aynı şeyi yap. Şimdi elinde yalnızca iki sayı olacak. Bunlardan küçük olanını bir başka yere yaz ve o tabletteki yaprağı bir sıra aşağı indir. Yeni bir sayı göreceksin. Şimdi yine küçük olan sayıyı seç ve onu da ikinci sayı olarak yeni tablete geçir. Yaprağı yine bir sıra aşağı al ve böylece devam et.” İşin sonnuda yazıcının elinde iki eski tablet yerine daha uzun ama tek bir yeni tablet olcaktı. Bu yeni tablette her iki tabletin üzerindeki sayılar büyüklük sırasına göre altalta sıralanmış olacaktı. Bir önceki zamanlama örneğinden yola çıkacak olursak, bir yazıcı günde yalnızca 80 sayıyı halledebilse, 10 günde elinde baştakinin yarısı kadar (ama daha uzun) tablet kalacaktı. Bundan sonra yeni tabletlerden ikisini yanyana getirecek ve bir 10 gün daha harcayarak tablet sayısını yeniden yarıya indirecekti. Birden fazla sayıda yazıcı paralel olarak çalıştırıldığında, 16 yıl yerine birkaç hafta içinde tüm sayıları kapsayan tek bir tablet elde edilmiş olacaktı. Bu fikir rahibin biraz başını döndürdü. Neyi “keşfetmişti?”” Yeni bir “hesap” türü değildi bu aslında. Ama başlangıçta çözülemez gibi görünen bir ödevi, hızlı -ve hemen hiç düşünüp taşınmayı gerektirmeksizinçözebilmeyi sağlayan yeni bir tem”di. Anu aşkına, yoksa bu yeni bir tür büyü müydü? Olayın gerçekten böyle gelişip gelişmediğini bilmiyoruz. Kesin olan şu ki, kazılarda bulunan bir Babil tabletinde 800'den fazla sayı ve bunların ters değerleri, büyüklüklerine göre tasnif edilmiş olarak yazılıydı (tamamen düzensiz olarak bölümlenmiş olan değerlerinden de anlaşıldığı üzere, farklı kaynaklardan biraraya getirilmiş olmaları gerekiyordu). Bu tabletinin yaratıcısı, yakaşık İÖ 200 yılında böyle bir sayı yığınım tasnif etmek için ilk ““metot'- *lardan birini bulmuştu: Tasnif için kullanılan bir “algoritma”. Bu “yeni bir büyü türü”, adını ancak 1000 yıl sonra alabilecekti -hem de komik bir yanlışlık sonucunda. Inakibit-Anu tabletlerinin oluşturulduğu tarihlerde bir başka Babilli rahip-astronom, çok daha uzun süre etkileri olacak bir başka şey “bulmuştu”. Aslında çivi yazısıyla yazmakta olduğu sayılarda yaptığı küçük bir ““güzellik hatası”” onu boşuna sinirlendirmişti. Kil tablete yanyana sekiz kama kazıdığında, bunun anlamı sekiz oluyordu (sekiz kere 1). Bunların önüne biraz aralık bırakarak tek bir kama daha kazığında, bu tek kamanın anlamı da altmış oluyordu (bir kama ve sekiz kama, 60 4 8 — 68). Peki, bu tek kama kendi başına ne anlam taşıyordu? ““1”” mi, yoksa “*“60”” mı? Bunu belirleyebilmek için o günden sora bu tür tek kamaların ardına iki küçük eğik çizgi koymaya başladı. Bu çizgilerin anlamı, “hiçbir şey”'den başka bir şey değildi. Ama kama bu “hiçbir şey”'in önünde durTuyorsa, sayının 60 olarak okunması gerekiyordu. Onun “bulduğu” şey, aslında sıfirdı. Yunanlı astronom Ptolemeus, Babil'in altmışlı sistemini takip eden ve henüz üzerinde ““hiçbir” derece, dakika ve saniye bulunmayan açı tablolarında, Yunanca “ouden” (hiçbir şey) karşılığı olarak küçük bir dairecik kullanmıştı. Fakat “*0”'ın asıl ne işe yarayabileceğini bulanlar, Yunanhlar değil Hintliler oldu. İnsanlar birdenbire, o güne kadarki anlamda “hesaplamaları” yapmaksızın, bir sayıyı onla, yüzle binle çarpma olanağına kavuştular. Bunu yapmak için sayının ardına bu küçük daireciklerden bir, iki ya da üç tane koymak yeterliydi. Sıfırın varlığı. Batı'da, o dönemdeki Avrupa'da kullanılan roma rakamlarında olduğu gim.
Akılcı sort işlemi: En üstten başla ve daima daha küçük olanı yazarak devam et! Bu yolla kısa sürede listeleri yarıya indirebilirsiniz. Yalnız listeler öncekinden uzun olacaktır.