Giải Thuật Euclid Mở Rộng – Wiki Tiếng Việt 2022 - .vn
Có thể bạn quan tâm
Giải thuật Euclid mở rộng kết hợp quá trình tìm ƯCLN(a, b) trong thuật toán Euclid với việc tìm một cặp số x, y thoả mãn phương trình Đi-ô-phăng.Giả sử cho hai số tự nhiên a, b, ngoài ra a>b>0.Đặt , chia cho được số dư và thương số nguyên . Nếu thì dừng,nếu khác không, chia cho được số dư ,...Vì dãy các là giảm thực sự nên sau hữu hạn bước ta được số dư .
; ;....;trong đó số dư cuối cùng khác 0 là .Bài toán đặt ra là tìm x, y sao cho
Để làm điều này, ta tìm x, y theo công thức truy hồi, nghĩa là sẽ tìm
và sao cho: với .Ta có
và , nghĩa là và . (1)Tổng quát, giả sử có
với . với .Khi đó từ
suy ra
từ đó, có thể chọn
(2) (3)Khi ta có được và .Các công thức (1), (2), (3) là công thức truy hồi để tính x, y.
Giải thuật
{Thuật toán Euclide: a, b không đồng thời bằng 0, trả về gcd(a, b)}functiongcd(a,b);beginwhileb≠0dobeginr:=amodb;a:=b;b:=r;end;Result:=a;end;{Thuật toán Euclide mở rộng: a, b không đồng thời bằng 0, trả về cặp (x, y) sao cho a * x + b * y = gcd(a, b)Về tư tưởng là ghép quá trình tính cặp số (x, y) vào trong vòng lặp chính của thuật toán Euclide.}functionExtended_gcd(a,b);begin(xa,ya):=(1,0);(xb,yb):=(0,1);whileb≠0dobeginq:=adivb;r:=amodb;a:=b;b:=r;//Đoạn này giống thuật toán Euclide.(xr,yr):=(xa,ya)-q*(xb,yb);//Hiểu là: (xr, yr):= (xa, ya) "mod" (xb, yb);(xa,ya):=(xb,yb);(xb,yb):=(xr,yr);end;Result:=(xa,ya);end;Giải thuật sau chỉ thực hiện với các số nguyên a>b>0, biểu diễn bằng giải mã:
SubEuclid_Extended(a,b)Dimx0,x,y,y1AsSinglex0=1:x1=0:y0=0:y1=1Whileb>0r=amodbifr=0thenExitWhileq=a/bx=x0-x1*qy=y0-y1*qa=bb=rx0=x1x1=xy0=y1y1=yWendMe.Printd:=b,x,ycodeEndSubVí dụ
Với a=29, b=8, giải thuật trải qua các bước như sau:
Bước | ||||||||||
0 | 29 | 8 | 5 | 3 | 1 | 0 | 1 | 0 | 1 | -3 |
1 | 8 | 5 | 3 | 1 | 0 | 1 | -1 | 1 | -3 | 4 |
2 | 5 | 3 | 2 | 1 | 1 | -1 | 2 | -3 | 4 | -7 |
3 | 3 | 2 | 1 | 1 | -1 | 2 | -3 | 4 | -7 | 11 |
4 | 2 | 1 | 0 | 2 |
Kết quả thuật toán cho đồng thời và , .Dễ dàng kiểm tra hệ thức
Từ khóa » định Lý Euclid Mở Rộng
-
Giải Thuật Euclid Mở Rộng – Wikipedia Tiếng Việt
-
Thuật Toán Euclid Mở Rộng, Nghịch đảo Modulo, Và Định Lý Số Dư ...
-
Hiểu Thuật Toán Euclid Mở Rộng Trong 5 Phút - YouTube
-
Thuật Toán Euclide Mở Rộng - VNOI
-
Bài 4: Giải Thuật Euclid Và Euclid Mở Rộng - Blog Nam Phạm
-
Thuật Toán Euclid Mở Rộng – Extended Euclid Algorithm
-
Thuật Toán Euclide Mở Rộng - Nguyễn Đức Cương
-
07 Chương 5. Lý Thuyết Số (2) - SlideShare
-
[PDF] BÀI 5: ỨNG DỤNG CÁC THUẬT TOÁN - Topica
-
Cách Tính ước Chung Lớn Nhất Và Nghịch đảo Modulo - Viblo
-
Thuật Toán Euclid Mở Rộng - Nơi Cảm Xúc Thăng Hoa
-
Bài Toán Tính Nghịch đảo Theo Modulo - W3seo
-
EAD 1.1. Thu T Toán Euclid