Xét một khối văn bản vuông, N ký tự rộng bằng N cao, đối với một số nguyên N lẻ lớn hơn 1.
Để làm ví dụ, hãy để N = 5 và văn bản là:
MLKJI
NWVUH
OXYTG
PQRSF
ABCDE
Lưu ý rằng đây là bảng chữ cái (ngoài Z) xoắn ốc xung quanh ngược chiều kim đồng hồ từ góc dưới bên trái. Nó giống như một tấm thảm cuộn lên.
"Bỏ kiểm soát" văn bản theo một phần tư lần lượt theo chiều kim đồng hồ để FGHI
có cùng cấp độ với ABCDE
kết quả trong:
PONM
QXWL
RYVK
STUJ
ABCDEFGHI
Việc hủy đăng ký này có thể được thực hiện thêm 7 lần nữa cho đến khi văn bản là một dòng duy nhất:
SRQP
TYXO
UVWN
ABCDEFGHIJKLM
UTS
VYR
WXQ
ABCDEFGHIJKLMNOP
WVU
XYT
ABCDEFGHIJKLMNOPQRS
XW
YV
ABCDEFGHIJKLMNOPQRSTU
YX
ABCDEFGHIJKLMNOPQRSTUVW
Y
ABCDEFGHIJKLMNOPQRSTUVWX
ABCDEFGHIJKLMNOPQRSTUVWXY
Thử thách
Thách thức là viết một chương trình là một khối văn bản N × N xuất ra số lần nó đã "không được kiểm soát" trong một phần tư lượt khi nó được sắp xếp lại thành các mẫu không kiểm soát và chạy.
Thực sự có hai cuộc thi ở đây: (hy vọng nó sẽ không quá lộn xộn)
- Làm điều này với N. nhỏ nhất (xuống đến giới hạn N = 3)
- Làm điều này với N. lớn nhất (không giới hạn)
Sẽ không có câu trả lời được chấp nhận nhưng người chiến thắng trong mỗi loại này sẽ nhận được ít nhất 50 đại diện tiền thưởng từ tôi. Trong trường hợp quan hệ các câu trả lời lâu đời nhất giành chiến thắng.
Thí dụ
Nếu khối mã của bạn là
MyP
rog
ram
chạy nó như là đầu ra 0.
Đang chạy
rM
oy
ramgP
nên đầu ra 1.
Đang chạy
or
ramgPyM
nên đầu ra 2.
Đang chạy
o
ramgPyMr
nên đầu ra 3.
Cuối cùng, chạy ramgPyMro
nên xuất 4.
Chi tiết
- Đầu ra phải được in ra thiết bị xuất chuẩn (hoặc thay thế gần nhất). Không có đầu vào.
- Bạn chỉ có thể sử dụng ASCII có thể in (mã hex 20 đến 7E, bao gồm khoảng trắng) trong mã của bạn.
- Không gian lấp đầy khoảng trống trong sắp xếp không kiểm soát. (Trừ khi bạn không điều khiển sang trái.)
- Chỉ các sắp xếp từ hoàn toàn vuông đến phẳng hoàn toàn cần phải có đầu ra hợp lệ. Không có sự sắp xếp khác sẽ được chạy.
- Bạn có thể không đọc nguồn của riêng bạn.
- Bạn có thể sử dụng ý kiến.
- N = 1 được loại trừ vì trong nhiều ngôn ngữ, chương trình
0
sẽ hoạt động. Nếu muốn bạn có thể bỏ qua bên trái chứ không phải bên phải. Vì vậy, ví dụ
MyP rog ram
trở thành
Pg yo Mrram
vân vân Không có không gian thêm được thêm vào khi lăn theo cách này. Các dòng chỉ kết thúc
(Liên quan: Viết chương trình hình chữ nhật cho ra số lần nó được quay )