Yazan : Şadi Evren ŞEKER

Tarihi çarpma algoritmalarından birsidir. Bu çarpma algoritmasının özelliği, çarpma işlemi sırasında kafes benzeri bir sayı tablosu kullanmasıdır.

16. yüzyılda yayınlanan Umdet-ul Hisab isimli kitabında Matrakçı Nasuh tarafından 6 ayrı halinin anlatıldığı çarpma metodu o yıllardaki Enderunda matematik eğitiminin parçası olarak okutulmuştur.

Algoritma basitçe 3 aşamadan oluşur.

  1. Çarpma aşamasında sayıların çarpımından çıkan 2 haneli sayılar kafese doldurulur.
  2. Toplama aşamasında kafesteki sayılar çaprazlamasına toplanır.
  3. Son olarak elde edilen sayılar birleştirilerek toplanır.

Bu algoritmanın çalışmasını örnek bir çarpma üzerinden göstermeye çalışalım.

Çarpmak istediğimiz sayılar 2543 ve 7532 olsun. Çarpma işlemimiz için bir tablo oluşturuyoruz ve bu tablonun sütunlarına ilk çarpandan birer sayı ve satırlarına da ikinci çarpandan birer sayı gelecek şekilde yerleştiriyoruz.

Kafesteki sayıların teker teker çarpımını yapıyoruz. Örneğin tablonun sağ üst köşesindeki 3 ile 7’nin kesiştiği hücreye 21 sonucunu 2 ve 1 olarak bu hücreye yazıyoruz.

Tek haneli sayıların çarpımından en fazla iki haneli sayılar çıkabilir. (en yüksek tek haneli sayı 9 ve 9×9=81’dir) dolayısıyla yukarıdaki bütün ihtimallerde sayılar ya tek ya da iki haneli olarak bulunur. Tek haneli bulunması durumunda başına 0 eklenerek iki haneye çıkarılır. Örneğin son kolonun en alt satırında 3 ile 2 çarpılmış sonuç 6 bulunmuş ve bu hücreye 06 yazılmıştır.

Sonuçlar yukarıdaki şekilde yazıldıktan sonra çaprazlama olarak toplanır.

Yukarıdaki tabloda her köşegenin toplamı, ilgili köşegenin altına yazılmıştır. Tam olarak görebilmek için yukarıdaki tablodan üç köşegen işaretlenerek aşağıda gösterilmiştir.

Örneğin mavi köşegendeki sayılar, yukarıdan aşağıda doğru, 2+5+2+0+0 = 9 bu köşegenin sonuna,

Kırmızı köşegendeki sayılar : 1 + 1+0+1+5+1+4 = 13

Yeşil köşegendeki sayılar 9+0+8 = 17

Şeklinde bulunur ve yazılır.

Son aşamada bu sayılar sırasıyla okunarak toplanır. Öncelikle bu sayıları çıkaralım:

01,08,09,24,13,07,17,06

Sayıların hepsi tek haneli olsaydı direk sayıları yan yana birleştirerek sonucu bulacaktık. Ancak arada iki haneli sayılar olduğu için toplama işlemi yapılmalıdır.

01

008

0009

00024

000013

0000007

00000017

000000006

Yukarıda görüldüğü üzere, sayılar her adımda başına ilave bir 0 eklenerek yazılır. Sayıların ilave eklentisi birer hane kaydırmayı amaçlamaktadır.

Sonuç bu sayıların toplamıdır :

19153876

Görüldüğü üzere çarpım işlemi olan 2543 x 7532 = 19153876

Olarak başarılı bir şekilde bulunmuştur.

Bu çarpma işlemi, yukarıda detaylıca anlatıldığı için biraz uzun gibi gelebilir, ancak alışılması ve özellikle iki haneli sonuçların bulunmaması durumunda oldukça hızlı çalışır.

Örneğin aşağıda 121 x 41 işleminin sonucu verilmiştir:

Sonuç görüldüğü üzere 4961 olarak bulunur.

Kafes Çarpımın Kodlanması

Yukarıda anlatılan algoritma kullanılarak iki sayının çarpımını yapan kod aşağıdaki şekilde C dilinde yazılabilir.

Kodun çıktısı aşağıda verilmiştir:

Kodda da görüldüğü üzere, 73532 ile 25543 sayılarının çarpım sonucu, 01878227876 olarak bulunmuştur. Yukarıdaki kod, performans kaygısı güdülmeden, algoritma analizi konuları içerilmeden basit programlamaya giriş çerçevesinde yazılmış koddur.

Yorumlar

xman için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir