Để giải quyết vấn đề dừng, bạn được cung cấp một mô tả về chương trình và phải xác định liệu nó có bao giờ kết thúc hay không. Bạn không bao giờ có thể làm điều này cho tất cả các chương trình. Tuy nhiên, đối với các chương trình như (trong brainf *** ):
>
Nó rõ ràng sẽ dừng lại, và cho các chương trình như:
+[]
Nó rõ ràng sẽ không. Thách thức của bạn là "giải quyết" vấn đề tạm dừng cho càng nhiều chương trình càng tốt. Các chương trình này sẽ không sử dụng .
hoặc ,
, và sẽ không có đầu vào hoặc đầu ra. Bạn sẽ được cung cấp một mô tả về chương trình và phải xuất ra "Dừng", "Không dừng lại" hoặc "Không biết". Khi chương trình của bạn xuất ra "Dừng" hoặc "Không dừng lại", bạn đã giải quyết chương trình nhập. Dưới đây là một số yêu cầu.
- Nó phải giải quyết ít nhất một lượng chương trình vô hạn.
- Đối với mỗi chương trình nó giải quyết, giải pháp của nó phải chính xác.
- Bạn chỉ có thể xuất 1 trong 3 lựa chọn trên.
- Bạn có thể cho rằng máy tính đang chạy có thời gian và bộ nhớ vô hạn, vì vậy XKCD 1266 sẽ không hoạt động (băng không giới hạn).
- Không có nguồn lực bên ngoài.
- Bạn không thể sử dụng ngôn ngữ lập trình thực sự có thể giải quyết vấn đề tạm dừng .
Bạn có thể có một chương trình bên không có mã, lấy một chuỗi là một chương trình và tạo ra một số loại cú pháp trừu tượng của nó nếu bạn muốn. Lưu ý, đó không thực sự là điểm mỗi se, nhưng làm thế nào để xác định xem một chương trình có đánh bại chương trình khác không.
- Nếu chương trình A giải quyết vô số chương trình mà B không có, nhưng B chỉ giải quyết hữu hạn hoặc không có chương trình nào mà A giải quyết, A sẽ tự động thắng.
- Nếu không, chương trình có ít nhân vật nhất sẽ thắng. Không tính khoảng trắng hoặc bình luận, vì vậy đừng làm xáo trộn mã của bạn.
Mẹo: Bộ hẹn giờ sẽ không hoạt động. Bạn thấy, đối với bất kỳ lúc nào T và máy đã cho, đều có N, sao cho tất cả các chương trình dài hơn thời gian đó phải mất nhiều hơn thời gian T. Điều này có nghĩa là bộ hẹn giờ chỉ có thể đạt được giải pháp về số lượng chương trình hữu hạn và, như bạn có thể thấy ở trên, việc giải quyết số lượng chương trình hữu hạn không giúp ích được gì.
>
, bỏ qua nó." Sau đó, điều của bạn sẽ là dư thừa.
>
s sau khi kết thúc chương trình, sau đó tìm chương trình P trên đó S' trả lời "Không xác định", sau đó tạo một giải pháp mới trả lời đúng trên P với >
s nối thêm và đưa ra câu trả lời của S 'nếu không. Vì S 'bỏ qua >
s nên P với bất kỳ số >
s được nối nào cũng sẽ không được S' giải quyết.
>
s được thêm vào cuối (vì các lệnh dừng này dừng lại) và đưa ra câu trả lời của S trên tất cả các đầu vào khác. Đây mới phá được giải pháp vấn đề vô cùng hơn S.