Điều này được lấy cảm hứng từ một vấn đề toán học tôi thấy ở đâu đó trên internet nhưng không nhớ là ở đâu (CẬP NHẬT: Vấn đề ban đầu được tìm thấy trên câu đố toán học subreddit với một bằng chứng với điều kiện là có thể, cũng thấy bài đăng Math SE này ), yêu cầu một bằng chứng nếu quy trình sau có thể áp dụng cho bất kỳ cặp số nguyên tùy ý nào (từ những gì tôi nhớ, có thể có cho bất kỳ cặp đã cho nào):
Cho một cặp số nguyên, j và k, nhân đôi một trong số chúng và thêm một số nguyên, kết quả là một cặp số nguyên mới, nghĩa là (j, k) -> (j + 1, k * 2) hoặc (j * 2, k + 1). Sau đó lặp lại quá trình này với các số nguyên đó, với mục tiêu có cặp số nguyên bằng nhau.
Các ví dụ đã cho này không nhất thiết là tối ưu nhưng cho thấy quá trình này có thể được thực hiện trên bất kỳ số nguyên nào, dương, âm hoặc bằng 0:
(2, 5) -> (3, 10) -> (6, 11) -> (12, 12)
(5, 6) -> (6, 12) -> (7, 24) -> (14, 25) -> (28, 26) -> (56, 27) -> (112, 28) -> (113, 56) -> (226, 57) -> (227, 114) -> (228, 228)
(0, 2) -> (1, 4) -> (2, 5) -> (3, 10) -> (6, 11) -> (12, 12)
(-4, 0) -> (-3, 0) -> (-2, 0) -> (-1, 0) -> (0, 0)
(3, -1) -> (6, 0) -> (12, 1) -> (13, 2) -> (14, 4) -> (15, 8) -> (16, 16)
(-4, -3) -> (-8, -2) -> (-16, -1) -> (-32, 0) -> (-31, 0) -> ... -> (0, 0)
Thử thách
Tạo một chương trình cho hai số nguyên, đưa ra danh sách các bước cần thiết để làm cho các số nguyên đó bằng nhau bằng cách tăng liên tục một số nguyên và nhân đôi số nguyên kia
Thông số kỹ thuật
- Giải pháp không phải là tối ưu nhưng nó phải giải quyết trong một số bước hữu hạn cho bất kỳ cặp tùy ý nào
Đầu vào phải là hai số nguyên
Đầu ra có thể là bất kỳ đầu ra hợp lý nào biểu thị rõ ràng các số nguyên kết quả của từng bước, ví dụ:
- một chuỗi có hai dấu phân cách riêng biệt (bất kỳ ký hiệu, khoảng trắng, v.v.), một cho mỗi số nguyên trong một cặp và một cho mỗi cặp
- ví dụ: đầu vào j, k: 2, 5 -> đầu ra: 3,10; 6,11; 12,12
- danh sách các số nguyên
- ví dụ: đầu vào j, k: 2, 5 -> đầu ra: [[3, 10], [6, 11], [12, 12]]
- một chuỗi có hai dấu phân cách riêng biệt (bất kỳ ký hiệu, khoảng trắng, v.v.), một cho mỗi số nguyên trong một cặp và một cho mỗi cặp
Nếu đầu vào là một cặp số bằng nhau, bạn có thể xuất bất cứ thứ gì miễn là phù hợp với các câu trả lời không cần thiết khác
- ví dụ
- nếu đầu vào [2, 5] có đầu ra [[3, 10], [6, 11], [12, 12]], không bao gồm cặp đầu vào, thì đầu vào [4, 4] sẽ không xuất ra gì.
- nếu đầu vào [2, 5] có đầu ra [[2, 5], [3, 10], [6, 11], [12, 12]], bao gồm cặp đầu vào, thì đầu vào [4, 4] đầu ra [[4, 4]].
- ví dụ
Các phương pháp IO tiêu chuẩn được áp dụng và các sơ hở tiêu chuẩn bị cấm
Đây là mã golf nên câu trả lời ngắn nhất trong byte thắng
[(12,12),(6,11),(3,10),(2,5)]
cho đầu vào (2,5)
?