640 likes | 932 Views
Chapter 4 Number Theory Benchaporn Jantarakongkul. 1. The Integers and Division. ทฤษฎีจำนวน เป็นสาขาหนึ่งในวิชาคณิตศาสตร์ ที่ศึกษาเกี่ยวกับคุณสมบัติของจำนวนเต็ม มีบทบาทสำคัญกับอัลกอริธึมต่างๆ เช่น hash functions, cryptography, digital signatures. 2. Divides , Factor , Multiple.
E N D
Chapter 4Number TheoryBenchaporn Jantarakongkul Faculty of Informatics, Burapha University 1
The Integers and Division • ทฤษฎีจำนวน เป็นสาขาหนึ่งในวิชาคณิตศาสตร์ ที่ศึกษาเกี่ยวกับคุณสมบัติของจำนวนเต็ม มีบทบาทสำคัญกับอัลกอริธึมต่างๆ เช่น hash functions, cryptography, digital signatures Faculty of Informatics, Burapha University 2
Divides, Factor, Multiple • กำหนดให้a,bZโดยที่a0 • นิยาม.:a|b “adividesb”: (cZ:b=ac)“มีจำนวนเต็ม cจำนวนหนึ่งที่cนั้นคูณกับa แล้วเท่ากับ b” • เช่น: 312 True, แต่ 37 False • ถ้าaหารb ได้ลงตัว, แล้วเรากล่าวได้ว่า aเป็นตัวประกอบ(factor)หรือเป็นตัวหาร(divisor)ของ b, และbเป็นพหุคูณ(multiple)ของa • เช่น: “bเป็นเลขคู่” :≡ 2|bหรือ b=2c • 0 เป็นเลขคู่? −4 เป็นเลขคู่? Faculty of Informatics, Burapha University 3
Divisors-Examples ข้อใดต่อไปนี้เป็นจริง? • 77 | 7 • 7 | 77 • 24 | 24 • 0 | 24 • 24 | 0 Faculty of Informatics, Burapha University 4
Divisors-Examples ตอบ: • 77 | 7: เท็จ เพราะ จำนวนที่มากกว่าไม่สามารถหารจำนวนที่น้อยกว่าได้ลงตัว • 7 | 77: จริง เพราะ 77 = 7 · 11 • 24 | 24: จริง เพราะ 24 = 24 · 1 • 0 | 24: เท็จ เพราะเราไม่นิยามการหารด้วยศูนย์ • 24 | 0: จริง เพราะ 0 สามารถหารได้ลงตัวด้วยเลขทุกจำนวน(0 = 24 · 0) Faculty of Informatics, Burapha University 5
Facts re: the Divides Relation • Theorem:a,b,c Z: 1. a≠0 a|0 และ a|a 2. (a|b a|c) a | (b + c) 3. a|b a|bc 4. (a|b b|c) a|c 5. [a|(b+c) a|b)] a|c ตัวอย่าง เช่น: • 17|0 • 17|34 17|170 17|204 • 17|34 17|340 • 6|12 12|144 6 | 144 Faculty of Informatics, Burapha University 6
More Detailed Version of Proof • พิสูจน์ทฤษฎีที่ (2): • พิสูจน์ว่าa,b,c Z: (a|b a|c) a | (b + c) • กำหนดให้a, b, cเป็นจำนวนเต็มใดๆโดยที่ a|bและa|c, และแสดงว่า a | (b + c) • จากนิยามของการหารลงตัว |, เราทราบว่า s: b=as, และt: c=atโดยกำหนดให้s, t เป็นจำนวนเต็มใดๆ • ดังนั้นb+c = as + at = a(s+t), หรือเขียนได้ว่าu: b+c=au, โดยu=s+tจึงสรุปได้ว่าa|(b+c) Faculty of Informatics, Burapha University 7
More Detailed Version of Proof • พิสูจน์ทฤษฎีที่ (3): • สมมติว่าa|bจากนิยามจะได้ว่ามีจำนวนเต็ม m โดยที่ b = amคูณทั้งสองข้างด้วยc จะได้ว่า bc=amc= a (mc) • จะเห็นได้ว่าbcสามารถเขียนให้อยู่ในรูปของaคูณกับจำนวนเต็มmcดังนั้น จากนิยามของ“|” จึงสรุปได้ว่าa|bc■ Faculty of Informatics, Burapha University 8
Prime Numbers • จำนวนเต็มp>1เป็นจำนวนเฉพาะ(prime)ก็ต่อเมื่อจำนวนเต็มนั้นไม่เป็นผลคูณของจำนวนเต็มสองตัวใดๆที่มากกว่า 1:p>1 a,bN:a>1, b>1, ab=p • ข้อสังเกต: 1 ไม่เป็นจำนวนเฉพาะ • ตัวประกอบที่เป็นบวกของจำนวนเฉพาะ pคือ 1 และp(ตัวของมันเอง)เท่านั้นเช่น: 2,3,5,7,11,13... • จำนวนเต็มที่ไม่ใช่จำนวนเฉพาะที่มีค่ามากกว่า 1 เรียกว่าจำนวนประกอบ(composite), เพราะจำนวนดังกล่าวเกิดจากการคูณกันของจำนวนเต็มที่มากกว่า 1 สองจำนวน Faculty of Informatics, Burapha University 9
Prime Numbers Q: จำนวนต่อไปนี้ จำนวนใดเป็นจำนวนเฉพาะ? 0,1,2,3,4,5,6,7,8,9,10 A: 0, และ 1 ไม่เป็นจำนวนเฉพาะ เพราะจำนวนเฉพาะต้องเป็นจำนวนบวกที่มากกว่าหรือเท่ากับ 2 2 เป็นจำนวนเฉพาะ เพราะ มี 1 และ 2 เท่านั้นเป็นตัวประกอบ 3 เป็นจำนวนเฉพาะ เพราะ มี 1 และ 3 เท่านั้นเป็นตัวประกอบ 4,6,8,10 ไม่เป็นจำนวนเฉพาะ เพราะสามารถหารด้วย 2 ได้ลงตัว 5, 7 เป็นจำนวนเฉพาะ เพราะ มี 1 และตัวมันเองเท่านั้นเป็นตัวประกอบ 9 = 3 · 3 จึงไม่เป็นจำนวนเฉพาะ Faculty of Informatics, Burapha University 10
การทดสอบการเป็นจำนวนเฉพาะการทดสอบการเป็นจำนวนเฉพาะ จำนวนเฉพาะมีบทบาทสำคัญในการเข้ารหัส จึงจำเป็นต้องสามารถตรวจสอบได้ว่าจำนวนใดๆเป็นจำนวนเฉพาะหรือไม่ ซึ่งจะพบว่าในทางปฏิบัติทำได้ยาก หากจำนวนนั้นเป็นเลขขนาดใหญ่มากๆ ต่อไปนี้เป็นตัวอย่างอัลกอริธึมในการตรวจสอบว่าจำนวนเต็ม nเป็นจำนวนเฉพาะหรือไม่: boolean isPrime(integer n) if ( n < 2 ) return false for(i = 2 to n -1) if( i|n ) // ถ้า i หาร nได้ลงตัว return false return true Faculty of Informatics, Burapha University 11
Primality Testing • ไม่จำเป็นต้องทดสอบด้วยจำนวนที่มากกว่า n/2 • เมื่อทดสอบด้วย 2 แล้วยังคงหาร nไม่ลงตัว ไม่จำเป็นต้องทดสอบด้วยจำนวนคู่อื่นๆอีก เพราะ เมื่อมาถึงขั้นนี้ เราจะทราบแล้วว่า n เป็นจำนวนคี่ • เริ่มทดสอบต่อไปด้วยจำนวนเฉพาะที่มีค่าน้อยๆก่อน ได้แก่ 3,5,7,… ถ้า 3 หาร nไม่ลงตัว ไม่จำเป็นต้องทดสอบด้วยพหุคูณของ 3 อื่นๆ เช่น 6, 9,12,…อีก • ในความเป็นจริงแล้ว จำนวนเฉพาะที่จะนำมาทดสอบจะต้องมีค่าไม่เกิน ซึ่งจะแสดงเหตุผลในสไลด์ต่อไป: Faculty of Informatics, Burapha University 12
Primality Testing LEMMA: ถ้าn เป็นจำนวนประกอบ แล้วตัวประกอบที่เป็นจำนวนเฉพาะที่เล็กที่สุดของ n จะมีค่า พิสูจน์ (by contradiction)สมมติให้ตัวประกอบที่เป็นจำนวนเฉพาะที่เล็กที่สุดมีค่า > จากความรู้พื้นฐานด้านคณิตศาสตร์สามารถเขียนได้ว่าn = pqxโดยp และq เป็นจำนวนเฉพาะที่ > และx เป็นจำนวนเต็ม ดังนั้นจะได้ว่า นั่นคือ n>n ซึ่งเป็นไปไม่ได้, ดังนั้นที่เราสมมติว่าตัวประกอบที่เป็นจำนวนเฉพาะที่เล็กที่สุดมีค่า > จึงเป็นเท็จ แสดงว่าประโยคตามที่ทฤษฎีกล่าวไว้เป็นจริงนั่นเอง จากทฤษฎีข้างบน จะได้ว่า “ถ้า n ไม่มีตัวหารที่เป็นจำนวนเฉพาะที่ แล้ว สรุปได้ว่า nเป็นจำนวนเฉพาะ” Faculty of Informatics, Burapha University 13
Primality Testing-Example ตัวอย่าง: จงทดสอบว่า 139 และ 143 เป็นจำนวนเฉพาะหรือไม่ โดยเขียนจำนวนเฉพาะที่มีค่าน้อยกว่าหรือเท่ากับ และ แล้วนำจำนวนเฉพาะดังกล่าวไปตรวจสอบกับจำนวนที่ต้องการว่าหารได้ลงตัวหรือไม่ เช่น 2: หาร 139 และ 143 ไม่ลงตัว(จำนวนทั้งสองเป็นจำนวนคี่) 3: หาร 139 ไม่ลงตัว และ 3: หาร 143 ไม่ลงตัว 5: หาร 139 และ 143 ไม่ลงตัว(จำนวนทั้งสองไม่ลงท้ายด้วย 5 หรือ 0) 7: หาร 139 และ 143 ไม่ลงตัว 11: หาร 139 ไม่ลงตัวแต่11: หาร 143 ลงตัว STOP!จำนวนเฉพาะตัวต่อไปคือ 13 แต่ 13 มีค่ามากกว่า จึงไม่จำเป็นต้องนำมาทดสอบ สรุปได้ว่า: 139 เป็นจำนวนเฉพาะ แต่ 143 เป็นจำนวนประกอบ Faculty of Informatics, Burapha University 14
ทฤษฎีหลักมูลของเลขคณิตทฤษฎีหลักมูลของเลขคณิต • จำนวนเต็มบวกทุกตัวสามารถแยกตัวประกอบ และ เขียนในรูปผลคูณของชุดจำนวนเฉพาะที่เรียงจากจำนวนเฉพาะที่มีค่าน้อยไปมากได้เพียงแบบเดียวเท่านั้น • ตัวอย่าง เช่น: • 1 = 1 • 2 = 2 • 4 = 2·2 (การคูณของ 2 และ 2) • 100 = 2·2·5·5 = 22·52 • 2000 = 2·2·2·2·5·5·5; 2001 = 3·23·29;2002 = 2·7·11·13; • ลองแยกตัวประกอบของ 1573 = ? Its "Prime Factorization" Faculty of Informatics, Burapha University 15
An Application of Primes! • เมื่อเราเข้าเว็บที่มีการรักษาความปลอดภัย (สังเกตจากโปรโตคอล https:… หรือสัญลักษณ์รูปกุญแจบนหน้าต่างเว็บเบราเซอร์), โปรแกรมเว็บเบราเซอร์และเว็บไซต์นั้นๆอาจมีการใช้เทคโนโลยีที่เรียกว่าการเข้ารหัสแบบ RSA (RSA encryption) • การเข้ารหัสถอดรหัสโดยใช้คีย์สาธารณะ(public-key cryptography) เป็นการแลกเปลี่ยนคีย์สาธารณะ(public keys) ซึ่งเป็นจำนวนที่เกิดจากการคูณจำนวนเฉพาะขนาดใหญ่pqเข้าด้วยกัน โดยจำนวนเฉพาะ pและq (เรียกว่าคีย์ส่วนตัวหรือprivate key) จะถูกเก็บไว้เป็นความลับ เฉพาะผู้สร้างรหัสเท่านั้นที่จะทราบค่าทั้งสองนี้ • การเจาะระบบการรักษาความปลอดภัยบนรายการข้อมูลของเว็บนั้นๆ จึงจัดเป็นขั้นตอนที่ยาก เพราะการแยกตัวประกอบของคีย์สาธารณะออกเป็นจำนวนเฉพาะเพื่อให้ทราบคีย์ส่วนตัวนั้นค่อนข้างซับซ้อนพอสมควร Faculty of Informatics, Burapha University 16
The Division • Theorem: สำหรับจำนวนเต็มใดๆ ตัวตั้ง(dividend)aและตัวหาร(divisor)d≠0, มีจำนวนเต็มเพียงค่าเดียวที่เป็นผลหาร(quotient)qและ เศษ(remainder)rNโดยที่ a = dq + rและ0 r < |d| • จากทฤษฎีข้างบน, • dเรียกว่า ตัวหาร(divisor), • aเรียกว่า ตัวตั้ง(dividend), • qเรียกว่า ผลหาร(quotient), และ • rเรียกว่า เศษเหลือ(remainder) Faculty of Informatics, Burapha University 17
Division การหารยาว 117 = 31·3 + 24 a = dq+ r q the quotient d the divisor r the remainder a the dividend Faculty of Informatics, Burapha University 18
Division การหารยาว -11 = 3·(-4) +1 ข้อสังเกต: เศษเหลือจะเป็นจำนวนลบไม่ได้ a = dq + r q the quotient d the divisor 1 r the remainder a the dividend Faculty of Informatics, Burapha University 19
ตัวหารร่วมมาก(Greatest Common Divisor) • ตัวหารร่วมมาก(ห.ร.ม.) หรือ gcd(a,b) ของจำนวนเต็ม a,b (โดยทั้งสองจำนวนไม่เป็น 0) คือจำนวนเต็มบวกที่มากที่สุดdที่เป็นตัวหารที่มีค่ามากที่สุดที่หาร aและ bได้ลงตัว d = gcd(a,b) = max(d: d|a d|b) d|a d|b eZ,(e|a e|b) → d ≥ e • ตัวอย่าง เช่น:gcd(24,36)=?ตัวหารร่วมของทั้งสองจำนวน ได้แก่: 1,2,3,4,6,12แต่ตัวหารร่วมที่มีค่ามากที่สุดคือ 12 Faculty of Informatics, Burapha University 20
ตัวหารร่วมมาก(Greatest Common Divisor) ตัวอย่าง 1:จงหา gcd(48, 72) ? • ตัวหารร่วมของ 48 และ 72 คือ 1, 2, 3, 4, 6, 8, 12, 16, 24 ดังนั้น gcd(48, 72) = 24 ตัวอย่าง 2:จงหา gcd(19, 72) ? • ตัวหารร่วมของ 19 และ 72 มีเพียงตัวเดียวคือ 1, ดังนั้น gcd(19, 72) = 1 Faculty of Informatics, Burapha University 21
GCD shortcut • ถ้า prime factorizations ของจำนวนเต็มสองจำนวนเขียนแทนได้ด้วยและ ,ดังนั้น ห.ร.ม. หรือ GCD ของจำนวนทั้งสองหาได้โดย: • ตัวอย่าง เช่น: • a=84=2·2·3·7 = 22·31·71 • b=96=2·2·2·2·2·3 = 25·31·70 • gcd(84,96) = 22·31·70 = 2·2·3 = 12. Faculty of Informatics, Burapha University
Relative Primality • จำนวนเต็มaและbเรียกว่าเป็นจำนวนเฉพาะสัมพัทธ์(relatively prime) หรือcoprimeก็ต่อเมื่อ gcdของจำนวนทั้งสองมีค่าเท่ากับ 1 ตัวอย่าง เช่น: • 21 และ 10 เป็น relatively prime?Yes , gcd(21, 10) = 1 (21=3·7 และ 10=2·5, จะเห็นว่าจำนวนทั้งสองไม่มีตัวประกอบร่วมกันที่ > 1, ดังนั้นgcdของจำนวนทั้งสอง คือ 1) • 15 และ 28 เป็น relatively prime?Yes, gcd(15, 28) = 1 • 55 และ 28 เป็น relatively prime?Yes, gcd(55, 28) = 1 • 35 และ 28 เป็น relatively prime?No, gcd(35, 28) = 7 Faculty of Informatics, Burapha University 23
Greatest Common DivisorRelatively Prime Q: จงหา ห.ร.ม.หรือgcd ต่อไปนี้: • gcd(11,77) • gcd(33,77) • gcd(24,36) • gcd(24,25) Faculty of Informatics, Burapha University 24
Greatest Common DivisorRelatively Prime A: • gcd(11,77) = 11 • gcd(33,77) = 11 • gcd(24,36) = 12 • gcd(24,25) = 1 ดังนั้น 24 และ 25 เป็นจำนวนเฉพาะสัมพัทธ์(relatively prime) ข้อสังเกต: จำนวนเฉพาะใดๆจะเป็น relatively prime กับจำนวนอื่นๆทุกตัวที่จำนวนเฉพาะนั้นหารไม่ลงตัว Faculty of Informatics, Burapha University 25
Pairwise relatively prime • เซตของจำนวนเต็ม {a1,a2,…} เป็นจำนวนเฉพาะสัมพัทธ์เป็นคู่(pairwise relatively prime)ถ้าทุกคู่ (ai, aj), เมื่อij, เป็นrelatively prime Q: จงหาเซตย่อยที่มีขนาดใหญ่ที่สุดที่เป็นpairwise relatively primeของเซตที่กำหนดให้ต่อไปนี้ { 44, 28, 21, 15, 169, 17 } Faculty of Informatics, Burapha University 26
Pairwise relatively prime A: เซตย่อยที่มีขนาดใหญ่ที่สุดที่เป็นpairwise relatively primeของ {44, 28, 21, 15, 169, 17} : มีได้หลายคำตอบ เช่น{17, 169, 28, 15}หรือ {17, 169, 44, 15} ตัวอย่าง: 15, 17, และ 27 เป็น pairwise relatively prime หรือไม่? • ไม่ใช่, เพราะgcd(15, 27) = 3 15, 17, และ 28 เป็น pairwise relatively prime หรือไม่? • ใช่, เพราะgcd(15, 17) = 1, gcd(15, 28) = 1 และgcd(17, 28) = 1 Faculty of Informatics, Burapha University 27
ตัวคูณร่วมน้อย(Least Common Multiple) • ค.ร.น. หรือlcm(a,b)ของจำนวนเต็มบวก a, b, คือจำนวนเต็มบวกที่เล็กที่สุดที่เป็นพหุคูณของทั้งaและ bเช่น lcm(6,10)=30 m = lcm(a,b) = min(m: a|m b|m)a|m b|mnZ: (a|n b|n) → (m ≤ n) • ถ้า prime factorizations ของจำนวนเต็มสองจำนวนเขียนแทนด้วยและ , ดังนั้น LCM หาได้โดย Faculty of Informatics, Burapha University 28
คูณร่วมน้อย(Least Common Multiple) Q: จงหา ค.ร.น. หรือ lcm ต่อไปนี้: • lcm(10,100) • lcm(7,5) • lcm(9,21) • lcm(3, 7) • lcm(4, 6) Faculty of Informatics, Burapha University 29
คูณร่วมน้อย(Least Common Multiple) A: • lcm(10,100) = 100 • lcm(7,5) = 35 • lcm(9,21) = 63 • lcm(3, 7) = 21 • lcm(4, 6) =12 ตัวอย่าง: a = 60 =22 31 51 b = 54 = 21 33 50 lcm(a, b) = lcm(60, 54) = 22 33 51 = 4275 = 540 Faculty of Informatics, Burapha University 30
GCD และ LCM a = 60 = 22 31 51 b = 54 = 21 33 50 gcd(a, b) = 21 31 50 = 6 lcm(a, b) = 22 33 51 = 540 Theorem: ab = gcd(a,b)lcm(a,b) Faculty of Informatics, Burapha University 31
The mod operator • mod เป็นตัวดำเนินการกับจำนวนเต็มเพื่อหาเศษที่เหลือจากการหาร • กำหนดให้a,dZโดยd>1ดังนั้นamoddแทนเศษrที่เหลือจากการหารตัวตั้ง aด้วยตัวหารd • สามารถคำนวณค่า (amodd)ได้โดย: a d·a/d • ในภาษา C/C++/Java ,ใช้เครื่องหมาย “%” แทนการ mod • ผลจากการใช้ “%” ใน Java อาจได้ผลลัพธ์ที่เป็น บวกหรือลบก็ได้ แต่ในทฤษฎีจำนวนเราสนใจเศษที่เป็นบวกเท่านั้น เช่น -10 mod 3 = 2 แต่ใน Java –10%3 = -1 Faculty of Informatics, Burapha University 32
mod function จงหาค่า • 113 mod 24: • -29 mod 7 Faculty of Informatics, Burapha University 33
Modular Congruence • กำหนดให้a,bZ, mZ+ โดยที่Z+={nZ| n>0}=N−{0} (จำนวนเต็มบวก) • ดังนั้นaคอนกรูเอนซ์(congruent)กับbมอดุโลm, เขียนได้ว่า “ab (mod m)”,ก็ต่อเมื่อm | abเรียก m ว่า มอดุลัส • หรือเขียนได้ว่า: (ab) mod m = 0 ข้อสังเกตุ1.ab (mod m)ก็ต่อเมื่อa mod m = b mod m 2.ab (mod m)ก็ต่อเมื่อมีจำนวนเต็มkซึ่งทำให้a= b+km Faculty of Informatics, Burapha University 34
Modular Congruence Q: ข้อใดต่อไปนี้เป็นจริง? • 3 3 (mod 17) • 3 -3 (mod 17) • 172 177 (mod 5) • -13 13 (mod 26) Faculty of Informatics, Burapha University 35
Modular Congruence A: • 3 3 (mod 17) จริง เพราะจำนวนใดๆคอนกรูเอนซ์กับตัวเองเสมอ (3-3 = 0 หารได้ลงตัวด้วยทุกจำนวน) • 3 -3 (mod 17) เท็จ (3-(-3)) = 6 ไม่สามารถหารได้ลงตัวด้วย 17 • 172 177 (mod 5) จริง 172-177 = -5 เป็นพหุคูณของ 5 • -13 13 (mod 26) จริง -13-13 = -26 หารได้ลงตัวด้วย 26 Faculty of Informatics, Burapha University 36
Spiral Visualization of mod ≡ 0(mod 5) ตัวอย่าง แสดงการmodulo-5 20 15 ≡ 1(mod 5) 10 ≡ 4(mod 5) 21 19 5 14 16 9 11 0 4 6 1 3 2 8 7 13 12 18 17 22 ≡ 2(mod 5) ≡ 3(mod 5) Faculty of Informatics, Burapha University 37
Useful Congruence Theorems • Theorem:กำหนดให้a,bZ, mZ+ดังนั้น:ab (mod m) kZa=b+km Proof. direction: ถ้าa = b + km, แล้ว (a-b ) = km นั่นคือ m | (a-b) ซึ่งจากนิยาม หมายความว่าa b (mod m) direction: ถ้าa b (mod m), จากนิยาม m | (a-b ) ดังนั้นมีจำนวน kบางจำนวนที่ (a-b ) = kmหรือเขียนได้ว่า a = b + km Faculty of Informatics, Burapha University 38
Useful Congruence Theorems • Theorem:กำหนดให้a,b,c,dZ, m,nZ+ 1. ถ้า ab (mod m)และcd (mod m), ดังนั้น: ▪ a+c b+d (mod m), และ ▪ac bd (mod m) 2.ถ้าab (mod m)และbc (mod m), ดังนั้นa c (mod m) 3. ถ้าab (mod m)ดังนั้นanbn (mod m) Faculty of Informatics, Burapha University 39
Useful Congruence Theorems พิสูจน์ ทฤษฎี (1.) ab (mod m) cd (mod m) ac bd(mod m) Proof. สมมติให้มีจำนวนเต็ม k และl โดยที่ a = b + mkและc = d + ml ดังนั้นac = (b + mk)(d + ml ) = bd+m(kd+lb+mkl) ดังนั้น (ac-bd) = m(kd+lb+mkl) สามารถหารด้วย m ได้ลงตัว ดังนั้นจากนิยามจะได้ว่าac bd(mod m) Faculty of Informatics, Burapha University 40
Modular arithmeticharder examples Q: จงหาคำตอบของโจทย์ที่กำหนดให้ ต่อไปนี้ • 3071001 mod 102 • (-45 · 77) mod 17 Faculty of Informatics, Burapha University 41
Modular arithmeticharder examples • หา 3071001 mod 102 โดยใช้กฎการยกกำลัง ถ้าab (mod m)ดังนั้นanbn (mod m): ถ้า3071 (mod 102)ดังนั้น307n1n (mod 102): 3071001 3071001(mod 102) 11001(mod 102) 1(mod 102) ดังนั้น, 3071001 mod 102 = 1 Faculty of Informatics, Burapha University 42
Modular arithmeticharder examples • หา (-45 · 77) mod 17 โดยใช้กฎการคูณ ถ้า ab (mod m)และcd (mod m), ดังนั้น ac bd (mod m) ถ้า -456 (mod 17)และ779 (mod 17), ดังนั้น -45·77 6·9 (mod 17): (-45·77) (-45·77)(mod 17) (6·9)(mod 17) 54(mod 17) 3(mod 17) ดังนั้น(-45·77) mod 17 = 3 Faculty of Informatics, Burapha University 43
Modular arithmeticharder examples • หาโดยใช้กฎการยกกำลังและกฎการบวก ถ้า 10-1 (mod 11)ดังนั้น 104 (-1)4(mod 11), หรือ 104 1(mod 11) ดังนั้น 105 (-1)5(mod 11), หรือ 105 -1(mod 11)… : ถ้า ab (mod m)และcd (mod m), ดังนั้น a+c b+d (mod m) ดังนั้น คำตอบ คือ 0 Faculty of Informatics, Burapha University 44
Hashing Functions • เป็นการใช้คอนกรูเอนซ์ในการกำหนดตำแหน่งของหน่วยความจำที่สัมพันธ์กับไฟล์คอมพิวเตอร์ • เรคอร์ดข้อมูลแต่ละเรคอร์ดระบุได้โดยการใช้คีย์(key) ซึ่งค่าของคีย์ต้องไม่ซ้ำกันในแต่ละเรคอร์ด • แฮชชิ่งฟังก์ชัน hเป็นการกำหนดตำแหน่งของหน่วยความจำh(k)ให้กับเรคอร์ดข้อมูลที่มีคีย์แทนด้วยk h(k) = k mod m โดยที่mเป็นขนาดของหน่วยความจำที่สามารถใช้งานได้(ขนาดของตารางแฮชที่ใช้เก็บข้อมูล) Faculty of Informatics, Burapha University 45
Hashing FunctionsExample • ตัวอย่าง เช่น กำหนดให้ m=111เรคอร์ดของนักเรียนที่มีรหัสนักเรียน64212848 และ37149212 จะถูกกำหนดให้เก็บในหน่วยความจำตำแหน่งที่14 และ 65 เนื่องจาก h(64212848) = 64212848 mod 111 = 14 h(37149212) = 37149212 mod 111 = 65 สำหรับนักเรียนรหัส 24666707 จะถูกกำหนดให้เก็บในหน่วยความจำตำแหน่งที่ 65 เนื่องจาก h(24666707) = 24666707 mod 111 = 65 จะเห็นว่ากรณีนี้เกิดการชนกัน(Collision) Faculty of Informatics, Burapha University 46
Pseudo-random Numbers • การสร้างตัวเลขสุ่มแบบเทียมโดยการใช้คอนกรูเอนซ์ เริ่มด้วยการเลือกจำนวนเต็มบวก 4 จำนวน ได้แก่ :มอดุลัส(modulus)m, พหุคูณ(multiplier)a, ค่าที่เพิ่มขึ้น(increment)c, และ ค่าเริ่มต้น(seed)x0 • โดยที่ 2 ≤ a < m, 0 ≤ c < m, 0 ≤ x0 < m • เพื่อทำการสร้างลำดับเลขสุ่มเทียม{xn}ซึ่ง0 ≤ xn < m โดยใช้: xn+1 = (axn + c) modm • การสร้างชุดเลขสุ่มเทียมที่ดีนิยมเลือกค่า a,c,mเป็นจำนวนเฉพาะ หรือเป็น relatively prime Faculty of Informatics, Burapha University 47
Example • กำหนด มอดุลัสm= 1,000 = 23·53 • เพื่อสร้างชุดเลขสุ่มเทียมที่มีค่า 0-999 • เลือกค่าที่เพิ่มขึ้น c= 467 (ซึ่งเป็นจำนวนเฉพาะ), ค่าพหุคูณa = 293 (ซึ่งเป็นจำนวนเฉพาะ), และค่าเริ่มต้นx0 = 426 • จะได้ชุดลำดับของเลขสุ่มเทียมดังนี้: x1 = (ax0 + c) modm = 285 x2 = (ax1 + c) modm = 972 x3 = (ax2 + c) modm = 263 … Faculty of Informatics, Burapha University 48
Simple Encryption แปลงข้อความเป็นตัวอักษรพิมพ์ใหญ่ แปลงตัวอักษรเป็นตัวเลขระหว่าง 0 ถึง 25 เช่น จาก A เป็นเลข 0, B เป็นเลข 1, C เป็นเลข 2…เป็นต้น นำตัวเลขแต่ละตัวไปผ่านฟังก์ชั่นการเข้ารหัสที่ต้องการ(ด้วยการมอดุโล) แปลงตัวเลขที่ได้จากฟังก์ชั่นกลับเป็นตัวอักษรอีกครั้ง จะได้ข้อความที่ผ่านการเข้ารหัสเรียบร้อยแล้ว Faculty of Informatics, Burapha University 49
Caesar’s Cipher ฟังก์ชันที่ใช้ในการเข้ารหัสคือ f (a) = (a+3) mod 26 ตัวอย่างเช่น การเข้ารหัส “YESTERDAY” • YESTERDAY • 24 4 18 19 4 17 3 0 24 • 1 7 21 22 7 20 6 3 1 • “BHVWHUGDB” Faculty of Informatics, Burapha University 50