W wybranym języku programowania napisz 95 programów, z których każdy wyprowadza inny z 95 drukowanych znaków ASCII, przy czym znak ten nie występuje nigdzie w programie .
Na przykład, jeśli Twoim językiem był Python , twoim programem, który wypisuje znak, P
może być
print(chr(80))
ponieważ P
ma kod ASCII 80. Ten program jest prawidłowy, ponieważ P
nigdy nie pojawia się w kodzie źródłowym. Jednak w przypadku programu, który wyświetla małe litery p
, coś podobnego
print(chr(112))
byłby nieważny, ponieważ gdy to robi odcisk p
, p
jest obecny w kodzie. Poprawnym programem może być
exec(chr(112)+'rint(chr(112))')
który drukuje, p
ale nie zawiera p
.
Twoim celem jest, aby każdy z 95 programów był jak najkrótszy. Twój wynik to suma długości znaków wszystkich twoich programów.
Jeśli z jakiegoś powodu nie możesz napisać poprawnych programów dla niektórych znaków, możesz oznaczyć te znaki jako „Nie programowałem” lub DNP i całkowicie dla nich pominąć programy. W ten sposób języki ścisłe pod względem składni będą mogły konkurować.
Zwycięską odpowiedzią jest odpowiedź, która ma najniższy wynik z zestawu odpowiedzi, które mają najmniej DNP.
Zasady
Kod źródłowy wszystkich twoich programów może zawierać tylko drukowalne ASCII oraz tabulatory i znaki nowej linii, z których wszystkie są liczone jako jeden znak. (Ponieważ w innym kodowaniu łatwo byłoby pominąć znaki, które nie istnieją!)
- Uwaga: ta reguła wydaje się konieczna, ale istnieje wiele języków z różnymi kodowaniami i jestem pewien, że fajnie byłoby znaleźć na nie odpowiedzi. Dlatego możesz złamać tę zasadę , możesz użyć dowolnych postaci, ale wtedy twoja odpowiedź staje się niekonkurencyjna , nie może wygrać.
Programy muszą być rzeczywistymi, pełnymi programami , zgodnie ze standardowymi konwencjami Twojego języka. Funkcje i fragmenty REPL są niedozwolone.
Wyjście każdego programu powinno przejść do standardowego wyjścia lub do akceptowanej przez Twój język alternatywy.
Programy nie powinny monitować ani wymagać wprowadzania danych. (Jeśli monitowanie o wpisanie jest nieodłączne dla twojego języka, to jest ok.)
Programy powinny być deterministyczne, skończone w czasie wykonywania i niezależne. np. nie powinno mieć znaczenia, czy jeden jest uruchomiony w folderze innym niż inne programy.
Wyjście programu powinno być dokładnym drukowalnym znakiem ASCII, któremu odpowiada, opcjonalnie po nim pojedynczy znak nowej linii, nic więcej, nic więcej.
Pamiętaj, aby w odpowiedzi podać informacje o wszystkich 95 (idealnie) programach, a także wynik i wszelkie DNP. Nie trzeba do listy wszystkich programów, które następują prosty wzór w stylu „ , ...”, ale upewnij się, że jesteś pewien, że wszystko będzie działać i że wynik jest dodawany poprawnie.print(chr(80))
print(chr(81))
print(chr(82))
Dla porównania, oto 95 ASCII do wydrukowania, które twoje programy muszą wydrukować:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
0