Ders içerikleri 1.Önermeler Mantığı 2. Çıkarım kuralları 3.Kümeler ve Fonksiyonlar 4.Büyük-O gösterimi 5.Sayılar Teorisi ve kriptografi 6.Sayılar Teorisi ve kriptografi 7.Tümevarım ve özyineleme 8. Sayma 9. Ayrık olasılık 10.İleri sayma teknikleri 11.Bağıntılar 12.Graflar ve ağaçlar 13.Graf algoritmaları 14.Sonlu Durumlu Makineleri Düşünme eylemi ne zaman başladı ? Socrates:M.Ö. 469- M.Ö. 399 Plato :M.Ö. 427- M.Ö. 347 Aristotle :M.Ö. 384- M.Ö. 322 Önermeler Mantığı p : proposition, Önerme : Y arg ı bildiren cümledir p : Türkyeninbaşkenti Ankara ' dır q :1 1 3 p:22 4 Bir önermenin değili r:2 5 p:23 4 p gösterilir Her cümle önerme değildir Saat kaç ? Dikkatli ol. x 1 3 x y z Önerme değildir Önerme değildir Birleşik önermeler Önermeler Mantığı p : Ali hafta sonu Kızılay ' a gider. q : Hasan hafta sonu Kızılay ' a gider. r : Ali Kızılay ' a gider VE( : AND) Hasan Kızılay ' a gider s : Ali Kızılay ' a gider VEYA( : OR) Hasan Kızılay ' a gider Birleşik önermeler Önermeler Mantığı pq Hipotez Sonuç p : Ali Kızılay ' a gider. q : Hasan Kızılay ' a gider. r : EĞER Ali Kızılay ' a gider İSE(: İSE) Hasan Kızılay ' a gider. s : EĞER finalden100 alır İSE(: İSE) harf notu AAolur. t : EĞER Orçun' nun akıllı telefonu var İSE 2 2 5. t :EĞER fil uçar İSE enflasyon düşer. EĞER n sayısı 6 bölünebilir İSE n sayısı 3 bölünebilir. ( p q) ( p q ) pq Önermeler Mantığı Birleşik önermeler p: x 3 q : x2 3 r : if x 3, then x2 3 r : Eğer x2 5 ise o zaman x2 12 x 4 3 Önermeler Mantığı Birleşik önermeler p : Ali uçağabindi. q : Ali bilet aldı. r : ANCAK ve ANCAK Ali bilet aldı İSE Uçağa binebilir. Önermeler Mantığı ( p q) Önermelerin denkliği p q pq Önermeler Mantığı Önermeler Mantığı Çalışma Soruları S-1 S-2 S-3 S-4 Çalışma Soruları S-5 S-6 S-7 Önermeler Mantığı: Evrensel niceleyiciler ve Önermeler fonksiyonu x : bütün x , All x P( x) : x 1 3 P( x) : x 3 P(4) : 4 3 doğru x : bazı x , x Exist Q( x, y) : x y 3 Q(1, 2) : 1 2 3 yanlış Q(3,0) : 3 0 3 doğru P(2) : 2 3 yanlış xP( x) : bütün x değerleri için doğru veya yanlış xP( x) : x 1 x bütün x değerleri için doğrudur xP( x) : bazı x değerleri için doğru veya yanlış xP( x) : x 3 bazı x değerleri için doğrudur x 1 3 Önermeler Mantığı: Evrensel niceleyiciler ve Önermeler fonksiyonu xP( x) : Bu sınıftaki her x öğrencisi Ayrık Matematik der sin i başarmak zorundadır xP( x) : Ayrık Matematik der sin de başarılıolanbazı x öğrencisi var dır Önermeler Mantığı: Evrensel niceleyiciler ve Önermeler fonksiyonu x( P( x) Q( x)) : EĞERbazı x öğrencisi Ayrık Matematik der sin i alır İSE başarılıolabilir n( P(n) Q(n)) : EĞER n tek İSE n2 tektir Q( x, y) : x y 3 Önermeler Mantığı:Çıkarım kuralları EĞER geçerli şifreniz var İSE internete bağlanabilirsiniz. Geçerli şifreniz var. O HALDE internete bağlanabilirsiniz. Önermeler Mantığı:Çıkarım kuralları EĞER n sayısının son rakamı 0 İSE n 10 bölünebilir. n=2410 sayısının son rakamı 0. O HALDE 2410 10 bölünebilir. Önermeler Mantığı:Çıkarım kuralları EĞER köpek tavşanı görür İSE köpek havlar. Köpek havlamıyor. O HALDE köpek tavşanı görmedi. p q q p Önermeler Mantığı:Çıkarım kuralları EĞER araba alır İSEn paran azalır. EĞER paran azalır İSE kitap alamazsın. O HALDE araba alır İSEn kitap alamazsın. Önermeler Mantığı:Çıkarım kuralları Önermeler Mantığı: Evrensel niceleyiciler ve Önermeler fonksiyonu 32 42 52 9 16 25 12 12 ?2 11 2 Önermeler Mantığı:Çıkarım kuralları EĞER bir geometrik şekil üçgen İSE iç açılarının toplamı 180 derecedir Önermeler Mantığı:Çıkarım kuralları Önermeler Mantığı:Çıkarım kuralları Tower of Hanoi Önermeler Mantığı:Çıkarım kuralları Kümeler Venn diyagramı Kümeler Venn diyagramı Kümeler Evrensel küme ve tümleyen Kümeler Kartezyen çarpımı Kartezyen çarpımı An An1 xA {0,1} 2 x {0,1}x{0,1} 2 {00,01,10,11} 3 2 x {00,01,10,11}x{0,1} 3 {000,001,010,011,100,101,110,111} Kleen * Operatörü Alfabe kümesi olmak üzere * 0 1 2 3 ... a, b ise 0 * , a, b, aa, ab, ba, bb, aaa, aab, Kleen ise * 0 1 2 3 ... a, b, aa, ab, ba, bb, aaa, aab, 33 Sayı kümeleri Natural numbers Z:Zahlen, Tam sayı Z Z {0} Z Q: Quotients of integers veya Rational numbers tam sayı bölümlemesi veya oransal sayılar (ratio:oran) Q:rasyonel sayılar p ve q pozitif reel sayılar R:real numbers, reel sayılar Sayı kümeleri Sayı kümeleri Floating point sayıların binary kodlanması IEEE Standard for Floating-Point Arithmetic (IEEE 754) x y fractionexp onent Tam sayı dizileri Natural numbers Z:Zahlen, Tam sayı Z Z {0} Z an f (n) n2 Tam sayı dizileri Natural numbers an f (n) n2 Fonksiyonlar f :RR y f ( x) x R y f ( x) x a Eğer m n ise xm xn , m, n Z Fonksiyonlar y f ( x) b x Eğer x1 x2 ise b x1 b x2 Fonksiyonlar y f ( x) 2 x Fonksiyonlar y f ( x) logb x logb y x b x y Fonksiyonlar y f ( x) logb x loge x ln x , e 2.71 Fonksiyonlar Fonksiyonlar y f ( x) logb x logb y x b x y loge x ln x , e 2.71 log b x log c x logb c her hangi bir x 0 değeri için logb x b x Fonksiyonlar y f ( x) loge x ln x loge x ln x , e 2.71 her hangi bir x 0 değeri için ln x log e x e x Fonksiyonlar y f ( x) log 2 x k Z ve x R ise Fonksiyonlar y f ( x) x log b x b 1 ve x b için x x logb x x 2 b R ve r R iken ayrıca b 1 ve r 0 için logb x xr ve x r b x dir Fonksiyonlar b R ve b 1 için logb x xn , n 1 ve n Z ayrıca xn b x , n 1 ve n Z Büyük-O Gösterimi Fonksiyonların büyümesi:Growth of Functions Big -O notation: Big O Little-o notation: o Big Big -Omega notation: Big -Theta notation: C ve k: deliller Big Büyük-O Gösterimi nin büyük –O sunun g ( x) x 2 Olduğunu gösterelim Büyük-o Gösterimi Alternatif olarak Büyük-O Gösterimi nin büyük –O sunun g ( x) x 2 | f ( x) | C | g ( x) | x2 x 1 2 2 2 C 2 x x x 1 1 1 2 2 C x x | f ( x) | C | g ( x) | Olduğunu gösterelim C 0 | f ( x) | lim x | g ( x ) | x k 1 1 1 1 2 C 4 1 1 Büyük-O Gösterimi nin büyük –O sunun Olduğunu gösterelim g ( x) x 2 | f ( x) | C | g ( x) | x2 x 1 2 2 2 C 2 x x x 1 1 1 2 2 C x x | f ( x) | C | g ( x) | | f ( x) | lim x | g ( x ) | x k 1 1 1 1 2 C 4 1 1 Büyük-O Gösterimi | f (n) | C | g (n) | 1 n2 1 n C 2 2 2 n 2 n | f ( n) | C | g ( n) | n k 1 C 1 | f ( n) | lim n | g ( n) | g (n) n2 O(n2 ) Örnek Büyük-O Gösterimi f ( x) 7 x2 nin O( g ( x)) O( x3 ) olduğunu gösterin. C 1ve k 7 x 7 için 7 x2 x3 veya g ( x) x 3 Örnek g ( x) x n Örnek Büyük-O Gösterimi | f (n) | C | g (n) |, n k O( g (n)) O(n 2 ) g (n) n2 Büyük-O Gösterimi | f (n) | C | g (n) |, n k Örnek b ve c R b 1 ve c 1 için f (n) logb n logb n C logc n , n k için O(logc n) g (n) logc n log c n 1 logb n l og c n log c b log c b logb n C l ogc n 1 C log c b log10 n 1 logb n l og10 n log10 b log10 b 1 C log10 b Büyük-O Gösterimi | f (n) | C | g (n) |, n k Örnek O (2 n ) log2 n n log2 2 n C logb n n logb 2 n C C logb 2 f (n) log 2 n log10 n n log10 2 n C C log10 2 O(n) g (n) n log c x 1 logb x l og c x log c b log c b log 2 x 1 log 2 x l og 2 x log 2 2 log 2 2 O(n) g (n) n Büyük-O Gösterimi | f (n) | C | g (n) |, n k y f ( x) x log b x Örnek x x logb x x 2 f (n) n log(n) g (n) n 2 O(n 2 ) Büyük-O Gösterimi | f (n) | C | g (n) |, n k Örnek f (n) n n log2 n b 2 ve n 2 için n n log2 n n n log2 n 2n log2 n | n n log2 n | 2 | n log2 n | C 2 ve k 2 g (n) n log2 n O(n log2 n) Büyük-O Gösterimi örnek | f (n) | C | g (n) |, n k g (n) nn örnek f (n) log(n!) g (n) n log n Karmaşıklık sıralaması Karmaşıklık sıralaması Büyük-O Gösterimi Birleşik fonksiyonlar 1. Kural 2. Kural Büyük-O Gösterimi 1. Kural 2. Kural f ( x) f1 ( x) f 2 ( x) f3 ( x) f1 ( x) x 1 O1 ( x) f3 ( x) 3x2 O3 ( x 2 ) f 2 ( x) log( x2 1) için f 2 ( x) O2 (log x) için O(max(O1 ( x)O2 ( x), O3 ( x)) O(max( x log x, x 2 )) O( x 2 ) Büyük-O Gösterimi Örnek f (n) n2 log(n3 1) (n3 4n2 5) f (n) f1 (n) f 2 (n) f3 (n) f 2 (n) log(n3 1) log(n3 n3 ) log(2n3 ) log 2 l og n3 log 2 3l og n log 2 l og n3 log 2 3l og n 3l og n, n 2 için O2 (log n), C 3 ve k 2 O(n) O(max(O1 (n)O2 (n), O3 (n)) O(n) O(max(n2 log n, n3 )) O(n3 ) O1 (n2 ) O3 (n3 ) Büyük-O Gösterimi Örnek f (n) f1 (n) f 2 (n) f3 (n) f 4 (n) f1 (n) 3n O1 (n) f3 (n) n2 3 O3 (n2 ) O(n) O(max(O1 (n)O2 (n), O3 (n)O4 (n)) Sonuç O ( n 2 log n) ??? Büyük-O Gösterimi Çalışma soruları :f(n) s1 s2 s3 Büyük-O Gösterimi Büyük-O örnekleri void fonksiyon1() { printf("merhaba); } void fonksiyon2(int n) { for (int i = 0; i <n; i++) { printf("merhaba); } } void fonksiyon3(int n) { for (int i = 0; i <n; i++) { for (int j = 0; j <n; j++) { printf("merhaba); } } } O1 (n) 1 f1 (n) 1 f 2 (n) n f 3 ( n) n O2 (n) n 2 O3 (n) n 2 Büyük-O Gösterimi Büyük-O örnekleri void fonksiyon4(int n) { for (int i = 0; i <n; i++) { printf("merhaba); } for (i = 0; i <n; i++) { printf("merhaba); f 4 (n) 2n O4 (n) n } } void fonksiyon5(int n) { printf("merhaba); for (int i = 0; i <n/2; i++) { printf("merhaba); } for (int i = 0; i <100; i++) { printf("merhaba); } } f5 (n) 1 n / 2 100 O5 (n) n Büyük-O Gösterimi Büyük-O örnekleri int fibonacci(int n) { if (n <= 1) return n; return fibonacci(n - 2) + fibonacci(n - 1); } f 6 ( n) 2 n O6 (n) 2n ? void fonksiyon7(int n) { printf("merhaba); for (int i = 0; i <n; i++) { printf("merhaba); } for (k = 0; k <n; k++) { for (i = 0; i <n; i++) { for (j = 0; j <n; j++) { printf("merhaba); } } } } f 7 ( n) 1 n n 3 O7 (n) n3 Büyük-o Gösterimi Büyük-O örnekleri int fonksiyon8(int n) { toplam=0 for(int i = 1; i < =n; i*=2) {toplam++;} return toplam } int fonksiyon8(int n) { toplam=0 for(int i = n; i >0; i/=2) {toplam++;} return toplam } 2k n O8 (n) log n ? f8 (n) ? den iki tarafında logaritması alınırsa while (n > 0) { n /= 2; } iterasyon | n ----------+------0 | n 1 | n/2 2 | n/4 ... | ... ... | ... k k | n/2 k = log(n) Büyük-o Gösterimi Büyük-O örnekleri void fonksiyon9 (int n) { for( int i=0;i<n; i++) { for( int j=1;i<=n; j*=2 ) { .. .. } } } f9 (n) ? O9 (n) n log n ? Sayılar ve kriptografi Sayı kümeleri p ve q pozitif real sayılar Sayılar ve kriptografi Bölünebilirlik ve Mod 3 böler 12 önermesi doğru 3 böler 7 önermesi yanlış p : a | b, a böler b ka b yada b ka p : 3|12, 4 x3 12 doğru Eğer a | b ve a | c ise a | (b c) Eğer a | b ve b | c ise a | c Sayılar ve kriptografi Bölünebilirlik ve Mod k pozitif tam sayı Sayılar ve kriptografi Bölünebilirlik ve Mod Örnek mod 6 için Sayılar ve kriptografi Modüler aritmetik ve özellikleri Örnek Sayılar ve kriptografi Modüler aritmetik ve özellikleri an bn mod m k. a k.b mod m Örnek Sayılar ve kriptografi Modüler aritmetik ve özellikleri Örnek Fermat teoremi a, p aralarında asal ise obeb(a,p)=1 ise obeb(7,11) 1 olduğundan 710 1mod(11) Sayılar ve kriptografi Modüler aritmetik ve özellikleri Wilson teoremi ( p 1)! 1mod( p) , p asal sayı ( p 1)! 1 0mod( p) (( p 1)!)2 (1)2 1mod( p) Sayılar ve kriptografi Asal sayılar, p: 1 ve kendisinde başka sayıya kalansız bölünemeyen tam sayılar Prime numbers an 2n, n N Ç {2, 4,6,8,....} T {1,3,5,7,....} an 2n 1, n N Asan sayılar kümesi A {2,3,5,7,11,13,17,19, 23, 29,31,37, 41, 43,....} an 4n 1, n N , n 1, 2,3 an 4n 3, n N , n 1, 2,3 an n 2 n 41, n N , 1 n 40 Sayılar ve kriptografi Mersenne primes: an 2n 1, n N , A {3,7,31,127,....} Eratosthenes Kalburu A {2,3,5,7,11,13,17,19, 23, 29,31,37, 41, 43,....} Sayılar ve kriptografi Asal çarpanlara ayırma Prime numbers Factorization Sayılar ve kriptografi OBEB ortak bölenlerin en büyüğü (En büyük ortak bölen ) OKEK ortak katların en küçüğü (En küçük ortak kat ) greatest common divisor: gcd(a,b) OBEB(48,54) 2.3 6 OKEK (48,54) 2.2.2.2.3.3.3 22 33 48x54 OBEB(48,54) xOKEK 48,54) 6 xOKEK (48,54) Sayılar ve kriptografi Sayılar ve kriptografi Euler fi fonksiyonu: Euler phi function (Euler Totient) (n) :1 x n olmak üzere obeb( x, n) 1 olan sayıların SAYISIDIR 1.kural : n asal sayı ( p) ise ( p) p 1 2.kural : n asal sayı ( p) ise ( p ) p p 1 (2) 1 (3) 2 (4) 2 (5) 4 3.kural : n aralarında asal sayı p ve q nun çarpımı ise n p q (n) ( p q) ( p ) ( q) dir 4.kural : n asal çarpanları şeklinde ise n p1 1 p2 2 p3 3 ... pk k ( n) n( p 1 p1 1 p2 1 p3 1 )( )( )......( k ) p1 p2 p3 pk (n) ( p1 1 p1 11 )( p2 2 p2 21 )( p3 3 p3 31 )...( pk k pk k 1 ) Sayılar ve kriptografi Euler fi fonksiyonu: Euler phi function (Euler Totient) Sayılar ve kriptografi Bézout's Theorem obeb (a,b) için Öklid algoritması Obeb(7854,4746)=42=d obeb(a,b)=d=ax+by =d=as+bt Genişletilmiş Öklid Algoritması x=-29 ve y=48 Sayılar ve kriptografi Bézout's Theorem Obeb(120,84)=120x+84y Öklid algoritması Obeb(a,b)=d=ax+by =d=as+bt Obeb(120,84)=12 Genişletilmiş Öklid Algoritması x=-2 ve y=3 obeb(4620,101)=4620 x+101 y=1 Sayılar ve kriptografi Lineer Denklikler (linear congruence ) ax b mod m ax b km x km b tam sayı olmalıdır a Farklı k lar için farklı çözümler vardır Lineer denklikler için temel özelikler: 1. 2. ve ve obeb(c, m) 1 ise obeb(c, m) d ise a b mod(m / d ) Sayılar ve kriptografi Lineer Denklikler (linear congruence ) Lineer denklikler için temel özelikler: ise 3. 4. obeb(a, m) 1 ise ‘nın çözümü yoktur ‘nın 1 tane çözümü VARDIR ÖRNEK obeb(5, 23) 1olduğundan 1tan eçözümü var dır Öklid algoritmasından obeb(5, 23) s 5 t 23 1 Bezout teori min den a 5 s 9 olup a ' in mod ülo tersidir. aa 1mod 23 Sayılar ve kriptografi Lineer Denklikler (linear congruence ) obeb(a, m) 1olduğunda 1tan eçözümü var dır obeb(a, m) 1 sa tm yazılabilir Sayılar ve kriptografi Lineer Denklikler (linear congruence ) ÖRNEK 105x 20mod106 obeb(105,106) 1olduğundan 1tan eçözümü var dır a s 1 olup 105' in mod ülo tersidir. ÖRNEK 33x 7 mod143 obeb(33,143) 11olduğundan çözüm mevcut değil çünkü Sayılar ve kriptografi Lineer Denklikler (linear congruence ) ÖRNEK obeb(124,900) 4 olduğundan 31x 33mod 225 yazılabilir obeb(31, 225) 1olduğundan a s 29 olup 31' in mod ülo tersidir. Sayılar ve kriptografi Lineer Denklikler (linear congruence ) ÖRNEK yazılabilir obeb(30,119) 1olduğundan a s 4 olup a ' in mod119 göre tersidir. Sayılar ve kriptografi Lineer Denklikler (linear congruence ) ÖRNEK yazılabilir Sayılar ve kriptografi Lineer Denklikler uygulamaları Çinli kalan teoremi: Chinese remainder theorem Sayılar ve kriptografi Lineer Denklikler uygulamaları Sözde rastgele sayı üreteci: pseudorandom number generator (PRNG) mod 9 Sayılar ve kriptografi Von Neumann sözde rastgele sayı üreteci: (PRNG) x0 8765 EXORshift sözde rastgele sayı üreteci: (PRNG) xk 1 xk ( xk 2) 10011001 : xk 1001100100 : xk 2 1011111101 : xk 1 Kriptografi Sayılar ve kriptografi Şifreleme algoritmaları 1-Caesar şifresi y ( x k ) mod 26 x ( y k 26) mod 26 f ( x) ( x k ) mod 255 x ( f ( x) k 255) mod 255 ANKARA DRNDUD Sayılar ve kriptografi 2-Polybius şifresi 1 1 2 3 4 5 a b c d e 2 f g h i j 3 k l m n o 4 p q r s t 5 u v w x y/z ankara 11 34 31 11 43 11 Sayılar ve kriptografi Şifreleme algoritmaları 3-Vigenera şifresi Şifreleme algoritmaları Kriptografi 4-Doğrusal(Affine) şifresi f ( x) (ax b) mod 255 x a ( f ( x) b) mod 255 a : a' nın 255 göre mod ülo tersi OBEB(a,255) 1 olmalıdır f(x) = (5x + 8) mod 26 Kriptografi Şifreleme algoritmaları 5-EXOR şifreleme f ( x) x k x f ( x) k Sayılar ve kriptografi 6-RSA( Rivest–Shamir–Adleman) şifreleme algoritması