Manufactoria: สร้างโปรแกรมการยอมรับที่ช้าที่สุดที่เป็นไปได้


18

เขียนโปรแกรมManufactoriaที่จะยอมรับเทปอินพุตเปล่า แต่อย่าทำอย่างรวดเร็ว! ฉันหมายถึงเขียนโปรแกรมอย่างรวดเร็ว แต่อย่าให้มันทำงานเร็ว ยิ่งโปรแกรมช้าลงเท่าใดก็ยิ่งดีตราบเท่าที่มันสิ้นสุดลงในที่สุด โปรแกรมตัวอย่างด้านล่างใช้เวลา 3:51 ("เวลารวม" ที่รายงานโดยเครื่องมือจำลอง)

ป้อนคำอธิบายรูปภาพที่นี่

http://pleasingfungus.com/Manufactoria/?lvl=36&code=g12:5f3;r9:8f1;p12:9f3;c13:9f0;r11:9f0;r10:9f0;r9:9f1;b11:8f0;b10:8f1 ; R9: 7f2; C10: 7f2; c11: 7f2; c12: 7f3; Q12: 8f3; y13: 8f2; y14: 8f2; Y15: 8f1; Y15: 7f0; y14: 7f0; y13: 7f0; G12: 6f3; & CTM = Slow_Accepter!; Generate_the_slowest_possible_accepting_machine;:; 7; 3; 0 ;

โปรแกรมของคุณเริ่มต้นด้วยเทปเปล่า มันจะต้องขีดเส้นขยุกขยิกประมาณเล็กน้อย คุณอาจทิ้งข้อมูลไว้ในเทปได้หากต้องการ โปรแกรมที่ช้าที่สุดในบอร์ด 7x7 Manufactoria ชนะ!

ปุ่มลูกศรขวาของคุณคือเพื่อนของคุณมันเพิ่มความเร็วในการจำลอง

คะแนนโบนัสสำหรับการหยุดการจำลอง!


ดังนั้นจึงไม่มีข้อกำหนดสำหรับการยอมรับ / ปฏิเสธอินพุตนอกเหนือจากเทปเปล่า?
ความผันผวน

@ ความผันผวน: ถูกต้อง
Keith Randall

น่ารำคาญเครื่องจำลองจะไม่รายงานเวลาทำงานเว้นแต่เทปจะหมดในตอนท้ายเนื่องจากไม่ตรงกับผลลัพธ์ที่คาดหวัง (โชคดีที่มันง่ายสำหรับฉันที่จะลบเทปในตอนท้ายโดยไม่ต้องใช้พื้นที่มากเกินไป)
breadbox

คำตอบ:


22

~ 10 23 iterations ~ 10 15 iterations ~ 10 8 iterations

การติดตั้ง Manufactoria

http://pleasingfungus.com/Manufactoria/?lvl=32&code=g9:7f2;b12:8f2;p13:8f5;p11:8f3;r14:8f0;q11:10f3;q13:7f1;y13:9f1;r10:10f1 ; c12: 9f2; c9: 9f2; i11: 9f7; i10: 9f4; c9: 8f3; i10: 8f2; c14: 9f0; c15: 9f0; c15: 8f3; c15: 7f3; c14: 7f2; G12: 7f0; c11 : 7f3; C10: 7f2; q9: 6f7; R10: 6f1; R9: 5f3; c11: 6f0; R10: 5f2; R11: 5f1; R9: 4f3; R10: 4f0; R11: 4f0; Y12: 5f2; y13: 5f2 ; y14: 5f3; y14: 6f0; y13: 6f0; y12: 6f0; & ctm = Slow_Accepter!; Generate_the_slowest_possible_accepting_machine;:; 7; 3; 0 ;

เครื่องจักรนั้นเป็นเครื่องวัดระยะทางที่ทำงานในฐานสามโดยใช้สัญลักษณ์สีแดงสีน้ำเงินและสีเหลืองเพื่อใช้แทนตัวเลข 0, 1 และ 2 ตามลำดับ สัญลักษณ์สีเขียวใช้เพื่อทำเครื่องหมายจุดสิ้นสุดของหมายเลข ที่จุดเริ่มต้นเทปจะเริ่มต้นด้วยสัญลักษณ์สีแดง 49 สิ่งนี้ทำโดยชิ้นส่วนในสามแถวบนสุดของเครื่อง แถวสี่แถวด้านล่างจัดการงานของการเพิ่มจำนวนในวง ในการวนซ้ำแต่ละครั้งเซลล์สาขาสองเซลล์ทางด้านซ้ายจะหาวิธีการใช้การเพิ่มขึ้นกับจำนวนปัจจุบันและจากนั้นเซลล์สาขาทางด้านขวาจะคัดลอกตัวเลขที่เหลือและไม่ได้รับผลกระทบ

ก่อนหน้านี้ฉันได้ลองประเมินเวลาการทำงานของเครื่องว่ามันอนุญาตให้ทำงานเสร็จหรือไม่ แต่ในระดับนี้มันสมเหตุสมผลกว่าที่จะไปตามจำนวนการวนซ้ำ การพูดอย่างคร่าวๆจะใช้เวลาประมาณหนึ่งนาทีในการทำซ้ำหนึ่งครั้ง - แต่ถึงแม้ว่าจะใช้เวลาหนึ่งวินาทีที่จะลดเวลาในการทำงานเพียงคำสั่งเดียวเท่านั้น


4
ตกลงฉันยอมแพ้ ..
ความผันผวน

2
อย่ายอมแพ้! ฉันไม่สงสัยเลยว่านี่เป็นเพียงรอยขีดข่วนบนพื้นผิว ตัวอย่างเช่นการบีบลอจิกมาตรวัดระยะทางด้วยเซลล์เพียงหนึ่งหรือสองเซลล์จะช่วยให้เวลาในการทำงานเพิ่มขึ้นตามลำดับ
breadbox


5
ถ้าช่วยได้ฉันมักจะส่งคำตอบกอล์ฟที่อยู่ข้างหลังผู้นำเพราะมันเป็นแนวทางที่แตกต่าง สิ่งหนึ่งที่ฉันชอบเกี่ยวกับเว็บไซต์นี้คือมันช่วยรักษาความหลากหลายของการตอบสนอง
breadbox

1
@SimplyBeautifulArt หนึ่งสามารถปรับปรุงได้โดยมีสัญลักษณ์คู่เป็นตัวเลข (ในกรณีที่คุณสามารถใช้ 15 จาก 16 แทน 3 จาก 4) แน่นอนว่าคุณต้องเจอกับปัญหามากมายกับบอร์ดขนาดเล็กในการลองใช้งาน
feersum

8

603: 25

ทดสอบออนไลน์

ฉันอ่านคำถามของ Manufactoria อีกครั้งในวันนี้และในทันทีก็มีความคิดที่จะทำให้กระบวนการช้าลงอย่างมาก: แทนที่จะมีเพียง 50 ค่าและเปลี่ยนสี 3 ครั้งโปรแกรมใหม่ทำเช่นนั้น แต่หลังจากนั้นมันลด จำนวนค่า 1 และผ่านการเปลี่ยนสีอีกครั้งจนกว่าจะมีเทปเปล่าที่โปรแกรมหยุด

คิวจะไม่เก็บค่ามากกว่า 50 ค่าในครั้งเดียวดังนั้นจึงไม่มีประโยชน์ในการพยายามที่จะใส่ค่าลงในเทปมากเกินไป - พวกมันเพิ่งถูกผลักออกไปทันที ก่อนหน้านี้สายพานมีจุดมุ่งหมายเพื่อเพิ่มเวลาในการวิ่ง ในความเป็นจริงมีการปรับลดลงเล็กน้อยเพื่อให้เกิดการเพิ่มขึ้นอย่างมากในเวลาทำงาน

ยังคงใกล้กับคำตอบของ breadboxแม้ว่า


น่าสนใจว่าโซลูชันของเรามีความคล้ายคลึงกันอย่างไร เราทั้งคู่เริ่มด้วยตัวคูณ 9x6 และเราวางสาขาและกลุ่ม x6 ไว้ในที่เดียวกัน! คุณมีความสง่างามกว่า - คุณใช้ทุกเซลล์และใช้เทปสะอาด
Igby Largeman

5

33:33

ทำสิ่งนี้มาระยะหนึ่ง ( ความผันผวนทำให้บาร์ค่อนข้างสูง) แต่เมื่อฉันไปถึง 33:33 ฉันคิดว่ามันเป็นเวลาที่จะหยุดพัก

กลยุทธ์นั้นค่อนข้างทื่อ: โดยทั่วไปเติมเทปด้วยสีหนึ่งสีจากนั้นอีกสีหนึ่งและอีกสีหนึ่งและพยายามที่จะสำรวจเซลล์จำนวนมากที่สุดเท่าที่จะเป็นไปได้ระหว่างการเขียนแต่ละครั้ง (หรือกลุ่มการเขียน)

ฉันแน่ใจว่ามีวิธีที่จะพบว่าเราสามารถไปได้ไกลกว่านี้อีก

บีเวอร์ยุ่ง

ลิงค์ระดับ


+1 ฉันจะเห็นสิ่งที่ฉันสามารถทำได้เพื่อเอาชนะมัน;) (แม้ว่าฉันจะไม่ไปไกลเกินไป)
ความผันผวน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.