Giới thiệu về danh tính của Bézout
GCD của hai số nguyên A, B là số nguyên dương lớn nhất chia cả hai số nguyên không để lại phần dư. Bây giờ vì thuộc tính của Euclid mà mỗi số nguyên N có thể được chia cho một số nguyên M khác như sau:
tồn tại các cặp u, v sao cho chúng ta có thể viết:
Vì có vô số cặp đó, chúng tôi muốn tìm những cặp đặc biệt. Thực tế có chính xác (A, B không bằng 0) hai cặp như vậy bão hòa
Thử thách
Mục tiêu của thử thách này là tìm ra cặp hệ số (có thứ tự) (u, v) để bão hòa các ràng buộc trên và trong đó bạn phải tích cực. Điều này thu hẹp đầu ra thành một cặp duy nhất.
Đầu vào
Chúng tôi có thể giả định rằng đầu vào là dương, A cũng sẽ luôn lớn hơn B (A> B).
Đầu ra
Đầu ra của chương trình / chức năng của chúng ta phải là cặp (được đặt hàng) được chỉ định trong thử thách.
Quy tắc
Người ta không được sử dụng các thuật toán Euclide mở rộng tích hợp (ví dụ: trong Mathicala, người ta không được phép sử dụng GCD
nhưng không được ExtendedGCD
- điều này sẽ thất bại trong 5,3 dù sao).
Câu trả lời có thể là một chương trình đầy đủ (lấy đầu vào qua STDIN hoặc tương tự và đầu ra qua STDOUT) hoặc một hàm (trả về cặp).
Bên cạnh cặp (u, v) sẽ không có bất kỳ đầu ra nào, các dòng mới hoặc dấu cách được phép. (dấu ngoặc hoặc dấu phẩy đều ổn)
Đây là mã golf, tất cả các sơ hở tiêu chuẩn đều bị cấm và chương trình có số byte thấp nhất sẽ thắng.
Ví dụ
(A, B) -> (u, v)
(42, 12) -> (1, -3)
(4096, 84) -> (4, -195)
(5, 3) -> (2, -3)
(1155, 405) -> (20, -57)
(37377, 5204) -> (4365, -31351)
(7792, 7743) -> (7585, -7633)
(38884, 2737) -> (1707, -24251)
(6839, 746) -> (561, -5143)
(41908, 7228) -> (1104, -6401)
(27998, 6461) -> (3, -13)
(23780, 177) -> (20, -2687)
(11235813, 112358) -> (8643, -864301)