Biorąc pod uwagę 95 znaków do wydrukowania w ASCII plus znak nowej linii, podziel go na dwie równe, 48 grup znaków (zwane dalej grupą A i grupą B). Utwórz własne mapowanie jeden do jednego (masz całkowitą dyskrecję) między dwiema grupami. Innymi słowy, A
może mapować na a
i odwrotnie, ale A
może również mapować na >
i odwrotnie, jeśli tego potrzebujesz w swoim programie.
Po podzieleniu ASCII na dwie grupy, napisz dwa programy i / lub funkcje, używając odpowiednio tylko znaków w każdej grupie. Innymi słowy, napisz jeden program / funkcję, która używa tylko znaków z grupy A, i inny program / funkcję, która używa tylko znaków z grupy B.
Programy te muszą mieć możliwość odebrania jednego znaku jako danych wejściowych. Program napisany ze znakami z grupy A powinien wypisać / zwrócić ten sam znak, jeśli wprowadzony znak był grupą A, a odwzorowany znak grupy A, jeśli otrzymał znak grupy B; program grupy A powinien zawsze wyświetlać znak grupy A. Podobnie, program grupy B powinien wypisywać ten sam znak, jeśli jest to znak grupy B, a odwzorowany znak grupy B, jeśli wejściem jest znak grupy A.
To może nie być tak jasne, więc oto przykład. Jeśli przyjmiesz, że wszystkie duże litery znajdują się w grupie A, a wszystkie małe litery znajdują się w grupie B, a wybrałeś, że twoje odwzorowanie jeden na jeden dla tych liter jest od jednego do drugiego, to: oto kilka przykładowe wejścia / wyjścia:
Program A:
Input Output
A A
D D
a A
q Q
Program B:
Input Output
A a
D d
a a
q q
Inne zasady:
- Te dwa programy nie muszą być w tym samym języku.
- Nie muszą to być oba programy ani obie funkcje; jeden może być programem, drugi funkcją, w porządku.
- Nie muszą pracować w ten sam sposób, być podobnej długości, czy coś takiego; muszą po prostu spełniać pozostałe powyższe zasady.
- Tak, tylko jeden z twoich programów może używać znaku nowej linii i tylko jeden może używać spacji (może to być ten sam lub inny program).
- Nie musisz używać wszystkich 48 znaków w każdym programie.
Standardowe luki są normalnie zakazane. Wszystkie programy muszą być samodzielne, bez plików zawierających wybrane mapowanie.
Kryteria punktowe: golf golfowy . W szczególności suma bajtów tekstu dwóch programów.
Proszę zamieścić swoją odpowiedź w ten sposób:
Język - # bajtów + Język - # bajtów = # bajtów
Jednoznaczny opis twojego mapowania. Jeśli jest to skomplikowane, użyj takiej tabeli:
ABCDEFGHIJKLMNOPQRSTUVWXYZ (etc.) zyxwvutsrpqonmlkjihgfedcba (etc.)
Możesz też to wyjaśnić (pierwsze 48 map do ostatnich 48 w sekwencji), a następnie normalną odpowiedź.
+
i >
, a drugi używający -
i <
. Następnie musisz spróbować wygenerować brakujące operatory, takie jak a ,
lub .
w programie, który nie może ich użyć.