Đối với những người bạn không quen thuộc, Vấn đề nữ sinh của Kirkman diễn ra như sau:
Mười lăm cô gái trẻ trong một trường học đi bộ ba lần trong bảy ngày liên tiếp: bắt buộc phải sắp xếp họ hàng ngày để không có hai người đi bộ hai lần.
Chúng ta có thể xem xét điều này như một lồng nhau 3 của 5 danh sách (hoặc ma trận):
[[a,b,c]
[d,e,f]
[g,h,i]
[j,k,l]
[m,n,o]]
Về cơ bản, mục tiêu của vấn đề ban đầu là tìm ra 7 cách khác nhau để sắp xếp ma trận trên sao cho hai chữ cái không bao giờ chia sẻ một hàng nhiều lần . Từ MathWorld (được liên kết ở trên), chúng tôi tìm thấy giải pháp này:
[[a,b,c] [[a,d,h] [[a,e,m] [[a,f,i] [[a,g,l] [[a,j,n] [[a,k,o]
[d,e,f] [b,e,k] [b,h,n] [b,l,o] [b,d,j] [b,i,m] [b,f,g]
[g,h,i] [c,i,o] [c,g,k] [c,h,j] [c,f,m] [c,e,l] [c,d,n]
[j,k,l] [f,l,n] [d,i,l] [d,k,m] [e,h,o] [d,o,g] [e,i,j]
[m,n,o]] [g,j,m]] [f,j,o]] [e,g,n]] [i,k,n]] [f,h,k]] [h,l,m]]
Bây giờ, nếu có một số lượng nữ sinh khác nhau thì sao? Có thể có một ngày thứ tám? † Đây là thách thức của chúng tôi.
† Trong trường hợp này không †† , nhưng không nhất thiết phải cho kích thước mảng khác
†† Chúng ta có thể dễ dàng hiển thị này, kể từ khi a
xuất hiện trong một hàng với mỗi lá thư khác.
Các thách thức:
Với một đầu vào kích thước (hàng, cột hơn) của một mảng của nữ sinh (tức là 3 x 5
, 4 x 4
hoặc [7,6]
, [10,10]
vv), sản lượng các thiết lập lớn nhất có thể của 'ngày' phù hợp với các yêu cầu đã nêu ở trên.
Đầu vào:
Kích thước cho mảng nữ sinh (bất kỳ hình thức nhập hợp lý nào bạn muốn).
Đầu ra:
Chuỗi mảng lớn nhất có thể phù hợp với các yêu cầu trên (bất kỳ dạng hợp lý nào).
Các trường hợp thử nghiệm:
Input: [1,1]
Output: [[a]]
Input: [1,2]
Output: [[a,b]]
Input:* [2,1]
Output: [[a]
[b]]
Input: [2,2]
Output: [[a,b] [[a,c] [[a,d]
[c,d]] [b,d]] [b,c]]
Input: [3,3]
Output: [[a,b,c] [[a,d,g] [[a,e,i] [[a,f,h]
[d,e,f] [b,e,h] [b,f,g] [b,d,i]
[g,h,i]] [c,f,i]] [c,d,h]] [c,e,g]]
Input: [5,3]
Output: [[a,b,c] [[a,d,h] [[a,e,m] [[a,f,i] [[a,g,l] [[a,j,n] [[a,k,o]
[d,e,f] [b,e,k] [b,h,n] [b,l,o] [b,d,j] [b,i,m] [b,f,g]
[g,h,i] [c,i,o] [c,g,k] [c,h,j] [c,f,m] [c,e,l] [c,d,n]
[j,k,l] [f,l,n] [d,i,l] [d,k,m] [e,h,o] [d,o,g] [e,i,j]
[m,n,o]] [g,j,m]] [f,j,o]] [e,g,n]] [i,k,n]] [f,h,k]] [h,l,m]]
There may be more than one correct answer.
* Cảm ơn @F Frozenfrank đã sửa trường hợp kiểm tra 3 : nếu chỉ có một cột, chỉ có thể có một ngày, vì thứ tự hàng không thành vấn đề.
Đây là cuộc thi đánh gôn - câu trả lời ngắn nhất sẽ thắng.