... ít nhất là đối với một số định nghĩa về "tự sửa đổi".
Nhiệm vụ
Trong thử thách này, nhiệm vụ của bạn là để viết ba chuỗi A
, B
và C
đáp ứng các thuộc tính sau.
Chuỗi
B
có độ dài ít nhất 1.Đối với mỗi
n ≥ 0
, chuỗi là một chương trình hợp lệ (có nghĩa là chương trình đầy đủ có thể chạy hoặc định nghĩa hàm) trong ngôn ngữ lập trình bạn chọn. Các biểu superscript lặp lại, vì vậy phương tiện này, chuỗi , , , vv Mỗi chương trình có một chuỗi như là đầu vào, và trả về một chuỗi như đầu ra.ABnC
AC
ABC
ABBC
ABBBC
Đối với bất kỳ
m, n ≥ 0
, nếu chương trình được chạy với đầu vào , nó sẽ trả về . Đối với các đầu vào không thuộc dạng này, chương trình có thể làm bất cứ điều gì, kể cả sự cố.ABmC
ABnC
ABm*n+1C
Một số ví dụ ở định dạng program(input) -> output
:
AC(AC) -> ABC
ABC(AC) -> ABC
ABBBBBC(AC) -> ABC
AC(ABC) -> ABC
AC(ABBBBC) -> ABC
ABC(ABC) -> ABBC
ABBC(ABC) -> ABBBC
ABBBBC(ABBBC) -> ABBBBBBBBBBBBBC
ABBBC(ABBBBBBC) -> ABBBBBBBBBBBBBBBBBBBC
Quy tắc và chấm điểm
Điểm của bạn là tổng chiều dài A
vàC
, điểm thấp hơn sẽ tốt hơn. Lưu ý rằng trong khi B
không được tính vào điểm số, nó phải được tạo ra bởi A
và C
như trong ví dụ đầu tiên.
Sơ hở tiêu chuẩn là không được phép. Các chương trình không được phép truy cập trực tiếp hoặc gián tiếp vào mã nguồn của riêng họ (trừ khi chúng được cung cấp dưới dạng đầu vào). Bạn được yêu cầu để xác định các chuỗi A
, B
và C
trong câu trả lời của bạn một cách nào đó, và khuyến khích để giải thích giải pháp của bạn.