MATEMATİK VE ALGORİTMANIN GÜCÜ

0
215

Galileo zamanında matematik için “Matematik, Tanrı’nın evreni yazdığı dildir.” demiştir. Gerçekten de matematik bizi her türlü büyüler, evreni anlamamızı sağlar. Ancak sadece evren değil aslında her an elimizin altında olan bilgisayarlarda matematikten yapılmıştır.

Bilgisayarlar bildiğiniz üzere hızlı işlem yapabilen, verileri saklayabilen bir cihazdır. Bilgisayar üzerinde işlem yapabilmek için bir takım komutlar yazarsınız ve çalıştırırsınız. Basit bir 4 işlemden tutun pi sayısının keşfine kadar her işlemi bir insanın yapabileceğinden kat kat hızlı bir şekilde bilgisayarla yapabilirsiniz. Fakat bilgisayarlarda işlem yapabilmek sistematik bir süreç gerektirir. İşte bu sistematik sürecin planlama kısmına biz algoritma diyoruz. Bir başka deyişle kafamdakini bilgisayara nasıl anlatırım sorusunu düşünmeye algoritma diyoruz. Ben de sizlere matematiği bilgisayara nasıl anlatırız onu anlatacağım. Yani matematiğin algoritmasını…

 

Mesela basit bir örnek yapalım. Öncelikle bilgisayar 4 işlemi nasıl yapıyor? Normal bir bilgisayarda 8 basamaklı bir sayı ile 6 basamaklı bir sayıyı milisaniye altında hesaplayabiliyoruz. Peki, bilgisayar bunu nasıl yapıyor? 4 işlemin algoritması nedir? Bunun için önce bilgisayarların çalışma prensibine kısaca değinelim.

 

Bizler bildiğiniz gibi günlük hayatta 10’luk taban kullanırız. Yani elde dediğimiz sayı toplam 10’u ve katlarını geçtiğinde hesaba katılır. Bilgisayar ise 2’lik(binary) taban kullanır. Yani bizdeki 5 sayısı bilgisayar için 101’dir. Ve bilgisayarlar işlem yaparken bu 2’lik tabanı kullanır. Tabanlar farklı olmasına rağmen hesaplama tarzı aynıdır. Yani “grade school” algoritması kullanılır.

 

Peki nedir bu “grade school” algoritması? Hepimizin bildiği 4 işlem hesaplamalarına “grade school” algoritması denir. Örnek vermek gerekirse 324 + 193 işlemini ele alalım.

4 + 3 = 7

2 + 9 = 1 (elde var 1)

3 + 1 = 4 + 1 = 5

517

 

Sonucu 517 olarak bulduk. Şimdide bilgisayar gözünden bakalım fakat binary sistem kullandığımız için küçük sayılar seçelim. Mesela 7 + 5 işlemini ele alalım.

Denkliklerimizi yazalım (7)10 = (111)2  ve (5)10 = (101)2

111 + 101

1 + 1 = 0(elde var 1)

1 + 0 = 1 + 1 = 0(elde var 1)

1 +1 = 10 + 1 = 11(son eleman olduğu için bir basamak daha artırmış olduk)

(1100)2 = (12)10

 

Gördüğünüz gibi bilgisayarlar da 2’lik sistemde herkesin bildiği gibi toplama işlemini gerçekleştirdi. Bilgisayarlarda bu işlemler donanım temelli olarak ALU dediğimiz devrelerde gerçekleştirilir. Bir ALU üzerinde toplama, çıkarma, “ve”, “veya” işlemleri tanımlıdır. ALU’lar kapı dediğimiz lojik devrelerden oluşurlar.  Fakat şimdi konumuz bu olmadığı için fazla detaylı anlatmanın lüzumu yok.

 

Tekrar algoritmalara dönecek olursak, algoritmaların karmaşıklığı dediğimiz bir nokta vardır. Kısaca açıklamak gerekirse algoritmanın verimi diyebiliriz. Algoritmaların verimi pek çok açıdan ölçülebilir. Buna zaman, yer(bellekte kapladığı alan) örnek olarak verilebilir. Biz şimdilik zaman açısından ele alalım. Algoritmanın zamansal verimi algoritmanın girdisi ile ölçülür. O halde “Grade School” algoritmasına göre toplama işleminin karmaşıklığını inceleyelim.

 

1.İlk sayının ilk basamağını al ve ikinci sayının ilk basamağını al İkisini topla

  1. Adımı bir sol basamak kayarak sayı bitimine kadar sürdür.

Algoritmamızı yazdık. Burada n basamaklı 2 sayıyı topladığımızı düşünelim. Yani algoritmamızda n tane basamağı tek tek dolanıyoruz. Yani karmaşıklığımız n karmaşıklıktır.

Evet, gördüğünüz gibi matematik ve algoritma tencere ve kapağı gibi yuvarlanıp birbirini tamamlar.

CEVAP VER