Tôi rất thích đọc trang web này; đây là câu hỏi đầu tiên của tôi Chỉnh sửa được chào đón.
Cho các số nguyên dương n và m , tính toán tất cả các phân vùng có thứ tự của m thành chính xác n phần nguyên dương và in chúng được phân cách bằng dấu phẩy và dòng mới. Bất kỳ thứ tự là tốt, nhưng mỗi phân vùng phải xuất hiện chính xác một lần.
Ví dụ: đã cho m = 6 và n = 2, các phân vùng có thể là các cặp số nguyên dương có tổng bằng 6:
1,5
2,4
3,3
4,2
5,1
Lưu ý rằng [1,5] và [5,1] là các phân vùng được sắp xếp khác nhau. Đầu ra phải chính xác theo định dạng ở trên, với một dòng mới tùy chọn. (EDIT: Thứ tự chính xác của các phân vùng không quan trọng). Đầu vào / đầu ra được thông qua I / O mã golf tiêu chuẩn .
Một ví dụ đầu ra khác cho m = 7, n = 3:
1,1,5
1,2,4
2,1,4
1,3,3
2,2,3
3,1,3
1,4,2
2,3,2
3,2,2
4,1,2
1,5,1
2,4,1
3,3,1
4,2,1
5,1,1
Mã nhỏ nhất tính bằng byte sau 1 tuần sẽ thắng.
Một lần nữa, xin vui lòng chỉnh sửa nếu cần thiết.
Phụ lục:
@TimmyD hỏi kích thước của số nguyên đầu vào mà chương trình phải hỗ trợ. Không có tối thiểu cứng ngoài các ví dụ; thật vậy, kích thước đầu ra tăng theo cấp số nhân, được mô hình hóa gần bằng: lines = e ^ (0.6282 n - 1.8273).
n | m | lines of output
2 | 1 | 1
4 | 2 | 2
6 | 3 | 6
8 | 4 | 20
10 | 5 | 70
12 | 6 | 252
14 | 7 | 924
16 | 8 | 3432
18 | 9 | 12870
20 | 10 | 48620
22 | 11 | 184756
24 | 12 | 705432