Phiên bản 128 ngôn ngữ này (một chương trình tạo ra một chương trình bằng ngôn ngữ khác, tạo ra một chương trình bằng một ngôn ngữ khác, (125 ngôn ngữ sau), tạo ra chương trình gốc) khá ấn tượng. Nhưng thật không may, nó có một số lần lặp tĩnh.
Viết chương trình xuất ra chương trình (không nhất thiết phải bằng ngôn ngữ khác, nhưng có thể), chương trình này tạo ra chương trình, tạo ra chương trình, v.v., sau n lần lặp, sẽ xuất chương trình gốc lần đầu tiên (nghĩa là không có trung gian chương trình nên giống như bản gốc, vì nếu không thì một quine bỏ qua đầu vào của nó sẽ hoạt động), trong đó n là một số nguyên không âm được cung cấp làm đầu vào. Đầu vào không thể chỉ là một số trong mã nguồn gốc (ví dụ: đặt x = <the value of n>
ở đầu chương trình của bạn), nó phải là một trong những điều sau đây:
- Truyền qua làm đối số dòng lệnh
- Đọc từ đầu vào tiêu chuẩn
- Truyền qua làm đối số cho hàm, trả về / xuất chương trình mới.
Đối với các giai đoạn trung gian trong ouroboros, chương trình của bạn có thể là chương trình hoạt động đầy đủ hoặc chức năng không có đối số, khi được gọi, sẽ trả về / xuất ra kế tiếp.
Bạn không thể đọc từ chính tệp nguồn hoặc sử dụng bất kỳ nội dung giống như quine nào (tôi không nghĩ có bất kỳ thứ gì sẽ làm điều này, nhưng có thể có)
Để rõ ràng, nếu n = 0
, chương trình nên xuất mã nguồn riêng của nó.
Nếu n = 1
, chương trình sẽ xuất ra một chương trình khác, đầu ra mã nguồn gốc.
Và như thế...
Ít byte nhất sẽ thắng!
Biên tập:
Tôi nên viết "Đối với các giai đoạn trung gian trong ouroboros, chương trình của bạn có thể là chương trình hoạt động đầy đủ, không có đầu vào hoặc chức năng không có đối số". Nếu chương trình của bạn xuất ra cái tiếp theo trong chuỗi, sau đó đợi đầu vào, điều đó tốt, nhưng chương trình của bạn không cần giá trị ban đầu là n.
getInput()
được sử dụng mà không có bất kỳ đầu vào nào được cung cấp. Hoặc chúng ta có thể nói đầu vào một cái gì đó ngẫu nhiên không được sử dụng cho các lần lặp lại sau, để ngăn ngừa lỗi cho getInput()
? Aka là câu trả lời Python hiện tại hợp lệ?
n
, đưa ra một chương trình là "chương trình ban đầu" của một n
phép lặp ouroboros và câu trả lời của chúng tôi không nên được tính là một trong những n
lần lặp. Điều này có đúng không?