Wcześniej auto-dialery telefoniczne używały kart dziurkowanych z jedną kolumną dla każdej cyfry wybieranego numeru. Kolumny miały siedem rzędów. Pierwsze trzy rzędy reprezentowały odpowiednio liczby (1,2,3), (4,5,6) i (7,8,9). Ostatnie trzy rzędy obróciły to ustawienie o 90 °: (1,4,7), (2,5,8) i (3,6,9). Środkowy rząd został użyty jako 0. Każda cyfra 1-9 miałaby dwa otwory - jeden w pierwszych trzech rzędach, a drugi w dolnych trzech rzędach. Zero wybiłoby tylko środkowy rząd. Wizualizujmy dziurkowaną kolumnę dla liczby 6 (nie .
jest dziurkowana, x
jest dziurkowana, przewodnik po lewej ilustruje kodowanie):
123 .
456 x
789 .
0 .
147 .
258 .
369 x
Szukamy, które wiersze zawierają numer, który próbujemy wybrać. Dla 6 jest to drugi rząd i dziewiąty rząd. Te dwa rzędy są wykrawane, pozostałe pięć rzędów nie jest wykrawanych. Oto wybite wzory dla wszystkich cyfr 0–9:
0 1 2 3 4 5 6 7 8 9
123 . x x x . . . . . .
456 . . . . x x x . . .
789 . . . . . . . x x x
0 x . . . . . . . . .
147 . x . . x . . x . .
258 . . x . . x . . x .
369 . . . x . . x . . x
Twoim celem jest (napisanie programu lub funkcji) wybicie dla mnie tych kart.
Dane wejściowe: liczba w dowolnym rozsądnym formacie (ciąg, liczba całkowita, lista liczb całkowitych i c.), Nieprzekraczająca 9999999999999.
Dane wyjściowe: Siatka perforowanych kolumn odpowiadająca wprowadzonej liczbie. Nie potrzebujesz nagłówków ani dodatkowych odstępów pokazanych powyżej, tylko same kolumny perforowane. Początkowe / końcowe znaki nowej linii są w porządku, podobnie jak spacje między wierszami / kolumnami o ile są spójne . Mówiąc o, pod warunkiem, że są one spójne, możesz użyć dowolnego znaku (bez białych znaków) do wybijania znaków i dowolnego innego znaku do bez perforacji (chociaż powinno to być oczywiste, określ, jakich znaków używasz).
To jest golf golfowy, więc wygrywa najkrótszy kod. Standardowe luki są niedozwolone.
Przypadki testowe (wszystkie są używane w .
przypadku bez x
dziurkowania , do dziurkowania):
In: 911
Out: .xx
...
x..
...
.xx
...
x..
In: 8675309
Out: ....x..
.x.x...
x.x...x
.....x.
..x....
x..x...
.x..x.x
In: 5553226
Out: ...xxx.
xxx...x
.......
.......
.......
xxx.xx.
...x..x
Odpowiedzi:
Galaretka , 13 bajtów
Wypróbuj online!
1
= przebity,0
= nie przebityźródło
Pyth, 25 bajtów
Używa
0
do dziurkowania i"
do dziurkowania.Wypróbuj tutaj
Wyjaśnienie
źródło
JavaScript (ES6),
6054 bajtówPobiera dane wejściowe jako tablicę liczb całkowitych. Zwraca macierz binarną, gdzie 0 = nieprzebity / 1 = wybity .
Wypróbuj online!
źródło
05AB1E ,
1615 bajtówUżywa 0 i 1 .
Wypróbuj online!
Wyjaśnienie
źródło
SOGL V0.12 , 23 bajty
Wypróbuj tutaj!
Kompresja.
źródło
Python 2 , 84 bajtów
Wypróbuj online!
0/1
jest używany w przypadku braku dziurkowania / dziurkowania.źródło
Python 3 ,
8480 bajtówWypróbuj online!
źródło
C (clang) ,
108107 bajtówWypróbuj online!
Pobiera numer wejściowy jako ciąg. Drukuje dane wyjściowe w
.
iX
jak w przykładach.Kredyty
-1 bajty dzięki @ ASCII-only
źródło
putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))c-=48
zamiastc-=48,putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))
J ,
3120 bajtów-11 bajtów dzięki FrownyFrog!
Wypróbuj online!
J , 31 bajtów
Wypróbuj online!
Pobiera dane wejściowe jako listę cyfr
0 - nie dziurkowany, 1 - dziurkowany
Wyjaśnienie:
źródło
Płótno ,
2725 bajtówWypróbuj tutaj!
źródło
Węgiel drzewny , 28 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wykorzystuje 0/1, ale może obsługiwać dowolne znaki kosztem 1 bajtu: Wypróbuj online! . Wyjaśnienie:
źródło
Perl 5
-F
, 52 bajtyWypróbuj online!
Używa
1
do dziurkowania i0
do dziurkowania.źródło