You are on page 1of 3

1.

Tính modulo nghịch đảo

 Thuật toán Euclid mở rộng:

UCLN(a,b)=UCLN(b, a mod b)

 Tính n-1 mod m


 điều kiện: UCLN(n, m) =1
 n=1 thì n-1 mod m =1

stt x b y
1 x1=m b1=0 rỗng/*
2 x2=n b2=1 y2=x1 div x2
i≥3 xi=xi-2 mod xi-1 bi=bi-2 – (bi-1*yi-1) yi=xi-1 div xi
điều kiện dừng: xi=1, kết quả lấy bi nếu bi>0
Nếu bi<0 thì lấy bi+m đến khi được số dương thì dừng lại và lấy
kq đó
Nếu xi=0 => không tồn tại phần tử nghịch đảo
Tính d  e-1 mod (n)= 17-1 mod 3120
d = (3120*k +1)/17  d = 2753 (k=15)
17-1 mod 3120=-367+3120= 2753

x b y
1 3120 0 *
2 17 1 3120 div 17 =183
3 3120 mod 17 = 9 0-1*183=-183 17 div 9 =1
4 8 1-(-183)*1=184 1
5 1 -183-184*1=-367
19-1 mod 26

x b y
1 26 0 /
2 19 1 1
3 7 -1 2
4 5 3 1
5 2 -4 2
6 1 11

2. Thuật toán bình phương và nhân


Thuật toán bình phương và nhân là thuật toán tính nhanh lũy
thừa tự nhiên của một số (thực hoặc nguyên), trong trường hợp cơ số là
số nguyên có thể được rút gọn theo một môđun nào đó.
Phép nâng lên lũy thừa tự nhiên bậc n của số x (x được gọi là cơ số)
được định nghĩa từ hệ thức

Chắng hạn với n=35 quá trình tính   qua 35


bước: 
Ta nhận xét rằng có thể giảm bớt số phép nhân chẳng hạn với dãy phép
tính
, ,
,  .

Quá trình tính toán trên chính là quá trình tính nhờ công thức đệ quy
1. Với n=0 thì 
2. Với n>0 ta có công thức

Như vậy phép tính   được quy về một số phép bình phương và phép
nhân do vậy mà có tên gọi thuật toán bình phương và nhân.

You might also like