Lấy cảm hứng từ giá rẻ, nhanh, tốt , chúng tôi sẽ thực hiện một thuật toán có chính xác hai thuật toán.
Toán
Cho hai số nguyên khác a và b , GCF d là số nguyên lớn nhất chia cả a và b mà không có phần dư. Các hệ số Bézout là các cặp số nguyên (x, y) sao cho ax + by = d . Hệ số Bézout không phải là duy nhất. Ví dụ: đã cho:
a = 15, b = 9
Chúng ta có
d = 3
x = 2
y = -3
Kể từ đó 15*2 + 9*(-3) = 30 - 27 = 3
.
Một cách phổ biến để tính toán GCF và một cặp hệ số Bézout là sử dụng Thuật toán của Euclid , nhưng đó không phải là cách duy nhất.
Mật mã
Chương trình của bạn nên lấy hai số nguyên làm đầu vào. Nó sẽ xuất / trả về hệ số chung lớn nhất và một cặp hệ số Bézout.
Ví dụ đầu vào:
15 9
đầu ra ví dụ
3 (2, -3)
Đầu ra có thể theo bất kỳ thứ tự và định dạng nào, nhưng cần phải rõ ràng đó là GCF và hệ số nào.
Đồ lót
Chương trình của bạn có tiềm năng là rẻ, nhanh và tốt. Thật không may, nó chỉ có thể là hai trong số đó cùng một lúc.
- Khi nó không rẻ , chương trình nên sử dụng quá nhiều tài nguyên hệ thống.
- Khi nó không nhanh , chương trình sẽ mất quá nhiều thời gian.
- Khi nó không tốt , đầu ra chương trình sẽ sai.
Chương trình sẽ có thể làm (tốt, không làm) cả ba. Đó là khi nào tùy thuộc vào bạn - nó có thể dựa trên thời gian, trình biên dịch, đầu vào nào lớn hơn, v.v. Một số lưu ý bổ sung:
- Chương trình của bạn không nên rõ ràng và nên vượt qua một cuộc kiểm tra. Tôi sẽ hơi nghi ngờ nếu bạn thực hiện ba thuật toán riêng biệt.
- Trong trường hợp giá rẻ , "lượng tài nguyên hệ thống quá mức" là bất cứ điều gì có thể làm chậm các chương trình khác. Nó có thể là bộ nhớ, băng thông, vv
- Trong trường hợp nhanh , "thời gian quá mức" có nghĩa là liên quan đến cách nó chạy trong các trường hợp rẻ và tốt . Chương trình vẫn nên kết thúc. Càng gần bạn càng có thể "cực kỳ bực bội nhưng không đủ bực bội để dừng chương trình" (hài hước hơn và) tốt hơn.
- Trong trường hợp tốt , đầu ra rõ ràng không nên sai và phải vượt qua kiểm tra chữ thảo. Tôi sẽ rất nghi ngờ nếu nó đưa cho tôi một chứng chỉ "2 anna".
Đây là một cuộc thi phổ biến, vì vậy hầu hết các chiến thắng đều thắng!
BIÊN TẬP
Để làm rõ, tôi đang tìm kiếm các chương trình có thể "nhanh và rẻ" và "rẻ và tốt" và "nhanh và tốt" trong các trường hợp khác nhau, không phải là những chương trình chỉ làm một trong số chúng.