Hızlı Kuvvet Alma: Bir Milyar Çarpmadan Otuza İnmek
$a^{1000000000}$'i hesaplamak için bir milyar çarpma gerekmez. Eski Hint ve İslam matematikçilerinin keşfettiği bu hile bugün şifrelemenin temelidir.

Naif yöntem niye yetersiz?
hesaplamak için aklınıza ilk gelen ne olur? "n−1 defa ile çarp." Yani:
Dört çarpma. için 99 çarpma. için bir milyar çarpma. Bilgisayar saniyede milyarlarca işlem yapsa bile bu sayıların çok büyük olduğu (yüzlerce basamaklı) bir bağlamda — örneğin RSA şifrelemesinde — naif yöntem dakikalar sürer. Oysa kareleme tabanlı yöntem aynı işi milisaniyenin altında bitirir.
Kareleme ile kuvvet alma
Hile basit: önce hesapla, sonra , sonra … Her kareleme üssü ikiye katlar. 'yı yalnızca dört kareleme ile elde edersin:
Peki gibi 2'nin kuvveti olmayan sayılar? Üssü ikili tabanda yaz:
O zaman . Yani önce karelemeyle 'i hazırla; sonra ikili gösterimde 1 olan basamaklara karşılık gelenleri çarp. Toplam çarpma sayısı kareleme + en fazla ek çarpma.
"Bir milyar çarpma"dan otuza
için . Yani naif yöntemin gerektirdiği bir milyar çarpma yerine yaklaşık 60 çarpma (30 kareleme + en fazla 30 ek). 30 milyon kat hızlanma. Üstelik küçük üsler için fark dramatik değilken üs ne kadar büyürse algoritma o kadar fark atar.
Pseudo-kod (sade)
function pow(a, n):
result = 1
base = a
while n > 0:
if n is odd:
result = result * base
base = base * base
n = n // 2
return result
Her döngüde ikiye bölünür; en sondaki bit 1 ise sonuca mevcut eklenir. Klasik "square-and-multiply" örüntüsü.
Tarihte iz: Pingala'dan İbni Sina'ya
Bu fikir aslında çok eskidir. Pingala adlı Hint matematikçi (M.Ö. 2. yüzyıl) Sanskrit prosodisi (vezin) üzerine yazdığı eserde 2'nin kuvvetlerini ikili gösterimle bağdaştırmıştı. Orta Çağ İslam matematikçileri (örn. Al-Karaji, İbn Yahya el-Maghribi al-Samaw'al) cebirsel kuvvetlerin hesaplanmasında benzer kısa yolları kullandı. Avrupa'da algoritmanın modern hali 17. yüzyılda Briggs'in logaritma tablolarında belirgin hale geldi.
RSA: niye bu algoritma olmadan modern internet çalışmaz?
Modern şifreleme (RSA, Diffie-Hellman, ElGamal) modüler üs almaya dayanır:
Burada ve tipik olarak 2048 bit (yaklaşık 600 basamak) uzunluğunda sayılardır. Naif yöntem kadar çarpma ister — evrenin ömründen uzun. Kareleme yöntemiyle yalnızca ~2048 modüler çarpma yapılır; modern CPU bunu milisaniyede bitirir.
Her HTTPS bağlantısı kurarken, banka uygulamasına girerken, mesajlaşma uygulamasında "bitmiş güvenlik" simgesini görürken arka planda bu algoritma çalışıyor. Hız olmadan kriptografi olmazdı; algoritma olmadan hız olmazdı.
Genel ders: "doğal yöntem" çoğu zaman en kötüsüdür
Çarpma için tekrarlı toplama, kuvvet için tekrarlı çarpma, arama için tek tek bakma — hepsi sezgisel ama hepsi . Akıllı bir bölme/birleştirme stratejisi (böl ve fethet, kareleme, ikili arama) çoğu zaman bunları 'a indirir. Logaritmik fark, ölçek büyüdükçe gözünüze inanılmaz görünür.
Bir milyar yerine otuz. Aradaki köprü: ikili gösterim. Aynı ikili gösterim ki bilgisayarın ne dediğini bildiği tek dildir.
Etiketler
Kendinizi Test Edin
Cevaplarınız profilinizde istatistik olarak saklanır.
1. Naif yöntemle $a^n$ kaç çarpma gerektirir?
2. Kareleme tabanlı kuvvet alma karmaşıklığı nedir?
3. $a^{13}$ hesaplanırken üs ikili tabanda nasıl yazılır?
4. Modern RSA şifrelemesi neden bu algoritmaya muhtaçtır?
5. Hint matematikçi Pingala (M.Ö. ~2. yy) hangi kavramı erken çalışmıştır?
İlgili Yazılar
İki Çocuk Paradoksu: "Biri Kız" Demek Olasılığı Neden Değiştirir?
Bir ailenin iki çocuğu var ve en az biri kız. İkisinin de kız olma olasılığı kaçtır? Çoğu insan "yarı yarıya" der ve yanılır. Bu küçük bulmaca, koşullu olasılığın ne kadar kaygan olduğunu gösterir.
MatematikKıyamet Argümanı: Olasılıkla İnsanlığın Ömrü Tahmin Edilebilir mi?
Sadece "sıradan bir insan" olduğunuz varsayımından yola çıkarak, insan türünün daha ne kadar süreceğini tahmin etmeye çalışan tuhaf bir akıl yürütme var. İkna edici mi, yoksa istatistiğin bir tuzağı mı?
MatematikManifold Nedir? Eğri Uzayları "Düzleştirerek" Anlamanın Matematiği
Dünya yuvarlaktır, ama elinizdeki harita düzdür ve gayet işe yarar. İşte manifold fikri tam olarak budur: küçük parçaları düz görünen, ama bütünüyle eğri olabilen uzaylar. Modern geometrinin ve fiziğin dili.