Cho một mảng 3D nhị phân, đối với mỗi lớp, xoay vòng theo từng cột của nó theo nhiều bước như được chỉ định bởi mã hóa nhị phân của các cột của lớp bên trên, và sau đó xoay vòng trái mỗi hàng theo nhiều bước như được chỉ ra bởi mã hóa nhị phân của các hàng của lớp bên dưới nó.
Sẽ luôn có ít nhất ba lớp. Các cột của lớp trên cùng và các hàng của lớp dưới cùng không được xoay.
Đi qua
Hãy bắt đầu với mảng 4 lớp nhỏ, 2 hàng, 3 cột:
[[[1,0,1],
[1,0,0]],
[[1,0,1],
[0,1,1]],
[[0,1,1],
[1,1,1]],
[[1,1,0],
[1,1,1]]]
Bước đầu tiên là đánh giá các số được mã hóa nhị phân theo các cột và hàng của mỗi lớp:
3 0 2
5 [[[1,0,1],
4 [1,0,0]],
2 1 3
5 [[1,0,1],
3 [0,1,1]],
1 3 3
3 [[0,1,1],
7 [1,1,1]],
3 3 1
6 [[1,1,0],
7 [1,1,1]]]
Lớp đầu tiên, [[1,0,1],[1,0,0]]
sẽ không có các cột được xoay, nhưng các hàng của nó sẽ được xoay theo chu kỳ lần lượt 5 bước và 3 bước tương ứng [[1,1,0],[1,0,0]]
.
Lớp thứ hai [[1,0,1],[0,1,1]]
, sẽ có các cột được xoay theo chu kỳ lần lượt 3, 0 và 2 bước [[0,0,1],[1,1,1]]
, sau đó các hàng được xoay theo chu kỳ 3 và 7 bước tương ứng, không có thay đổi rõ ràng.
Lớp thứ ba, [[0,1,1],[1,1,1]]
xoay lên 2, 1 và 3 bước giữ nguyên, và không xoay trái 6 và 7 bước làm bất cứ điều gì.
Cuối cùng, lớp thứ tư, [[1,1,0],[1,1,1]]
xoay lên 1, 3 và 3 bước là [[1,1,1],[1,1,0]]
, nhưng các hàng của nó không được xoay sau đó, vì nó là lớp cuối cùng.
Đặt tất cả các lớp lại với nhau, cung cấp cho chúng ta mảng 3D tự xoay nhị phân:
[[[1,1,0],
[1,0,0]],
[[0,0,1],
[1,1,1]],
[[0,1,1],
[1,1,1]],
[[1,1,1],
[1,1,0]]]
Ví dụ trường hợp:
[[[1,0,1],[1,0,0]],[[1,0,1],[0,1,1]],[[0,1,1],[1,1,1]],[[1,1,0],[1,1,1]]]
cho
[[[1,1,0],[1,0,0]],[[0,0,1],[1,1,1]],[[0,1,1],[1,1,1]],[[1,1,1],[1,1,0]]]
[[[1]],[[1]],[[0]]]
cho
[[[1]],[[1]],[[0]]]
[[[1,0,1],[1,0,1],[1,0,1]],[[0,0,1],[0,0,1],[0,0,1]],[[1,0,0],[1,0,1],[0,0,1]]]
cho
[[[0,1,1],[0,1,1],[0,1,1]],[[0,1,0],[1,0,0],[0,1,0]],[[1,0,1],[1,0,1],[0,0,0]]]
None
trong quá trình cắt cho vòng quay, tôi tin rằng cả hai['0']
có thể trở thành[[]]
.