Nhà sản xuất: tạo ra chương trình chấp nhận chậm nhất có thể


18

Viết chương trình Sản xuất sẽ chấp nhận băng đầu vào trống. Nhưng đừng làm điều đó nhanh chóng! Ý tôi là, viết chương trình nhanh chóng, nhưng đừng để nó chạy nhanh. Chương trình càng chậm thì càng tốt, miễn là cuối cùng nó chấm dứt. Chương trình ví dụ dưới đây mất 3:51 ("tổng thời gian" được báo cáo bởi trình giả lập).

nhập mô tả hình ảnh ở đây

http://pleasefungus.com/Man producoria /? lvl = 36 & code = g12 giápf3; r9: 8f1; p12: 9f3; c13: 9f0; r11: 9f0; r10: 9f0; r9: 9f1; b11: 8f8; ; r9: 7f2; c10: 7f2; c11: 7f2; c12: 7f3; q12: 8f3; y13: 8f2; y14: 8f2; y15: 8f1; y15: 7f0; y14: 7f0; y14: 7f0; = Slow_AcIGHter !; Generate_the_slowest_possible_accepting_machine;:; 7; 3; 0 ;

Chương trình của bạn bắt đầu với băng trống. Nó phải vẽ nguệch ngoạc một chút, nhưng cuối cùng cũng đạt đến ô vuông đầu ra. Bạn có thể để lại dữ liệu trên băng nếu bạn muốn. Chương trình chậm nhất trên bảng 7x7 của Nhà sản xuất giành chiến thắng!

Phím mũi tên phải của bạn là bạn của bạn, nó tăng tốc trình giả lập.

Điểm thưởng cho sự cố giả lập!


Vì vậy, không có yêu cầu để chấp nhận / từ chối đầu vào ngoài băng trống?
Biến động

@Volatility: đúng.
Keith Randall

Khó chịu, trình giả lập sẽ không báo cáo thời gian chạy trừ khi băng trống ở cuối, vì nó không khớp với đầu ra dự kiến ​​của thử thách. (May mắn thay, thật dễ dàng để tôi xóa đoạn băng ở cuối mà không cần thêm quá nhiều không gian.)
hộp bánh mì

Câu trả lời:


22

~ 10 23 lần lặp ~ 10 15 lần lặp ~ 10 8 lần lặp

Nhà sản xuất thiết lập

http://pleasefungus.com/Man producoria /? lvl = 32 & code = g9: 7f2; b12: 8f2; p13: 8f5; p11: 8f3; r14: 8f0; q11: 10f3; ; c12: 9f2; c9: 9f2; i11: 9f7; i10: 9f4; c9: 8f3; i10: 8f2; c14: 9f0; c15: 9f0; c15: 8f3; c15: 7 : 7f3; c10: 7f2; q9: 6f7; r10: 6f1; r9: 5f3; c11: 6f0; r10: 5f2; r11: 5f1; r9: 4f3; r10: 4f0; ; y14: 5f3; y14: 6f0; y13: 6f0; y12: 6f0; & ctm = Slow_Ac805ter !; Generate_the_slowest_possible_accepting_machine;:; 7; 3; 0 ;

Máy về cơ bản là một máy đo đường chạy ở cơ sở ba, sử dụng các ký hiệu màu đỏ, màu xanh và màu vàng để thay thế cho các chữ số 0, 1 và 2 tương ứng. Biểu tượng màu xanh lá cây được sử dụng để đánh dấu sự kết thúc của số. Khi bắt đầu, băng được khởi tạo với 49 biểu tượng màu đỏ. Điều này được thực hiện bởi các bộ phận trong ba hàng trên cùng của máy. Bốn hàng dưới cùng xử lý nhiệm vụ tăng số trong một vòng lặp. Trên mỗi lần lặp, hai ô nhánh ở phía bên trái tìm ra cách áp dụng số tăng cho số hiện tại và sau đó các ô nhánh ở phía bên phải sao chép các chữ số còn lại, không bị ảnh hưởng.

Trước đây tôi đã cố gắng ước tính thời gian chạy của máy, nó có được phép chạy đến khi hoàn thành hay không, nhưng ở cấp độ này, sẽ có ý nghĩa hơn khi chỉ đi theo số lần lặp. Nói một cách đơn giản, sẽ mất khoảng một phút để hoàn thành một lần lặp - nhưng ngay cả khi chỉ mất một giây sẽ chỉ giảm thời gian chạy xuống một bậc độ lớn.


4
Ok, tôi từ bỏ ..
Biến động

2
Đừng bỏ cuộc! Tôi không nghi ngờ rằng điều này vẫn chỉ là trầy xước bề mặt. Ví dụ, nén logic của máy đo đường chỉ bằng một hoặc hai ô sẽ cho phép tăng độ lớn trong thời gian chạy.
hộp bánh mì


5
Nếu nó hữu ích, tôi thường gửi câu trả lời golf phía sau nhà lãnh đạo, chỉ vì đó là một cách tiếp cận khác. Một trong những điều tôi thích về trang web này là nó bảo tồn sự đa dạng của các phản hồi.
hộp bánh mì

1
@SimplyBeautitableArt Người ta có thể cải thiện một cách có thể hình dung bằng cách có các cặp ký hiệu là các chữ số (trong trường hợp đó bạn có thể sử dụng 15 trên 16 thay vì 3 trên 4). Tất nhiên, bạn sẽ gặp rất nhiều khó khăn với kích thước bảng nhỏ trong việc cố gắng thực hiện điều đó.
frageum

8

603: 25

Bài kiểm tra trực tuyến

Tôi đã đọc lại các câu hỏi của Nhà sản xuất ngày hôm nay và đột nhiên có một ý tưởng sẽ làm chậm quá trình: thay vì chỉ có 50 giá trị và thay đổi màu sắc 3 lần, chương trình mới thực hiện điều đó, nhưng sau đó, nó giảm dần số lượng giá trị bằng 1 và tiếp tục thay đổi màu cho đến khi có một băng trống tại thời điểm chương trình dừng lại.

Hàng đợi sẽ không lưu trữ hơn 50 giá trị cùng một lúc, vì vậy không có ích gì khi cố gắng đẩy quá nhiều giá trị lên băng - chúng chỉ bị đẩy ra ngay lập tức. Như trước đây, các băng tải nhằm mục đích tối đa hóa thời gian dành cho vật để chạy. Trong thực tế, đã có sự điều chỉnh tối thiểu xuống để đạt được sự gia tăng to lớn về thời gian chạy.

Vẫn không có nơi nào gần câu trả lời của Breadbox .


Thú vị như thế nào các giải pháp tương tự của chúng tôi là. Cả hai chúng tôi bắt đầu với số nhân 9x6, và chúng tôi đặt chi nhánh và nhóm x6 ở cùng một nơi! Mặc dù bạn thanh lịch hơn - bạn đã sử dụng mọi tế bào và hoàn thành với một cuộn băng sạch.
Igby Largeeman

5

33:33

Làm việc về điều này khá lâu ( Biến động đặt thanh khá cao), nhưng một khi tôi đạt 33:33, tôi nghĩ rằng đó là thời gian gọn gàng để dừng lại.

Chiến lược này khá cùn: về cơ bản lấp đầy băng bằng một màu, sau đó là màu khác, và luôn cố gắng di chuyển càng nhiều ô càng tốt giữa mỗi lần ghi (hoặc nhóm ghi).

Tôi chắc chắn có nhiều cách để được tìm thấy rằng chúng ta có thể tiến xa hơn với điều này.

Hải ly bận rộn

Liên kết cấp


+1 Tôi sẽ xem những gì tôi có thể làm để đánh bại nó;) (mặc dù có lẽ tôi sẽ không đi quá xa)
Biến động
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.