Napisz program Manufaktury , który zaakceptuje pustą taśmę wejściową. Ale nie rób tego szybko! Mam na myśli, że napisz program szybko, ale nie pozwól mu działać szybko. Im wolniejszy program, tym lepiej, o ile w końcu się zakończy. Przykładowy program poniżej zajmuje 3:51 („całkowity czas” zgłoszony przez symulator).
Twój program zaczyna się od pustej taśmy. Musi trochę rysować, ale ostatecznie osiąga kwadrat wyjściowy. Możesz zostawić dane na taśmie, jeśli chcesz. Zwycięża najwolniejszy program na płycie Manufaktury 7x7!
Twój prawy klawisz strzałki jest twoim przyjacielem, przyspiesza symulator.
Punkty bonusowe za awarię symulatora!
manufactoria
busy-beaver
Keith Randall
źródło
źródło
Odpowiedzi:
~ 10 23 iteracji
~ 10 15 iteracji~ 10 8 iteracjihttp://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_sl Największą_ możliwą_akceptację_machine;:; 7; 3; 0 ;
Maszyna jest w zasadzie licznikiem przebiegu przebiegającym na podstawie trzeciej, używając symboli czerwonego, niebieskiego i żółtego, odpowiednio dla cyfr 0, 1 i 2. Zielony symbol służy do oznaczenia końca numeru. Na początku taśma jest inicjowana za pomocą 49 czerwonych symboli. Odbywa się to za pomocą części w trzech górnych rzędach maszyny. Cztery dolne rzędy obsługują zadanie zwiększania liczby w pętli. Podczas każdej iteracji dwie komórki rozgałęzione po lewej stronie sprawdzają, jak zastosować przyrost do bieżącej liczby, a następnie komórki rozgałęzione po prawej stronie kopiują pozostałe, niezmienione cyfry.
Wcześniej próbowałem oszacować czas działania maszyny, jeśli pozwolono jej uruchomić się do końca, ale na tym poziomie bardziej sensowne jest po prostu przechodzenie przez liczbę iteracji. Z grubsza mówiąc, ukończenie jednej iteracji zajmuje około minuty - ale nawet jeśli zajęłoby to sekundę, to skróciłoby czas działania tylko o jeden rząd wielkości.
źródło
603: 25
Test online
Ponownie przeczytałem dzisiaj pytania z Manufaktury i nagle wpadłem na pomysł, który radykalnie spowolniłby ten proces: zamiast tylko 50 wartości i trzykrotnej zmiany kolorów, nowy program to robi, ale potem zmniejsza liczba wartości o 1 i ponownie przechodzi przez zmianę kolorów, aż do pojawienia się pustej taśmy, w której program się zatrzymuje.
W kolejce nie będzie przechowywanych więcej niż 50 wartości naraz, więc nie ma sensu wrzucać zbyt wielu wartości na taśmę - są one po prostu natychmiast wypychane. Tak jak poprzednio, przenośniki taśmowe mają na celu maksymalizację czasu potrzebnego na uruchomienie rzeczy. W rzeczywistości było minimalne ulepszenie, aby osiągnąć ogromny wzrost czasu działania.
Nadal jednak nigdzie w pobliżu odpowiedzi na breadboksa .
źródło
33:33
Pracowałem nad tym przez dość długi czas ( zmienność ustawiła poprzeczkę dość wysoko), ale kiedy trafiłem 33:33, pomyślałem, że to dobry moment, żeby się zatrzymać.
Strategia jest dość tępa: w zasadzie wypełnij taśmę jednym kolorem, potem drugim, potem drugim i zawsze staraj się przechodzić jak najwięcej komórek między każdym zapisem (lub grupą zapisów).
Jestem pewien, że istnieją sposoby, dzięki którym możemy pójść o krok dalej.
Łącze poziomu
źródło