Cho hai hoán vị ở dạng chu kỳ rời rạc, xuất sản phẩm / thành phần của chúng ở dạng chu kỳ rời rạc.
Để tìm thành phần, chuyển đổi các chu kỳ rời rạc thành hoán vị trong ký hiệu hai dòng. Mỗi số trong một phần tách rời của một chu kỳ được ánh xạ tới số theo sau nó trong cùng một phần. Nó quấn quanh. Vì vậy 1 -> 5
, 5 -> 1
, 2 -> 4
, 4 -> 2
. Nếu một số không được tìm thấy 3 -> 3
, nó được ánh xạ tới chính nó. Chu kỳ rời rạc đầu tiên cũng có thể được viết (1 5)(2 4)(3)
. Các ánh xạ này được chuyển đổi thành hai dòng, như vậy (lưu ý rằng thứ tự của P và Q được đảo ngược):
[T] ông sản phẩm của hai hoán vị thu được bằng cách sắp xếp lại các cột của hoán vị thứ hai (ngoài cùng bên trái) sao cho hàng đầu tiên của nó trùng với hàng thứ hai của hoán vị thứ nhất (ngoài cùng bên phải). Sản phẩm sau đó có thể được viết dưới dạng hàng đầu tiên của hoán vị đầu tiên trên hàng thứ hai của hoán vị thứ hai được sửa đổi.
Quy tắc:
- Đầu vào sẽ được đưa ra dưới dạng danh sách các danh sách hoặc định dạng tương tự
- Bạn có thể không lấy một cái gì đó như
(1 5)(2 4)
là[5, 4, 3, 2, 1]
, đã có trong hình thức hai dòng (chỉ số ánh xạ tới giá trị) - Không phải tất cả các số phải xảy ra trong mỗi nhóm, do đó bạn có thể có
(1 5)·(1 2)
, dẫn đến(2 5 1)
. - Đầu ra của bạn sẽ có thể được sử dụng làm đầu vào của bạn.
- Bạn không cần phải hỗ trợ đầu vào với một chu kỳ trống
(1 5)·()
. Điều đó thay vào đó sẽ được đưa ra như(1 5)·(1)
hoặc một cái gì đó tương đương. - Vì các chu kỳ bao quanh, thứ tự không quan trọng miễn là kết quả là chính xác.
- Bạn có thể bắt đầu từ 0 hoặc 1. Không thành vấn đề, vì kết quả là như nhau.
- Các con số có thể lớn hơn
9
. - Bạn có thể không bao gồm cùng một số nhiều hơn một lần trong đầu ra. Vì vậy,
[[1],[1]]
không được phép. - Lưu ý rằng hoạt động này không giao hoán ! Tôi đặt Q trước P, vì đó là những gì Wikipedia đã làm. Bạn có thể chọn bất kỳ thứ tự nào, nhưng chỉ định nếu nó khác.
- Mã ngắn nhất sẽ thắng
- Tích hợp được cho phép, nhưng nếu bạn sử dụng một, hãy hiển thị một giải pháp mà không sử dụng nó.
Ví dụ:
Không phải tất cả các khả năng đầu ra tương đương được hiển thị
Input
Output
[[1, 5], [2, 4]], [[1, 2, 4, 3]]
[[1, 4, 3, 5]] (or [[4, 3, 5, 1]] or ...)
[[1, 5]], [[1, 2]]
[[2, 5, 1]]
[[10, 2, 3]], [[2]]
[[3, 10, 2]]
[[1]], [[3]]
[[]] (or [[1]] or something equivalent)
[[10,2,3,15],[1,7],[5,6],[14,4,13,11,12]], [[5,6,7,9,14],[2,8,3,10],[1,11]]
[[12, 14, 6, 1], [8, 15, 10, 3, 2], [13, 11, 7, 9, 4]]
(arguments in reverse order from above gives a different answer)
[[5,6,7,9,14],[2,8,3,10],[1,11]], [[10,2,3,15],[1,7],[5,6],[14,4,13,11,12]]
[[9, 14, 4, 13, 1], [10, 8, 3, 15, 2], [7, 11, 12, 5]]