|
|
แถว 51: |
แถว 51: |
| | | |
| | | |
− | ==คณิตศาสตร์มอดุโล== | + | ==Balls & Bins== |
− | ;Definition 1:
| + | * มีถัง n ถัง |
− | จะกล่าวว่าจำนวนเต็ม a ''หารจำนวนเต็ม b ลงตัว'' ถ้ามีจำนวนเต็ม k ที่ ak = b เขียนแทนด้วย a|b
| + | * มีบอล n ลูก |
− | | + | <math>Pr[ถังใบแรกว่าง] = (1 - 1/n) ^ n</math |
− | ;นิยาม : จำนวนเต็มบวก p ที่ p > 1 และมีตัวประกอบสองจำนวนคือ 1 และตัวมันเองเรียกว่า ''จำนวนเฉพาะ''
| |
− | | |
− | ;นิยาม : a mod b = r ถ้า 0 <= r < b และมีจำนวนเต็ม k ที่ bk+r = a
| |
− | | |
− | ตัวอย่าง
| |
− | :<math> 10\ \bmod\ 3\ =\ 1</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>
| |
− | | |
− | '''Proposition 1''': <math>a \equiv b \pmod{m}</math> เมื่อและต่อเมื่อ <math>m | a-b</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> แทน
| |
− | | |
− | '''Proof of Proposition 1:'''
| |
− | <math>(\Rightarrow)</math>
| |
− | | |
− | :proof by picture ...
| |
− | | |
− | <math>(\Leftarrow)</math>
| |
− | :เนื่องจาก m | a-b เราจะได้ว่ามีจำนวนเต็ม k ที่
| |
− | <math>m\,k = a - b</math>
| |
− | | |
− | <math>b\ = a - m\,k</math>
| |
− | | |
− | <math>b\ \bmod\ m\ =\ a\ \bmod\ m\ -\ m\,k\ \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> แล้ว
| |
− | | |
− | # <math>a+c \equiv b+d \pmod{m}</math>
| |
− | # <math>a\,c \equiv b\,d \pmod{m}</math>
| |
− | # <math>a-c \equiv b-d \pmod{m}</math>
| |
− | | |
− | proof :
| |
− | :<math>a \equiv b \pmod{m} \rightarrow m|a-b </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>a\,c \equiv a\,d \pmod{m} \rightarrow c \equiv d \pmod{m}</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^{-1} \pmod{4} </math>
| |
− | | |
− | (mod4)
| |
− | :2/3 = 7
| |
− | :x*3 \eqv 2 (mod 4)
| |
− | :x*3*\inv 3 \eqv 2*\inv 3 (mod 4)
| |
− | :x \eqv 2*3 = 6 =2 (mod 4)
| |
− | | |
− | (mod 7)
| |
− | :2/3 = 7
| |
− | :\inv 3 (mod 7) \eqv 5 (mod 7)
| |
− | :x \eqv 2*5 \eqv 10 \eqv 3 (mod 7)
| |
− | | |
− | ถ้ามี inverse สามารถหาผลหารได้โดยเอา inverse ไปคูณ
| |
− | | |
− | 4/3 = 4* \inv 3 (mod m)
| |
− | | |
− | ----
| |
− | ตัวอย่าง ๆ
| |
− | :<math>a \equiv b \pmod{m}</math>
| |
− | | |
− | <math>x^2 + \frac{y}{m^n}</math>
| |
− | ----
| |
| | | |
| ==ตัวหารร่วมมาก (grestest common divisors)== | | ==ตัวหารร่วมมาก (grestest common divisors)== |
ขออภัย
Lecture Note ที่ท่านเรียก ยังไม่เปิดให้ใช้บริการค่ะ
Balls & Bins
:หรือ
(=>) สมมุติ a มี inverse การคูณ modulo m และ gcd(a,m) = 1
พิสูจน์ gcd(a,m)=/= 1 a จะไม่มี inverse
- ให้ x = gcd(a,m)
- หรือ a = x*k1 , m = x*k2
- พิจารณา ai (mod m)
- x*k1 i mod x*k2
ยูคลิด gcd alg. ในลักษณะ recursive function
funtion GCD(a,b)
- if b|a then return a
- else return gcd(b,a mod b)
การวิเคราะห์
การวิเคราะห์ความถูกต้อง
กรณี b|a ลงตัวจัดเจน
กรณี GCD(b,a mod b)
assume a > b without lose in generality
- Proof
- GCD(a,b) = gcd(a,b)
พิสูจน์ by induction on (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
a = kb + r เขียน r = a mod b
a-r =kb เนื่องจาก y|b ,y|kb นั้นคือ
สรุปว่า y|r
assume ที่ GCD(x,y)=gcd(x,y) สำหรับทุกๆ x < a , y <= b ) ; (hypothesis)
นั้นคือ 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