Powinieneś napisać program o długości 100 bajtów (BF).
Jedna postać usunie z niej w każdy możliwy sposób powstałe 100 nowych programów (o długości 99 bajtów). Np dla programu ++.>.
The 5 podprogramy są +.>.
, +.>.
, ++>.
, ++..
i ++.>
.
Twój wynik będzie liczbą unikalnych wyników wygenerowanych przez 100 programów. Wyższy wynik jest lepszy.
Detale
- Twoje programy zostaną zakończone po wypisaniu pierwszego znaku.
- Niepoprawne lub nie kończące się programy i programy generujące puste wyjścia nie są wliczane do wyniku.
- Komórki BF są 8-bitowe zwijające. (255 + 1 = 0, 0-1 = 255)
- Twój program nie ma danych wejściowych. Jeśli użyjesz
,
w kodzie, ustawia on bieżącą komórkę na0
. - Po lewej stronie pozycji początkowej nie ma komórek. Np.
<.
Jest niepoprawny, ale.<
ważny, ponieważ wykonanie jest zakończone o godzinie.
. Taśma jest niezwiązana w innym kierunku. - Programy z niesymetrycznymi nawiasami (
[
i]
) są nieprawidłowe. - Twój oryginalny program może mieć mniej niż 100 bajtów, ponieważ łatwo jest go rozszerzyć do 100 bajtów bez zmiany wyniku.
- Twój oryginalny program nie musi być prawidłowym kodem BF.
Możesz użyć tego programu python3 (link ideone), aby określić wynik swojej odpowiedzi. (W przypadku długo działających programów może być konieczne zmodyfikowanie maxstep
zmiennej).
Przykład
(Dla uproszczenia program ten jest krótszy niż 100 bajtów.)
Solution: ++,+[-]+><.-,-.
Score: 3
Explanation:
Subprogram => Output
+,+[-]+><.-,-. => 1
+,+[-]+><.-,-. => 1
+++[-]+><.-,-. => 1
++,[-]+><.-,-. => 1
++,+-]+><.-,-. => None
++,+[]+><.-,-. => None
++,+[-+><.-,-. => None
++,+[-]><.-,-. => 0
++,+[-]+<.-,-. => None
++,+[-]+>.-,-. => 0
++,+[-]+><-,-. => 255
++,+[-]+><.,-. => 1
++,+[-]+><.--. => 1
++,+[-]+><.-,. => 1
++,+[-]+><.-,- => 1
Unique outputs are [0, 1, 255]
Score is 3 for ++,+[-]+><.-,-. (length = 15)
W przypadku remisu zwycięzcą zostaje ten z krótszym kodem. (Twój program może być krótszy niż 100 bajtów, jak podano w sekcji Szczegóły.) Jeśli kody są równej długości, zwycięzcą jest wcześniejszy plakat.
Bonusowa łamigłówka: czy bez pogrubionego ograniczenia można znaleźć program z wynikiem 100?