1 / 47

Sayı Teorisinin Temelleri

Sayı Teorisinin Temelleri. İçindekiler. Bölünebilme işleminin özellikleri Asal sayılar Aritmetiğin temel teoremi Bölme algoritması OBEB/OKEK Aralarında asal sayılar Modüler aritmetik Şifreleme algoritması örnekleri. Sayı Teorisi Neden Önemli.

nysa
Download Presentation

Sayı Teorisinin Temelleri

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sayı Teorisinin Temelleri

  2. İçindekiler • Bölünebilme işleminin özellikleri • Asal sayılar • Aritmetiğin temel teoremi • Bölme algoritması • OBEB/OKEK • Aralarında asal sayılar • Modüler aritmetik • Şifreleme algoritması örnekleri

  3. Sayı Teorisi Neden Önemli • Bilgisayarlar keşfedilmeden önce sayı teorisi pure (saf) matematiğin ve kişisel estetiğin önemli bir parçası idi. • İkinci dünya savaşına yön vermiştir. • İnternet üzerinde elektronik ticaret güvenliğinin temelini oluşturmaktadır. • Günümüzde sayı teorisi şifreleme algoritmaları için kritik bir öneme sahiptir. • Birçok şifreleme algoritmasının temelini modüler aritmetik oluşturmaktadır. • Bu bölümde sayı teorisinin bu temel elemanlarına ilişkin algoritmaları inceleyeceğiz.

  4. Bölünebilme İşlemi a, b vec tamsayı olmak üzere a = b ·c . İfadesi için b vec değerleri a’nınböleni (veya çarpanı) olarak adlandırılır.“|” sembolü “böler” işlemini gösterir: b | a  c | a . NOT: çoğu zaman bu gösterim karışıklığa sebep olmaktadır. “|” sembolü ile “/” sembolü karıştırılmaktadır.

  5. Örnek • Aşağıdaki ifadelerden kaçı doğrudur. • 77 | 7 • 7 | 77 • 24 | 24 • 0 | 24 • 24 | 0

  6. Örnek • 77 | 7: yanlış çünkü büyük sayı kendinden küçük sayıyı bölemez. • 7 | 77: doğruçünkü 77 = 7 ·11 • 24 | 24: doğruçünkü 24 = 24 ·1 • 0 | 24: yanlış, çünkü 0 değerini sadece 0 böler • 24 | 0: doğru çünkü 0 her sayıyı böler (0 = 24 ·0)

  7. Bir n sayısının çarpanlarının sayısı • 100’den küçük 15’in çarpanı olan kaç tane sayı vardır?

  8. Bir n sayısının çarpanlarının sayısı • 100’den küçük 15’in çarpanı olan kaç tane sayı vardır? • 15, 30, 45, 60, 75, 80, 95. • Peki 1.000.000’dan küçük 15’in çarpanı olan kaç tane sayı vardır?

  9. Bir n sayısının çarpanlarının sayısı • Peki 1.000.000’dan küçük 15’in çarpanı olan kaç tane sayı vardır? • Herhangi bir N sayısından küçük d’nin çarpanlarının sayısı aşağıdaki ifade ile bulunur. • |{m  Z+ | d |m and m  N }| = N/d

  10. Bölünebilme Teoreminin Özellikleri a, b, vec tamsayı ise: • a|b a|c a|(b + c ) • a|b a|bc • a|b b|c a|c Örnek • 17|34  17|170  17|204 • 17|34  17|340 • 6|12  12|144  6 | 144

  11. Asal Sayılar • n 2 için bir sayı asal ise sadece 1 ve kendisine bölünebilir. • Bir sayı asal değil ise kompozit sayı olarak adlandırılır. Aritmetiğin Temel Teoremi • Herhangi bir sayı iki veya daha fazla asal sayının çarpımı şeklinde yazılabilir.

  12. Asallığın Test Edilmesi booleanisPrime(integer n) if ( n < 2 ) return false for(i= 2 to n -1) if( i|n ) // “divides”! not disjunction return false return true • Soru: bu algoritmanın çalışma zamanı nedir?

  13. Asallığın Test Edilmesi • Algoritmanın çalışma zamanını O(n) olarak belirleyebiliriz. Çünkü baskın terim n’dir. • Bu ifade bize algoritmanın çalışma zamanının n değerine bağlı olduğunu göstermektedir. • n=1.000.000 için giriş boyutunun 7 dijit olduğunu biliyoruz. • Daha genel bir ifade ile giriş boyutu k dijit için çalışma zamanı O (10k ) olacak. • Bu değer çok büyük bir değerdir. Soru: Bu algoritmayı nasıl iyileştirebiliriz?

  14. Asallığın Test Edilmesi • n/2 den büyük sayıları denemeyiz • Çift sayıları denemeyiz. Biliyoruz ki bir sayı çift ise asal değildir. Bu durumda sayıların yarısını denemeyiz. • Genellikle sadece küçük asal sayıları deneriz. • Aslında sadece den küçük asal sayıları denememiz yeterli olacaktır.

  15. Asallığın Test Edilmesi • Eğer bir n sayısı kompozit bir sayı ise bu sayının en küçük asal çarpanı  Soru: Yukarıda verilen ifadeyi nasıl ispat edebiliriz.

  16. Asallığın Test Edilmesi • Eğer bir n sayısı kompozit bir sayı ise bu sayının en küçük asal çarpanı  • Çelişki ile ispat yöntemini kullanabiliriz • Bunun için den büyük bir asal çarpanının olduğunu varsayalım. • Aritmetiğin temel teoremini kullanarak n = pqxyazabiliriz. Burada p ve q değerleri asal x ise tamsayı olsun. Bu durumda aşağıdaki ifadeyi elde ederiz. İfade bir çelişki olduğundan yukarıdaki teorem doğrudur.

  17. Örnek • 139 ve 143 değerlerinin asal olup olmadığını test ediniz.

  18. Örnek • 139 ve 143 değerlerinin asal olup olmadığını test ediniz. • Aşağıdaki asal sayı listesini deneyelim • 2: sayıların hiçbiri çift değil bölünemez. • 3: Basamakların toplamı: 1+3+9 = 13, 1+4+3 = 8 ikiside 3 ile bölünemez. • 5: İki sayınında sonu 0 veya 5’e bölünemiyor. • 7: 140 değeri 7’ye tam bölündüğünden iki sayıda 7’ye tam bölünemez • 11: Basamakların toplamı 1-3+9 = 7 olduğundan 139 bölünemez fakat 1-4+3 = 0 olduğundan 143 bölünebilir. • Sonlandırma koşulu!Sonraki denenecek asal sayı 13 fakat den daha büyük olduğu için artık denenmez. • Sonuç: 139 asal, 143 kompozit sayıdır.

  19. Bölme İşlemi 117 = 31·3 + 24 a = dq+ r qbölüm dbölen abölünen r kalan

  20. OBEB (Ortak Bölenlerin En Büyüğü) • OBEB(a,b)=d ise hem a hem de b sayılarını bölebilen en büyük sayının d olduğu anlamına gelir. • OBEB(a,b)=1 ise a ve b sayıları aralarında asal sayılardır. Bu sayıların aralarında asal olmaları gerekmez. • obeb=gcd (Greatest Common Divisor) • gcd(11,77) • gcd(33,77) • gcd(24,36) • gcd(24,25)

  21. OBEB (Ortak Bölenlerin En Büyüğü) • obeb(98,420). • Her bir sayı için asal çarpanlar bulunur 98 = 2·49 = 2·7·7 420 = 2·210 = 2·2·105 = 2·2·3·35 = 2·2·3·5·7 Ortak Çarpanların altı çizilir: 2·7·7, 2·2·3·5·7 Sonuç olarak, obeb(98,420) = 14

  22. Aralarında Asal Sayılar • Aşağıdaki küme için aralarında asal olan maksimum uzunluklu alt kümeyi bulunuz. • { 44, 28, 21, 15, 169, 17 }

  23. Aralarında Asal Sayılar • Aşağıdaki liste için aralarında asal olan maksimum uzunluklu alt kümeyi bulunuz. • { 44, 28, 21, 15, 169, 17 } • Olası cevaplar • {17, 169, 28, 15}. • {17, 169, 44, 15}.

  24. OKEK (Ortak Katların En Küçüğü) • okek(a,b)=m ise hem a hem de b sayılarının bölebildiği katlarının en küçüğü m sayısıdır. • okek=lcm (Least Common Multiple) • lcm(10,100) = 100 • lcm(7,5) = 35 • lcm(9,21) = 63 Teorem: • lcm(a,b) = ab / gcd(a,b)

  25. Euclidean Algoritması m , n gcd(m,n) integer euclid(pos. integer m, pos. integer n) x = m, y = n while(y > 0) r = x mod y x = y y = r return x Euclidean Algorithm

  26. Örnek gcd(33,77):

  27. Örnek gcd(33,77):

  28. Örnek gcd(33,77):

  29. Örnek gcd(33,77):

  30. Örnek gcd(244,117):

  31. Örnek gcd(244,117):

  32. Örnek gcd(244,117):

  33. Örnek gcd(244,117):

  34. Örnek gcd(244,117):

  35. Örnek gcd(244,117):

  36. Euclidean Algoritmasının Doğruluğu Euclidean algoritması incelenirse gcd(x,y) ifadesinin değişmediği görülür. x’, y’ifadeleri x, y değerlerinin bir sonraki değerlerini göstermek üzere: gcd(x’,y’) = gcd(y, xmody) = gcd(y, x +qy) = gcd(y, x ) = gcd(x,y)

  37. integer euclid(m, n) x = m, y = n while( y > 0) r = x mod y x = y y = r return x O (1) + ?  ( O (1) + O (1) + O (1) + O (1) + O (1) ) = ?  O(1) Euclidean Algoritmasının Çalışma Zamanı Nedir? mod işleminin çalışma zamanınınO (1) olduğunu varsayalım: Burada “?” while döngüsünün iterasyon sayısıdır.

  38. Modüler Aritmetik İki tip “mod” işlemi vardır (KARIŞTIRMAYIN): • modfonksiyonu • Girişler: Bir a sayı değeri ve b taban değeri • Çıkışlar: a modb sonucu olarak 0 ve b –1 aralığında sayılar • Bu değer ab ifadesinin sonucundaki kalan değeridir • C#, Java gibi programlama dillerindeki % operatörüdür. • (mod) congruence • a, a’ gibi iki sayı ve bunların göreceli olduğu bir b tabanıyla ilgilidir. • a  a’(modb) bu ifadenin anlamı a ve a’ değerleri b değerini böldüğü zaman aynı kalanı veirler.

  39. mod fonksiyonu • 113 mod 24: • -29 mod 7

  40. (mod) congruence Tanım: • a,a’değerleri tamsayı ve b pozitif tamsayı olsun • a  a’(mod b) ancak ve ancakb | (a –a’). • a mod b = a’mod b Soru: Aşağıdakilerden hangileri doğrudur. • 3  3 (mod 17) • 3  -3 (mod 17) • 172  177 (mod 5) • -13  13 (mod 26)

  41. Bazı Önemli Özellikler • a mod b  a (mod b) • a  a’(mod b) ve c  c’(mod b) ise: • a+c (a’+c’)(mod b) • ac  a’c’(mod b) • a k a’k(mod b)

  42. Örnek • 3071001 mod 102 3071001 mod 102  3071001(mod 102) • 11001(mod 102)  1(mod 102). Bu yüzden, 3071001 mod 102 = 1. • (-45·77) mod 17 • (-45·77)(mod 17)(6·9)(mod 17) •  54(mod 17)  3(mod 17). Bu yüzden(-45·77) mod 17 = 3.

  43. Harf  SayıDönüşüm Tablosu

  44. Şifreleme Örneği Şifreleme fonksiyonu aşağıdaki gibi olsun f (a) = (3a + 9) mod 26 Şifre“Merhaba” • MERHABA(Büyük harfe çevir) • 13,5,18,8,1,2,1 • 22,24,11,7,12,15,12 • VXKGLOL

  45. Şifre Çözme İşlemi Şifre çözme işleminde şifreleme işleminde kullanılan fonksiyonun tersi uygulanacaktır Aşağıdaki fonksiyonun tersini bulacağız f (a) = (3a + 9) mod 26 • g (a) = 3-1 (a - 9) • gcd(3,26) = 1, olması için 3’ün tersi mod 26’da 9 olarak tanımlanır. • Bu durumda şifre çözme fonksiyonu: g (a) = 9(a - 9) mod 26 = (9a – 3) mod 26

  46. Sezar Şifresi • Sezar şifreleme algoritmasının fonksiyonu aşağıda verilmiştir. f (a) = (a+3) mod 26 • Buna göre soyadınızı şifreleyiniz • Şifre çözme fonksiyonunu tanımlayınız

  47. Google’den inciler • 2004 yılında reklam panolarında aşağıdaki link yayınlandı. • Doğru adresi girenler Google’in iş başvurusu sayfasına yönlendirildi

More Related