Chúng ta có thể biểu diễn một khối Rubik như một mạng như sau (khi được giải):
WWW
WWW
WWW
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
YYY
YYY
YYY
Mỗi chữ cái đại diện cho màu tương ứng ( W
là trắng, G
xanh lục , v.v.)
Nó đã được chỉ ra rằng có chính xác (~ triệu) các hoán vị khác nhau mà một khối Rubik có thể có.
Nhiệm vụ của bạn là lấy một số nguyên trong khoảng từ đến và đưa ra hoán vị tương ứng, theo cách hiển thị ở trên. Bạn có thể chọn cách hoán vị được sắp xếp, nhưng thuật toán bạn sử dụng phải được hiển thị để tạo ra một hoán vị duy nhất và chính xác cho mỗi đầu vào có thể.
Quy tắc hoán vị không hợp lệ
Lấy từ này trang
Để bắt đầu, trung tâm của mỗi mặt 3x3 phải giữ nguyên, vì hình vuông trung tâm trên khối Rubik không thể xoay được. Toàn bộ khối có thể được xoay, thay đổi vị trí của một khuôn mặt, nhưng điều này không ảnh hưởng đến mạng của khối.
Nếu chúng ta nói mỗi hoán vị có một chẵn lẻ, dựa trên tính chẵn lẻ của số lần hoán đổi để đạt được hoán vị đó, chúng ta có thể nói
Mỗi mảnh góc có ba định hướng có thể. Nó có thể được định hướng chính xác (0), theo chiều kim đồng hồ (1) hoặc ngược chiều kim đồng hồ (2). Tổng các hướng của góc luôn chia hết cho 3
Mỗi vòng quay hợp pháp trên Cube của Rubik luôn lật một số cạnh chẵn, do đó không thể chỉ có một mảnh được định hướng sai.
Xem xét hoán vị của tất cả các góc và cạnh, tính chẵn lẻ phải đồng đều, điều đó có nghĩa là mỗi bước di chuyển hợp pháp luôn thực hiện tương đương với số lần hoán đổi chẵn (bỏ qua định hướng)
Ví dụ: ba mạng sau đây là đầu ra không hợp lệ:
WWW
WWW
WWW
GGGWWWBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
YYY
YYY
YYY
(Too many whites/not enough reds)
WRW
WRW
WRW
GGGRWRBBBOOO
GGGWRRBBBOOO
YYGRWROOOBBB
YYY
GGY
YYY
(There are two red/green center squares and no white/yellow center squares.
In all valid permutations, the center squares are all different colours)
WWW
WWW
WWW
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBOYOO
YYY
YYY
YYB
(The yellow/orange/blue corner is rotated into an impossible permutation)
Quy tắc
- Tuy nhiên, bạn phải chứng minh rằng thuật toán này hợp lệ. Bạn không cần phải liệt kê từng hoán vị, miễn là bạn chứng minh tính hợp lệ của thuật toán của mình.
- Bạn phải bao gồm một số loại bằng chứng về tính hợp lệ trong câu trả lời của bạn. Bằng chứng này có thể chứng minh tính hợp lệ trong bất kỳ phương pháp chứng minh nào được chấp nhận, ngoại trừ việc liệt kê tất cả các khả năng.
- Bạn có thể chọn sử dụng phương thức nhập thay thế nếu muốn, miễn là:
- Đầu vào bị giới hạn
- Mỗi đầu vào tương ứng với một đầu ra duy nhất
- Bạn giải thích rõ ràng định dạng đầu vào và cách nó tương ứng với từng đầu ra
- Bạn có thể thay đổi các ký tự được sử dụng để sử dụng 6 ký tự ASCII khác nhau, giữa 33 (
!
) và 126 (~
), thay vìWGRBOY
- Bạn có thể xuất ra theo bất kỳ cách nào bạn muốn, miễn là nó tạo thành một đại diện rõ ràng của một khối trong đó tất cả 6 mặt có thể được hiển thị, bao gồm bất kỳ mạng khối hợp lệ nào, một chuỗi xếp hàng đơn hoặc kết xuất 3D. Nếu bạn không chắc chắn về một định dạng cụ thể, đừng ngần ngại hỏi trong các bình luận.
Đây là một môn đánh gôn để mã ngắn nhất, tính bằng byte, trong mỗi ngôn ngữ sẽ thắng.
Ví dụ đầu ra hợp lệ
YYY
YYY
YYY
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
WWW
WWW
WWW
(The `W` and `Y` faces have been swapped)
ZZZ
+++
+}}
+[[}77ZZ7bbb
bb[}[[7}}+Z7
bb[}++[}}+Z7
7bb
[7Z
[7Z
(To start with, the colours have been mapped W -> +, G -> b, R -> [, B -> }, O -> Z and Y -> 7.
Then, the moves L, R, U and F' have been applied, in that order.
Notice that each centre square is different, and corresponds to the same colour as in the mapping)