|
|
| (ไม่แสดง 6 รุ่นระหว่างกลางโดยผู้ใช้ 3 คน) |
| แถว 1: |
แถว 1: |
| − | litabasacel
| + | {{หัวคำบรรยาย|204512}} |
| − | {{หัวà¸à¸³à¸à¸£à¸£à¸¢à¸²à¸¢|204512}} | + | '''จดบันทึกคำบรรยายโดย:''' ''(กรุณาใส่ด้วย)'' |
| − | '''à¸à¸à¸à¸±à¸à¸à¸¶à¸à¸à¸³à¸à¸£à¸£à¸¢à¸²à¸¢à¹à¸à¸¢:''' ''(à¸à¸£à¸¸à¸à¸²à¹à¸ªà¹à¸à¹à¸§à¸¢)'' | |
| | | | |
| − | à¸à¸²à¸£à¸à¸£à¸£à¸¢à¸²à¸¢à¸à¸£à¸±à¹à¸à¹à¸£à¸à¸à¸°à¹à¸à¹à¸à¸à¸²à¸£à¹à¸à¸°à¸à¸³à¸§à¸´à¸à¸² [[204512]] à¹à¸¥à¸°à¹à¸ªà¸à¸à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¸à¸²à¸£à¸à¸´à¸ªà¸¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸²à¸ªà¸à¹à¸ à¹à¸à¸¢à¸¡à¸µà¹à¸à¹à¸²à¸«à¸¡à¸²à¸¢à¹à¸à¸·à¹à¸à¸à¸µà¹à¸à¸°à¸à¸±à¸à¸à¸²à¸£à¸°à¸à¸à¸à¸²à¸£à¸à¸£à¸°à¸à¸²à¸¢à¸à¸§à¸²à¸¡à¸¥à¸±à¸ (secret sharing)
| + | การบรรยายครั้งแรกจะเป็นการแนะนำวิชา [[204512]] และแสดงตัวอย่างการพิสูจน์ที่น่าสนใจ โดยมีเป้าหมายเพื่อที่จะพัฒนาระบบการกระจายความลับ (secret sharing) |
| | | | |
| − | ==à¸à¸à¸´à¸à¸¨à¸²à¸ªà¸à¸£à¹à¸¡à¸à¸à¸¸à¹à¸¥== | + | ==คณิตศาสตร์มอดุโล== |
| − | à¹à¸£à¸²à¸à¸°à¹à¸£à¸´à¹à¸¡à¸à¸²à¸à¸à¸´à¸¢à¸²à¸¡à¸à¸·à¹à¸à¸à¸²à¸à¸à¹à¸à¸ à¹à¸£à¸²à¸à¸°à¸à¸¥à¹à¸²à¸§à¸§à¹à¸²à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ a ''หารà¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ b ลà¸à¸à¸±à¸§'' à¸à¹à¸²à¸¡à¸µà¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ k à¸à¸µà¹ ak = b à¹à¸à¸µà¸¢à¸à¹à¸à¸à¸à¹à¸§à¸¢ a|b
| + | เราจะเริ่มจากนิยามพื้นฐานก่อน เราจะกล่าวว่าจำนวนเต็ม a ''หารจำนวนเต็ม b ลงตัว'' ถ้ามีจำนวนเต็ม k ที่ ak = b เขียนแทนด้วย a|b |
| | | | |
| − | ;à¸à¸´à¸¢à¸²à¸¡ : à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡à¸à¸§à¸ p à¸à¸µà¹ p > 1 à¹à¸¥à¸°à¸¡à¸µà¸à¸±à¸§à¸à¸£à¸°à¸à¸à¸à¸ªà¸à¸à¸à¸³à¸à¸§à¸à¸à¸·à¸ 1 à¹à¸¥à¸°à¸à¸±à¸§à¸¡à¸±à¸à¹à¸à¸à¹à¸£à¸µà¸¢à¸à¸§à¹à¸² ''à¸à¸³à¸à¸§à¸à¹à¸à¸à¸²à¸°'' | + | ;นิยาม : จำนวนเต็มบวก p ที่ p > 1 และมีตัวประกอบสองจำนวนคือ 1 และตัวมันเองเรียกว่า ''จำนวนเฉพาะ'' |
| | | | |
| − | ;à¸à¸´à¸¢à¸²à¸¡ : <math>a\ \bmod b = r </math>à¸à¹à¸²<math> 0 \le r < b </math>à¹à¸¥à¸°à¸¡à¸µà¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ ''k'' à¸à¸µà¹ <math>b\ k+r = a</math> | + | ;นิยาม : <math>a\ \bmod b = r </math>ถ้า<math> 0 \le r < b </math>และมีจำนวนเต็ม ''k'' ที่ <math>b\ k+r = a</math> |
| | | | |
| − | '''à¸à¸±à¸§à¸à¸¢à¹à¸²à¸''' | + | '''ตัวอย่าง''' |
| | :<math> 10\ \bmod\ 3\ =\ 1</math> | | :<math> 10\ \bmod\ 3\ =\ 1</math> |
| | | | |
| | :<math>-10\ \bmod\ 3\ =\ 2\quad;\quad 3(-4)\ +\ 2\ =\ -10</math> | | :<math>-10\ \bmod\ 3\ =\ 2\quad;\quad 3(-4)\ +\ 2\ =\ -10</math> |
| − | ;à¸à¸´à¸¢à¸²à¸¡ : | + | ;นิยาม : |
| − | :<math>a \equiv b \pmod{m}</math> à¸à¹à¸² <math>a\ \bmod\ m\ =\ b\ \bmod\ m</math> | + | :<math>a \equiv b \pmod{m}</math> ถ้า <math>a\ \bmod\ m\ =\ b\ \bmod\ m</math> |
| | | | |
| − | à¹à¸£à¸²à¸à¸°à¹à¸£à¸´à¹à¸¡à¸à¸´à¸ªà¸¹à¸à¸à¹à¸à¸§à¸²à¸¡à¸à¸£à¸´à¸à¸à¸·à¹à¸à¸à¸²à¸à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸²à¸£à¸«à¸²à¸£à¸¥à¸à¸à¸±à¸§à¸à¹à¸à¸ หลายà¸à¸£à¸±à¹à¸à¹à¸£à¸²à¸à¸°à¸à¸´à¸ªà¸¹à¸à¸à¹à¸à¸§à¸²à¸¡à¸à¸£à¸´à¸à¹à¸à¸£à¸¹à¸ <math>p\ \leftrightarrow\ q</math> à¹à¸à¸¢à¸à¸²à¸£à¸à¸´à¸ªà¸¹à¸à¸à¹ <math>p\ \rightarrow\ q</math> à¹à¸¥à¸° <math>q \rightarrow\ p</math>. à¸à¸à¸à¸à¸²à¸à¸à¸µà¹ à¹à¸à¸à¸²à¸£à¸à¸´à¸ªà¸¹à¸à¸à¹à¸à¸£à¸°à¹à¸¢à¸ <math>p\rightarrow q</math> à¹à¸£à¸²à¸¡à¸±à¸à¹à¸à¹à¸à¸²à¸£à¸à¸´à¸ªà¸¹à¸à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¹à¸à¸¡ (indirect proof) à¹à¸à¸¢à¸à¸´à¸ªà¸¹à¸à¸à¹ <math>\neg q\rightarrow\neg p</math> à¹à¸à¸
| + | เราจะเริ่มพิสูจน์ความจริงพื้นฐานเกี่ยวกับการหารลงตัวก่อน หลายครั้งเราจะพิสูจน์ความจริงในรูป <math>p\ \leftrightarrow\ q</math> โดยการพิสูจน์ <math>p\ \rightarrow\ q</math> และ <math>q \rightarrow\ p</math>. นอกจากนี้ ในการพิสูจน์ประโยค <math>p\rightarrow q</math> เรามักใช้การพิสูจน์แบบทางอ้อม (indirect proof) โดยพิสูจน์ <math>\neg q\rightarrow\neg p</math> แทน |
| | | | |
| − | {{à¸à¸¥à¹à¸à¸à¸à¸¤à¸©à¸à¸µà¸à¸| | + | {{กล่องทฤษฎีบท| |
| − | '''Proposition 1''': <math>a \equiv b \pmod{m}</math> à¹à¸¡à¸·à¹à¸à¹à¸¥à¸°à¸à¹à¸à¹à¸¡à¸·à¹à¸ <math>m | a-b</math>}} | + | '''Proposition 1''': <math>a \equiv b \pmod{m}</math> เมื่อและต่อเมื่อ <math>m | a-b</math>}} |
| − | {{à¹à¸£à¸´à¹à¸¡à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{เริ่มบทพิสูจน์}} |
| | '''Proof:''' | | '''Proof:''' |
| | | | |
| | <math>(\Rightarrow)</math> | | <math>(\Rightarrow)</math> |
| | | | |
| − | <math>a \equiv b \pmod{m}</math> à¸à¸±à¹à¸à¸à¸·à¸ | + | <math>a \equiv b \pmod{m}</math> นั้นคือ |
| | | | |
| | <math>j\ m + f = a </math> | | <math>j\ m + f = a </math> |
| แถว 34: |
แถว 33: |
| | <math>k\ m + f = b </math> | | <math>k\ m + f = b </math> |
| | | | |
| − | à¹à¸à¸¢à¸à¸µà¹ ''j,k,f'' à¹à¸à¹à¸à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ หาà¸à¸¥à¸à¹à¸²à¸à¸à¸à¸à¸ªà¸¡à¸à¸²à¸£à¸à¸±à¹à¸à¸ªà¸à¸à¸à¸°à¹à¸à¹
| + | โดยที่ ''j,k,f'' เป็นจำนวนเต็ม หาผลต่างของสมการทั้งสองจะได้ |
| | | | |
| | <math>(\ j\ -\ k\ )\ m = a\ -\ b </math> | | <math>(\ j\ -\ k\ )\ m = a\ -\ b </math> |
| | | | |
| − | à¸à¸±à¹à¸à¸à¸·à¸
| + | นั้นคือ |
| | <math>m \mid a - b </math> | | <math>m \mid a - b </math> |
| | | | |
| | <math>(\Leftarrow)</math> | | <math>(\Leftarrow)</math> |
| | | | |
| − | :à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ m | a-b à¹à¸£à¸²à¸à¸°à¹à¸à¹à¸§à¹à¸²à¸¡à¸µà¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ k à¸à¸µà¹ | + | :เนื่องจาก m | a-b เราจะได้ว่ามีจำนวนเต็ม k ที่ |
| | <math>m\,k = a - b</math> | | <math>m\,k = a - b</math> |
| | | | |
| แถว 51: |
แถว 50: |
| | | | |
| | <math>b\ \bmod\ m\ =\ a\ \bmod\ m</math> | | <math>b\ \bmod\ m\ =\ a\ \bmod\ m</math> |
| − | {{à¸à¸à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{จบบทพิสูจน์}} |
| | | | |
| − | {{à¸à¸¥à¹à¸à¸à¹à¸à¸²| | + | {{กล่องเทา| |
| − | ;Propostition : à¸à¹à¸² <math>a\ \equiv\ b \pmod{m}</math> à¹à¸¥à¸° <math>c\ \equiv\ d \pmod{m} </math> à¹à¸¥à¹à¸§ | + | ;Propostition : ถ้า <math>a\ \equiv\ b \pmod{m}</math> และ <math>c\ \equiv\ d \pmod{m} </math> แล้ว |
| | | | |
| | # <math>a+c \equiv b+d \pmod{m}</math> | | # <math>a+c \equiv b+d \pmod{m}</math> |
| แถว 60: |
แถว 59: |
| | # <math>a-c \equiv b-d \pmod{m}</math> | | # <math>a-c \equiv b-d \pmod{m}</math> |
| | }} | | }} |
| − | {{à¹à¸£à¸´à¹à¸¡à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{เริ่มบทพิสูจน์}} |
| | '''proof:''' | | '''proof:''' |
| | :<math>a \equiv b \pmod{m} \rightarrow m|a-b </math> | | :<math>a \equiv b \pmod{m} \rightarrow m|a-b </math> |
| | :<math>c \equiv d \pmod{m} \rightarrow m|c-d </math> | | :<math>c \equiv d \pmod{m} \rightarrow m|c-d </math> |
| | :<math>m|(a+c)-(b+d) \rightarrow a+c \equiv b+d \pmod{m}</math> | | :<math>m|(a+c)-(b+d) \rightarrow a+c \equiv b+d \pmod{m}</math> |
| − | {{à¸à¸à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{จบบทพิสูจน์}} |
| | | | |
| − | สัà¸à¹à¸à¸à¸§à¹à¸²à¸à¸£à¸°à¹à¸¢à¸
| + | สังเกตว่าประโยค |
| | <center><math>a\,c \equiv a\,d \pmod{m} \rightarrow c \equiv d \pmod{m}</math></center> | | <center><math>a\,c \equiv a\,d \pmod{m} \rightarrow c \equiv d \pmod{m}</math></center> |
| − | à¸à¸±à¹à¸à¹à¸¡à¹à¹à¸à¹à¸à¸à¸£à¸´à¸à¹à¸ªà¸¡à¸à¹à¸
| + | นั้นไม่เป็นจริงเสมอไป |
| | | | |
| − | à¸à¸´à¸¢à¸²à¸¡: สำหรัà¸à¸à¹à¸² <math>a\,b \equiv 1 \pmod{m}</math> à¸à¸°à¹à¸£à¸µà¸¢à¸ b วà¹à¸²à¹à¸à¹à¸ mutiplicative inverse modulo m à¸à¸à¸ <math>a</math> à¹à¸à¸µà¸¢à¸à¹à¸à¸à¸à¹à¸§à¸¢ <math>a^{-1}</math>
| + | นิยาม: สำหรับถ้า <math>a\,b \equiv 1 \pmod{m}</math> จะเรียก b ว่าเป็น mutiplicative inverse modulo m ของ <math>a</math> เขียนแทนด้วย <math>a^{-1}</math> |
| | | | |
| − | à¹à¸à¹à¸
| + | เช่น |
| | :<math>3*3 \equiv 1 \pmod{4} </math> | | :<math>3*3 \equiv 1 \pmod{4} </math> |
| | :<math>3 = 3^{-1} \pmod{4} </math> | | :<math>3 = 3^{-1} \pmod{4} </math> |
| แถว 88: |
แถว 87: |
| | :<math>x \equiv 2 \cdot 5 \equiv 10 \equiv 3 \pmod 7</math> | | :<math>x \equiv 2 \cdot 5 \equiv 10 \equiv 3 \pmod 7</math> |
| | | | |
| − | à¸à¹à¸²à¸¡à¸µ inverse สามารà¸à¸«à¸²à¸à¸¥à¸«à¸²à¸£à¹à¸à¹à¹à¸à¸¢à¹à¸à¸² inverse à¹à¸à¸à¸¹à¸
| + | ถ้ามี inverse สามารถหาผลหารได้โดยเอา inverse ไปคูณ |
| | | | |
| | <math>4/3 = 4 \cdot 3^{-1} \pmod m</math> | | <math>4/3 = 4 \cdot 3^{-1} \pmod m</math> |
| | | | |
| − | ==à¸à¸±à¸§à¸«à¸²à¸£à¸£à¹à¸§à¸¡à¸¡à¸²à¸ (grestest common divisors)== | + | ==ตัวหารร่วมมาก (grestest common divisors)== |
| − | à¸à¸±à¸§à¸«à¸²à¸£à¸£à¹à¸§à¸¡à¸¡à¸²à¸ (gcd) à¸à¸à¸ a à¹à¸¥à¸° b à¸à¸·à¸à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡à¸à¸µà¹à¸¡à¸²à¸à¸à¸µà¹à¸ªà¸¸à¸à¸à¸µà¹à¸«à¸²à¸£ a à¹à¸¥à¸° b ลà¸à¸à¸±à¸§à¹à¸à¸à¸à¹à¸§à¸¢ gcd(a,b)
| + | ตัวหารร่วมมาก (gcd) ของ a และ b คือจำนวนเต็มที่มากที่สุดที่หาร a และ b ลงตัวแทนด้วย gcd(a,b) |
| − | {{à¸à¸¥à¹à¸à¸à¸à¸¤à¸©à¸à¸µà¸à¸| | + | {{กล่องทฤษฎีบท| |
| − | '''Thm''': à¹à¸«à¹à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ a ,m a à¸à¸°à¸¡à¸µ inverse à¸à¸²à¸£à¸à¸¹à¸ modulo m à¹à¸¡à¸·à¹à¸à¹à¸¥à¸°à¸à¹à¸à¹à¸¡à¸·à¹à¸ gcd(a,m) à¹à¸à¹à¸²à¸à¸±à¸ 1 }} | + | '''Thm''': ให้จำนวนเต็ม a ,m a จะมี inverse การคูณ modulo m เมื่อและต่อเมื่อ gcd(a,m) เท่ากับ 1 }} |
| − | {{à¹à¸£à¸´à¹à¸¡à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{เริ่มบทพิสูจน์}} |
| | '''Proof:''' | | '''Proof:''' |
| | | | |
| | (<=)<br> | | (<=)<br> |
| − | สมมุà¸à¸´ gcd(a,m) = 1
| + | สมมุติ gcd(a,m) = 1 |
| − | :à¸à¸´à¸à¸²à¸£à¸à¸² | + | :พิจารณา |
| | :: 0 mod m | | :: 0 mod m |
| | :: a mod m | | :: a mod m |
| แถว 109: |
แถว 108: |
| | ::(m-1)a mod m | | ::(m-1)a mod m |
| | | | |
| − | {{à¸à¸¥à¹à¸à¸à¸à¸¤à¸©à¸à¸µà¸à¸|'''Claim 1:''' à¸à¸³à¸à¸§à¸à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸²à¸à¸±à¸à¹à¸¥à¸¢}} | + | {{กล่องทฤษฎีบท|'''Claim 1:''' จำนวนเหล่านี้ไม่เท่ากันเลย}} |
| | | | |
| − | à¸à¸²à¸ Claim 1 à¹à¸£à¸²à¸à¸°à¹à¸à¹à¸§à¹à¸²à¸¡à¸µà¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ ''b'' à¸à¸µà¹à¸à¸¢à¸¹à¹à¸£à¸°à¸«à¸§à¹à¸²à¸ <math>\ 0 \leq\ b\ \leq\ m-1 </math> à¸à¸µà¹ <math>b\ a\ \bmod\ m = 1 </math> à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸¡à¸µà¸à¸³à¸à¸§à¸ ''m'' à¸à¸³à¸à¸§à¸à¹à¸¡à¹à¸à¹à¸³à¸à¸±à¸à¸à¸²à¸à¸à¹à¸²à¸à¸µà¹à¹à¸à¹à¸à¹à¸à¹à¸à¹à¸£à¸°à¸«à¸§à¹à¸²à¸ 0 à¸à¸¶à¸ ''m''-1
| + | จาก Claim 1 เราจะได้ว่ามีจำนวนเต็ม ''b'' ที่อยู่ระหว่าง <math>\ 0 \leq\ b\ \leq\ m-1 </math> ที่ <math>b\ a\ \bmod\ m = 1 </math> เนื่องจากมีจำนวน ''m'' จำนวนไม่ซ้ำกันจากค่าที่เป็นไปได้ระหว่าง 0 ถึง ''m''-1 |
| | | | |
| − | สรุà¸à¸à¸·à¸ inverse à¸à¸²à¸£à¸à¸¹à¸ modulo m à¸à¸à¸ a à¸à¸·à¸ b à¸à¸±à¹à¸à¹à¸à¸
| + | สรุปคือ inverse การคูณ modulo m ของ a คือ b นั้นเอง |
| − | {{à¸à¸à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{จบบทพิสูจน์}} |
| − | à¸à¹à¸à¹à¸à¹à¸£à¸²à¸à¸°à¸à¸´à¸ªà¸¹à¸à¸à¹ Claim 1.
| + | ต่อไปเราจะพิสูจน์ Claim 1. |
| − | {{à¹à¸£à¸´à¹à¸¡à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{เริ่มบทพิสูจน์}} |
| − | '''Proof of Claim1:''' สมมุà¸à¸´à¹à¸«à¹à¸¡à¸µà¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ <math>\ i\ \neq\ j</math> à¸à¸µà¹ <math>\ 0\ \leq\ i\ ,j\ \leq\ m-1</math> | + | '''Proof of Claim1:''' สมมุติให้มีจำนวนเต็ม <math>\ i\ \neq\ j</math> ที่ <math>\ 0\ \leq\ i\ ,j\ \leq\ m-1</math> |
| − | :à¸à¸µà¹ <math>ia\ \bmod\ m\ =\ ja\ \bmod\ m</math> | + | :ที่ <math>ia\ \bmod\ m\ =\ ja\ \bmod\ m</math> |
| − | :à¸à¸°à¹à¸à¹ <math>ia \equiv\ ja \pmod{m}</math> | + | :จะได้ <math>ia \equiv\ ja \pmod{m}</math> |
| − | :หรืภ<math>m\mid ia\ -\ ja \Rightarrow\ m\mid (\ i\ -\ j\ )\ a</math> | + | :หรือ <math>m\mid ia\ -\ ja \Rightarrow\ m\mid (\ i\ -\ j\ )\ a</math> |
| − | à¸à¸±à¹à¸à¸à¸·à¸à¸¡à¸µà¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ k à¸à¸µà¹
| + | นั้นคือมีจำนวนเต็ม k ที่ |
| | :<math>mk\ =\ a(i-j)</math> | | :<math>mk\ =\ a(i-j)</math> |
| | :<math>k\ =\ \frac{a(i-j)}{ m}</math> | | :<math>k\ =\ \frac{a(i-j)}{ m}</math> |
| − | à¸à¸²à¸ gcd(a,m ) =1 à¸à¸°à¹à¸à¹à¸§à¹à¸² m à¸à¹à¸à¸à¸«à¸²à¸£ (i -j) ลà¸à¸à¸±à¸§
| + | จาก gcd(a,m ) =1 จะได้ว่า m ต้องหาร (i -j) ลงตัว |
| − | à¹à¸à¹ (i-j) มีà¸à¹à¸²à¹à¸à¹à¸à¸±à¹à¸à¹à¸à¹ 1 à¸à¸¶à¸ m-1 (à¹à¸¡à¹à¹à¸à¹à¸ 0 à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ <math> i\ \neq\ j\ )</math>à¸à¸¶à¹à¸à¸à¹à¸à¸¢à¸à¸§à¹à¸² m
| + | แต่ (i-j) มีค่าได้ตั้งแต่ 1 ถึง m-1 (ไม่เป็น 0 เนื่องจาก <math> i\ \neq\ j\ )</math>ซึ่งน้อยกว่า m |
| − | à¸à¸¶à¹à¸à¹à¸à¹à¸à¹à¸à¹à¸¡à¹à¹à¸à¹
| + | ซึ่งเป็นไปไม่ได้ |
| − | {{à¸à¸à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{จบบทพิสูจน์}} |
| | | | |
| − | à¹à¸à¸§à¸à¸²à¸à¸à¸²à¸£ | + | แนวทางการ |
| | Proof by Contradiction | | Proof by Contradiction |
| − | à¸à¸°à¸à¸´à¸ªà¸¹à¸à¸à¹ (P) สมมุà¸à¸´ <math>\sim P \rightarrow F</math> | + | จะพิสูจน์ (P) สมมุติ <math>\sim P \rightarrow F</math> |
| − | :หรืà¸<math> \sim(\sim P) \lor \sim F \equiv P </math> | + | :หรือ<math> \sim(\sim P) \lor \sim F \equiv P </math> |
| | (=>)<br> | | (=>)<br> |
| − | à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸ªà¸¹à¸à¸à¹ a มี inverse modulo m à¹à¸¥à¹à¸§ gcd(a,m) = 1
| + | ต้องการพิสูจน์ a มี inverse modulo m แล้ว gcd(a,m) = 1 |
| | | | |
| − | {{à¹à¸£à¸´à¹à¸¡à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{เริ่มบทพิสูจน์}} |
| | ;Proof(Indirect)<nowiki>:</nowiki> | | ;Proof(Indirect)<nowiki>:</nowiki> |
| − | <math> gcd(\ a,\ m) \neq 1 \Rightarrow\ a</math> à¹à¸¡à¹à¸¡à¸µ mutiplicative inverse modulo m | + | <math> gcd(\ a,\ m) \neq 1 \Rightarrow\ a</math> ไม่มี mutiplicative inverse modulo m |
| | | | |
| − | :à¹à¸«à¹ <math>x\ =\ gcd(\ a,\ m)</math> | + | :ให้ <math>x\ =\ gcd(\ a,\ m)</math> |
| − | :หรืภ<math>a\ =\ xk_1 , m = xk_2</math> | + | :หรือ <math>a\ =\ xk_1 , m = xk_2</math> |
| − | :à¸à¸´à¸à¸²à¸£à¸à¸² <math>ai\ \bmod\ m</math> | + | :พิจารณา <math>ai\ \bmod\ m</math> |
| | :<math>xk_1i\ \bmod\ xk_2\ =\ 1</math> | | :<math>xk_1i\ \bmod\ xk_2\ =\ 1</math> |
| | :<math>xk_1i\ - xk_2j\ = 1</math> | | :<math>xk_1i\ - xk_2j\ = 1</math> |
| | :<math>x(k_1i\ - k_2j)\ = 1</math> | | :<math>x(k_1i\ - k_2j)\ = 1</math> |
| − | :à¸à¸¶à¹à¸à¸à¸°à¹à¸«à¹à¸à¸§à¹à¸² à¸à¸¥à¸¥à¸à¸à¸à¸à¹à¸à¸à¸¡à¸à¸µà¹à¸à¸¹à¸ x à¹à¸à¹à¸à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ à¸à¸¹à¸à¸à¸¢à¸¹à¹à¸à¸±à¸ x à¸à¸¶à¹à¸à¸¡à¸²à¸à¸à¸§à¹à¸²à¸«à¸à¸¶à¹à¸à¸à¸¶à¸à¹à¸à¹à¸à¹à¸à¹à¸¡à¹à¹à¸à¹à¸à¸µà¹ <math>x(k_1i\ - k_2j)</math> à¹à¸à¹à¸²à¸à¸±à¸ 1 | + | :ซึ่งจะเห็นว่า ผลลบของเทอมที่คูณ x เป็นจำนวนเต็ม คูณอยู่กับ x ซึ่งมากกว่าหนึ่งจึงเป็นไปไม่ได้ที่ <math>x(k_1i\ - k_2j)</math> เท่ากับ 1 |
| | | | |
| − | {{à¸à¸à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{จบบทพิสูจน์}} |
| | | | |
| − | ==ยูà¸à¸¥à¸´à¸ gcd alg. à¹à¸à¸¥à¸±à¸à¸©à¸à¸° recursive function== | + | ==ยูคลิด gcd alg. ในลักษณะ recursive function== |
| | funtion GCD(a,b) | | funtion GCD(a,b) |
| | :if b|a then return a | | :if b|a then return a |
| | :else return GCD(b,a mod b) | | :else return GCD(b,a mod b) |
| | | | |
| − | ===à¸à¸²à¸£à¸§à¸´à¹à¸à¸£à¸²à¸°à¸«à¹=== | + | ===การวิเคราะห์=== |
| − | ====à¸à¸²à¸£à¸§à¸´à¹à¸à¸£à¸²à¸°à¸«à¹à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸==== | + | ====การวิเคราะห์ความถูกต้อง==== |
| − | ;à¸à¸´à¸¢à¸²à¸¡:gcd(a,b) à¸à¸·à¸à¸à¹à¸²à¸«à¸²à¸£à¸£à¸§à¸¡à¸¡à¸²à¸à¸à¸à¸ a à¸à¸±à¸ b | + | ;นิยาม:gcd(a,b) คือค่าหารรวมมากของ a กับ b |
| | assume a > b without lose in generality | | assume a > b without lose in generality |
| − | {{à¹à¸£à¸´à¹à¸¡à¸à¸à¸à¸´à¸ªà¸¹à¸à¸à¹}} | + | {{เริ่มบทพิสูจน์}} |
| | ;Proof by induction on (a,b)<nowiki>:</nowiki> :GCD(a,b) = gcd(a,b) | | ;Proof by induction on (a,b)<nowiki>:</nowiki> :GCD(a,b) = gcd(a,b) |
| | | | |
| − | ;base case<nowiki>:</nowiki>: à¸à¹à¸² b=0 , GCD(a,b) =a = gcd(a,b) | + | ;base case<nowiki>:</nowiki>: ถ้า b=0 , GCD(a,b) =a = gcd(a,b) |
| | | | |
| − | ;inductive step<nowiki>:</nowiki>:à¸à¹à¸² b > 0 à¹à¸¥à¸° a > b à¹à¸¥à¹à¸§ | + | ;inductive step<nowiki>:</nowiki>:ถ้า b > 0 และ a > b แล้ว |
| | | | |
| | :'''claim 2''': gcd(b,a mod b ) = gcd(a,b) | | :'''claim 2''': gcd(b,a mod b ) = gcd(a,b) |
| − | :à¸à¹à¸² y|a à¹à¸¥à¸° y|b à¹à¸¥à¹à¸§ y|a mod b | + | :ถ้า y|a และ y|b แล้ว y|a mod b |
| − | :<math>a = kb + r </math> หรืภ<math> r\ =\ a\ \bmod\ b</math> | + | :<math>a = kb + r </math> หรือ <math> r\ =\ a\ \bmod\ b</math> |
| | :<math>a-r = kb </math> | | :<math>a-r = kb </math> |
| − | à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ <math> y\mid\ b </math> à¸à¸°à¹à¸à¹à¸§à¹à¸² <math> y\mid\ kb </math> à¹à¸¥à¸° <math>y \mid r</math> à¸à¹à¸§à¸¢
| + | เนื่องจาก <math> y\mid\ b </math> จะได้ว่า <math> y\mid\ kb </math> และ <math>y \mid r</math> ด้วย |
| − | :à¸à¸±à¸à¸à¸±à¹à¸ <math> y\mid\ a-r </math> | + | :ดังนั้น <math> y\mid\ a-r </math> |
| | :<math>\Rightarrow\; a \equiv r \pmod{y} </math> | | :<math>\Rightarrow\; a \equiv r \pmod{y} </math> |
| | | | |
| | | | |
| − | ;hypothesis สมมุà¸à¸´à¸à¸µà¹ GCD(x,y)=gcd(x,y) สำหรัà¸à¸à¸¸à¸à¹ x < a , y <= b | + | ;hypothesis สมมุติที่ GCD(x,y)=gcd(x,y) สำหรับทุกๆ x < a , y <= b |
| − | :à¸à¸±à¹à¸à¸à¸·à¸ GCD(b,a mod b) = gcd(b, a mod b) | + | :นั้นคือ GCD(b,a mod b) = gcd(b, a mod b) |
| − | :à¸à¸±à¸à¸à¸±à¹à¸ GCD(a,b) = GCD(b, a mod b) | + | :ดังนั้น GCD(a,b) = GCD(b, a mod b) |
| | ::= gcd(b ,a mod b) | | ::= gcd(b ,a mod b) |
| − | ::= gcd(a,b) à¸à¸²à¸¡ claim 2 | + | ::= gcd(a,b) ตาม claim 2 |
| | | | |
| | Proof by Induction | | Proof by Induction |
| − | :à¸à¸´à¸ªà¸¹à¸à¸à¹à¸§à¹à¸² P(i) à¸à¸£à¸´à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡à¸à¸§à¸ i à¸à¸¸à¸à¹à¸à¸±à¸§ | + | :พิสูจน์ว่า P(i) จริงสำหรับจำนวนเต็มบวก i ทุกๆตัว |
| − | ## P(1) à¸à¸£à¸´à¸ [base case] [basis] | + | ## P(1) จริง [base case] [basis] |
| − | ## à¸à¹à¸² P(i) à¹à¸¥à¹à¸§ P(i+1) à¸à¸£à¸´à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸¸à¸à¹ i >=1 ; P(i) à¸à¸£à¸´à¸à¸à¸²à¸ P(j) j < i [inductive step] | + | ## ถ้า P(i) แล้ว P(i+1) จริงสำหรับทุกๆ i >=1 ; P(i) จริงจาก P(j) j < i [inductive step] |
| − | à¸à¹à¸² (a)&(b) à¸à¸°à¸ªà¸£à¸¸à¸à¹à¸à¹à¸§à¹à¸² P(i) à¸à¸£à¸´à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸¸à¸à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ i | + | ถ้า (a)&(b) จะสรุปได้ว่า P(i) จริงสำหรับทุกจำนวนเต็ม i |
| | | | |
| − | ====à¸à¸²à¸£à¸§à¸´à¹à¸à¸£à¸²à¸°à¸«à¹à¹à¸§à¸¥à¸²à¸à¸²à¸£à¸à¸³à¸à¸²à¸==== | + | ====การวิเคราะห์เวลาการทำงาน==== |
| − | ;à¸à¸²à¸£à¸«à¸² multiplicative inverse mudulo m | + | ;การหา multiplicative inverse mudulo m |
| − | lemma: สำหรัà¸à¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ a à¹à¸¥à¸° b มีà¸à¸³à¸à¸§à¸à¹à¸à¹à¸¡ x,y à¸à¸µà¹ ax + by = gcd(a,b) ; x à¹à¸¥à¸° y หาà¹à¸à¹à¸à¸²à¸ [[extended gcd alg.]] | + | lemma: สำหรับจำนวนเต็ม a และ b มีจำนวนเต็ม x,y ที่ ax + by = gcd(a,b) ; x และ y หาได้จาก [[extended gcd alg.]] |
| − | >à¸à¸°à¸«à¸² \inv a (mod m) à¹à¸¡à¸·à¹à¸ gcd(a,m) = 1 | + | >จะหา \inv a (mod m) เมื่อ gcd(a,m) = 1 |
| − | :à¸à¸°à¸¡à¸µ x,y à¸à¸µà¹ ax + my = 1 | + | :จะมี x,y ที่ ax + my = 1 |
| | mod m | | mod m |
| | : (ax + my) mod m = 1 | | : (ax + my) mod m = 1 |
| | : ax mod m = 1 | | : ax mod m = 1 |
| − | à¹à¸¥à¸·à¸à¸ mod p à¹à¸¡à¸·à¹à¸ p à¹à¸à¹à¸à¸à¸³à¸à¸§à¸à¹à¸à¸à¸²à¸° à¸à¸°à¹à¸à¹à¸à¸¸à¸à¹
a e {1,2,3,...,p-1} , gcd(a,p) = 1 ; [GFp(Galois Field)]
| + | เลือก mod p เมื่อ p เป็นจำนวนเฉพาะ จะได้ทุกๅ a e {1,2,3,...,p-1} , gcd(a,p) = 1 ; [GFp(Galois Field)] |
| | | | |
| − | ==à¸à¸²à¸£à¸à¸£à¸°à¸à¸²à¸¢à¸à¸§à¸²à¸¡à¸¥à¸±à¸ (Secret Sharing)== | + | ==การกระจายความลับ (Secret Sharing)== |
| − | à¸à¹à¸² polynomial f มี degree d à¹à¸£à¸²à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸«à¹ <math> (x_0,y_0),\ (x_1,y_1),\ ...\ ,\ (x_d,y_d)</math> à¸à¸°à¸¡à¸µ polynomial degree d à¹à¸à¸µà¸¢à¸à¸à¸±à¸§à¹à¸à¸µà¸¢à¸§à¸à¸µà¹à¸à¹à¸²à¸ à¸à¸¸à¸à¸à¸¸à¸à¸à¸±à¸à¸à¸¥à¹à¸²à¸§ à¹à¸¥à¸° polynomial à¸à¸±à¸à¸à¸¥à¹à¸²à¸§à¸«à¸²à¹à¸à¹
| + | ถ้า polynomial f มี degree d เราสามารถให้ <math> (x_0,y_0),\ (x_1,y_1),\ ...\ ,\ (x_d,y_d)</math> จะมี polynomial degree d เพียงตัวเดียวที่ผ่าน ทุกจุดดังกล่าว และ polynomial ดังกล่าวหาได้ |
| | | | |
| − | à¸à¹à¸à¸à¸à¸²à¸£ key M à¹à¸«à¹à¸à¸¥à¸¸à¹à¸¡à¸à¸ n à¸à¸ à¹à¸«à¹à¸à¸¸à¸à¹à¸à¸¥à¸¸à¹à¸¡à¸à¸ < k à¸à¸ à¹à¸¡à¹à¸à¸£à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸ key à¹à¸¥à¸¢
| + | ต้องการ key M ให้กลุ่มคน n คน ให้ทุกๆกลุ่มคน < k คน ไม่ทราบข้อมูลเกี่ยวกับ key เลย |
| − | :à¸à¸¥à¸¸à¹à¸¡à¸à¸ k à¸à¸à¸«à¸² key à¹à¸à¹ | + | :กลุ่มคน k คนหา key ได้ |
| | | | |
| − | หา prime p > key à¹à¸¥à¸° p - 1 > n à¹à¸¥à¸·à¸à¸<math> a_{k-1},a_{k-2},...,a_1</math> à¸à¸²à¸à¹à¸à¸ { 1, 2, ... , p-1}
| + | หา prime p > key และ p - 1 > n เลือก<math> a_{k-1},a_{k-2},...,a_1</math> จากเซต { 1, 2, ... , p-1} |
| | | | |
| − | à¹à¸«à¹ ak-1 à¹à¸¡à¹à¹à¸à¹à¸²à¸à¸±à¸ 0
| + | ให้ ak-1 ไม่เท่ากับ 0 |
| | | | |
| − | à¹à¸«à¹ <math>f(x) = a_{k-1}\,x^{k-1} + a_{k-2}\,x^{k-2} +...+a_2\,x^2+a_1\,x + M</math>
| + | ให้ <math>f(x) = a_{k-1}\,x^{k-1} + a_{k-2}\,x^{k-2} +...+a_2\,x^2+a_1\,x + M</math> |
| − | à¹à¸£à¸²à¸à¸°à¹à¸¥à¸·à¸à¸à¸à¸¸à¸ <math>\ x_1,\ x_2,\ ...,\ x_n</math> à¸à¸µà¹à¹à¸¡à¹à¸à¹à¸³à¸à¸±à¸£à¹à¸¥à¸°à¹à¸¡à¹à¹à¸à¹à¸²à¸à¸±à¸ 0 à¹à¸«à¹ <math>(\ x_i,\ f(x_i))</math> à¸à¸±à¸à¸à¸à¸à¸µà¹ i
| + | เราจะเลือกจุด <math>\ x_1,\ x_2,\ ...,\ x_n</math> ที่ไม่ซ้ำกัรและไม่เท่ากับ 0 ให้ <math>(\ x_i,\ f(x_i))</math> กับคนที่ i |
บันทึกคำบรรยายวิชา 204512 นี้ เป็นบันทึกที่นิสิตเขียนขึ้น เนื้อหาโดยมากยังไม่ผ่านการตรวจสอบอย่างละเอียด การนำไปใช้ควรระมัดระวัง
จดบันทึกคำบรรยายโดย: (กรุณาใส่ด้วย)
การบรรยายครั้งแรกจะเป็นการแนะนำวิชา 204512 และแสดงตัวอย่างการพิสูจน์ที่น่าสนใจ โดยมีเป้าหมายเพื่อที่จะพัฒนาระบบการกระจายความลับ (secret sharing)
คณิตศาสตร์มอดุโล
เราจะเริ่มจากนิยามพื้นฐานก่อน เราจะกล่าวว่าจำนวนเต็ม a หารจำนวนเต็ม b ลงตัว ถ้ามีจำนวนเต็ม k ที่ ak = b เขียนแทนด้วย a|b
- นิยาม
- จำนวนเต็มบวก p ที่ p > 1 และมีตัวประกอบสองจำนวนคือ 1 และตัวมันเองเรียกว่า จำนวนเฉพาะ
- นิยาม
ถ้า
และมีจำนวนเต็ม k ที่ 
ตัวอย่าง


- นิยาม
ถ้า 
เราจะเริ่มพิสูจน์ความจริงพื้นฐานเกี่ยวกับการหารลงตัวก่อน หลายครั้งเราจะพิสูจน์ความจริงในรูป
โดยการพิสูจน์
และ
. นอกจากนี้ ในการพิสูจน์ประโยค
เรามักใช้การพิสูจน์แบบทางอ้อม (indirect proof) โดยพิสูจน์
แทน
Proposition 1:
เมื่อและต่อเมื่อ
Proof:
นั้นคือ
โดยที่ j,k,f เป็นจำนวนเต็ม หาผลต่างของสมการทั้งสองจะได้
นั้นคือ
- เนื่องจาก m | a-b เราจะได้ว่ามีจำนวนเต็ม k ที่
- Propostition
- ถ้า
และ
แล้ว



proof:



สังเกตว่าประโยค
นั้นไม่เป็นจริงเสมอไป
นิยาม: สำหรับถ้า
จะเรียก b ว่าเป็น mutiplicative inverse modulo m ของ
เขียนแทนด้วย
เช่น









ถ้ามี inverse สามารถหาผลหารได้โดยเอา inverse ไปคูณ
ตัวหารร่วมมาก (grestest common divisors)
ตัวหารร่วมมาก (gcd) ของ a และ b คือจำนวนเต็มที่มากที่สุดที่หาร a และ b ลงตัวแทนด้วย gcd(a,b)
Thm: ให้จำนวนเต็ม a ,m a จะมี inverse การคูณ modulo m เมื่อและต่อเมื่อ gcd(a,m) เท่ากับ 1
Proof:
(<=)
สมมุติ gcd(a,m) = 1
- พิจารณา
- 0 mod m
- a mod m
- 2a mod m
- 3a mod m
- . . .
- (m-1)a mod m
Claim 1: จำนวนเหล่านี้ไม่เท่ากันเลย
จาก Claim 1 เราจะได้ว่ามีจำนวนเต็ม b ที่อยู่ระหว่าง
ที่
เนื่องจากมีจำนวน m จำนวนไม่ซ้ำกันจากค่าที่เป็นไปได้ระหว่าง 0 ถึง m-1
สรุปคือ inverse การคูณ modulo m ของ a คือ b นั้นเอง
ต่อไปเราจะพิสูจน์ Claim 1.
Proof of Claim1: สมมุติให้มีจำนวนเต็ม
ที่
- ที่

- จะได้

- หรือ

นั้นคือมีจำนวนเต็ม k ที่


จาก gcd(a,m ) =1 จะได้ว่า m ต้องหาร (i -j) ลงตัว
แต่ (i-j) มีค่าได้ตั้งแต่ 1 ถึง m-1 (ไม่เป็น 0 เนื่องจาก
ซึ่งน้อยกว่า m
ซึ่งเป็นไปไม่ได้
แนวทางการ
Proof by Contradiction
จะพิสูจน์ (P) สมมุติ
:หรือ
(=>)
ต้องการพิสูจน์ a มี inverse modulo m แล้ว gcd(a,m) = 1
- Proof(Indirect):
ไม่มี mutiplicative inverse modulo m
- ให้

- หรือ

- พิจารณา




- ซึ่งจะเห็นว่า ผลลบของเทอมที่คูณ x เป็นจำนวนเต็ม คูณอยู่กับ x ซึ่งมากกว่าหนึ่งจึงเป็นไปไม่ได้ที่
เท่ากับ 1
ยูคลิด gcd alg. ในลักษณะ recursive function
funtion GCD(a,b)
- if b|a then return a
- else return GCD(b,a mod b)
การวิเคราะห์
การวิเคราะห์ความถูกต้อง
- นิยาม
- gcd(a,b) คือค่าหารรวมมากของ a กับ b
assume a > b without lose in generality
- Proof by induction on (a,b):
- GCD(a,b) = gcd(a,b)
- base case:
- ถ้า b=0 , GCD(a,b) =a = gcd(a,b)
- inductive step:
- ถ้า b > 0 และ a > b แล้ว
- claim 2: gcd(b,a mod b ) = gcd(a,b)
- ถ้า y|a และ y|b แล้ว y|a mod b
หรือ 

เนื่องจาก
จะได้ว่า
และ
ด้วย
- ดังนั้น


- hypothesis สมมุติที่ GCD(x,y)=gcd(x,y) สำหรับทุกๆ x < a , y <= b
- นั้นคือ GCD(b,a mod b) = gcd(b, a mod b)
- ดังนั้น GCD(a,b) = GCD(b, a mod b)
- = gcd(b ,a mod b)
- = gcd(a,b) ตาม claim 2
Proof by Induction
:พิสูจน์ว่า P(i) จริงสำหรับจำนวนเต็มบวก i ทุกๆตัว
## P(1) จริง [base case] [basis]
## ถ้า P(i) แล้ว P(i+1) จริงสำหรับทุกๆ i >=1 ; P(i) จริงจาก P(j) j < i [inductive step]
ถ้า (a)&(b) จะสรุปได้ว่า P(i) จริงสำหรับทุกจำนวนเต็ม i
การวิเคราะห์เวลาการทำงาน
- การหา multiplicative inverse mudulo m
lemma: สำหรับจำนวนเต็ม a และ b มีจำนวนเต็ม x,y ที่ ax + by = gcd(a,b) ; x และ y หาได้จาก extended gcd alg.
>จะหา \inv a (mod m) เมื่อ gcd(a,m) = 1
- จะมี x,y ที่ ax + my = 1
mod m
- (ax + my) mod m = 1
- ax mod m = 1
เลือก mod p เมื่อ p เป็นจำนวนเฉพาะ จะได้ทุกๅ a e {1,2,3,...,p-1} , gcd(a,p) = 1 ; [GFp(Galois Field)]
การกระจายความลับ (Secret Sharing)
ถ้า polynomial f มี degree d เราสามารถให้
จะมี polynomial degree d เพียงตัวเดียวที่ผ่าน ทุกจุดดังกล่าว และ polynomial ดังกล่าวหาได้
ต้องการ key M ให้กลุ่มคน n คน ให้ทุกๆกลุ่มคน < k คน ไม่ทราบข้อมูลเกี่ยวกับ key เลย
- กลุ่มคน k คนหา key ได้
หา prime p > key และ p - 1 > n เลือก
จากเซต { 1, 2, ... , p-1}
ให้ ak-1 ไม่เท่ากับ 0
ให้
เราจะเลือกจุด
ที่ไม่ซ้ำกัรและไม่เท่ากับ 0 ให้
กับคนที่ i