Một cặp tương đương thú vị là 1 + 5 = 2 · 3 và 1 · 5 = 2 + 3 . Có nhiều cái như thế này, một cái khác là 1 + 1 + 8 = 1 · 2 · 5 và 1 · 1 · 8 = 1 + 2 + 5 . Nói chung, tích của n số nguyên dương bằng tổng n số nguyên dương và ngược lại.
Trong thử thách này, bạn phải tạo ra tất cả các kết hợp số nguyên dương như vậy cho đầu vào n> 1 , không bao gồm hoán vị. Bạn có thể xuất chúng trong bất kỳ định dạng hợp lý. Ví dụ: tất cả các giải pháp có thể cho n = 3 là:
(2, 2, 2) (1, 1, 6)
(1, 2, 3) (1, 2, 3)
(1, 3, 3) (1, 1, 7)
(1, 2, 5) (1, 1, 8)
Chương trình có thể tạo ra nhiều kết hợp nhất cho n cao nhất trong một phút trên RAM 2GB của tôi , máy tính xách tay Intel Ubuntu 64 bit sẽ thắng. Nếu câu trả lời của bạn sử dụng hơn 2GB RAM hoặc được viết bằng ngôn ngữ mà tôi không thể kiểm tra bằng phần mềm có sẵn miễn phí, tôi sẽ không chấm điểm câu trả lời của bạn. Tôi sẽ kiểm tra câu trả lời sau hai tuần nữa và chọn người chiến thắng. Tất nhiên sau đó câu trả lời không cạnh tranh vẫn có thể được đăng.
Vì không biết bộ giải pháp đầy đủ cho tất cả n là gì, bạn được phép đăng câu trả lời tạo ra giải pháp không đầy đủ. Tuy nhiên, nếu câu trả lời khác tạo ra một giải pháp hoàn chỉnh (nhiều hơn), ngay cả khi n tối đa của chúng nhỏ hơn , câu trả lời đó sẽ thắng.
Để làm rõ, đây là quá trình tính điểm để quyết định người chiến thắng:
Tôi sẽ kiểm tra chương trình của bạn với n = 2, n = 3, v.v ... Tôi lưu trữ tất cả các đầu ra của bạn và dừng lại khi chương trình của bạn mất hơn một phút hoặc hơn 2GB RAM. Mỗi lần chương trình được chạy cho một đầu vào n cho trước, nó sẽ bị chấm dứt nếu mất hơn 1 phút.
Tôi xem xét tất cả các kết quả cho tất cả các chương trình cho n = 2. Nếu một chương trình tạo ra các giải pháp ít hợp lệ hơn một chương trình khác, chương trình đó sẽ bị loại bỏ.
Lặp lại bước 2 cho n = 3, n = 4, v.v ... Chương trình cuối cùng đứng thắng.