Wyzwanie jest po prostu; wyprowadza następujące sześć tablic liczb całkowitych 2D:
[[ 1, 11, 21, 31, 41, 51],
[ 3, 13, 23, 33, 43, 53],
[ 5, 15, 25, 35, 45, 55],
[ 7, 17, 27, 37, 47, 57],
[ 9, 19, 29, 39, 49, 59]]
[[ 2, 11, 22, 31, 42, 51],
[ 3, 14, 23, 34, 43, 54],
[ 6, 15, 26, 35, 46, 55],
[ 7, 18, 27, 38, 47, 58],
[10, 19, 30, 39, 50, 59]]
[[ 4, 13, 22, 31, 44, 53],
[ 5, 14, 23, 36, 45, 54],
[ 6, 15, 28, 37, 46, 55],
[ 7, 20, 29, 38, 47, 60],
[12, 21, 30, 39, 52]]
[[ 8, 13, 26, 31, 44, 57],
[ 9, 14, 27, 40, 45, 58],
[10, 15, 28, 41, 46, 59],
[11, 24, 29, 42, 47, 60],
[12, 25, 30, 43, 56]]
[[16, 21, 26, 31, 52, 57],
[17, 22, 27, 48, 53, 58],
[18, 23, 28, 49, 54, 59],
[19, 24, 29, 50, 55, 60],
[20, 25, 30, 51, 56]]
[[32, 37, 42, 47, 52, 57],
[33, 38, 43, 48, 53, 58],
[34, 39, 44, 49, 54, 59],
[35, 40, 45, 50, 55, 60],
[36, 41, 46, 51, 56]]
Co to są tablice liczb całkowitych 2D? Są to liczby używane w magicznej sztuczce z kartami zawierającymi te liczby:
Magiczna sztuczka prosi kogoś, aby pomyślał o liczbie z zakresu [1, 60], i daje temu, kto wykonuje magiczną sztuczkę, wszystkie karty, które zawierają ten numer. Osoba wykonująca magiczną sztuczkę może następnie zsumować lewe górne numery (wszystkie o sile 2) podanych kart, aby uzyskać liczbę, o której myślał. Dodatkowe wyjaśnienie, dlaczego to działa, można znaleźć tutaj.
Zasady konkursu:
- Możesz wyprowadzić sześć tablic liczb całkowitych 2D w dowolnym rozsądnym formacie. Może być drukowany z ogranicznikami; może być tablicą liczb całkowitych 3D zawierającą sześć tablic liczb całkowitych 2D; może być ciągiem-listą linii; itp.
- Możesz wypełnić dolną prawą pozycję ostatnich czterech kart ujemną wartością w zakresie
[-60, -1]
lub znaku,'*'
zamiast je pomijać, aby tablice liczb całkowitych 2D były prostokątnymi macierzami (nie, nie możesz ich wypełnić0
ani nie -integer jaknull
/undefined
jako alternatywa, z wyjątkiem tego,*
że gwiazdka jest również używana w rzeczywistych kartach). - Kolejność liczb w macierzach jest obowiązkowa. Chociaż nie ma to znaczenia dla fizycznej sztuczki magicznej, to wyzwanie widzę głównie jako matrycę - złożoność kolmogorowa , stąd ograniczenie zamówienia.
Kolejność samych macierzy na liście wyników może być w dowolnej kolejności, ponieważ z lewej górnej karty jasno jest, która macierz jest.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
code-golf
number
kolmogorov-complexity
matrix
Kevin Cruijssen
źródło
źródło
n
pojawia się nak
karcie; gdzie moje wyzwanie jest Wyzwanie KC do[ascii-art]
wyzwaniem przy ścisłych regułach wyjściowych (MD5), w których moje są bardzo elastyczne (a wiersze / kolumny są zamieniane, a zasięg jest[1,60]
zamiast[1,63]
; dość niewielkie różnice, ale nadal).Odpowiedzi:
MATL ,
1211 bajtów-1 bajt dzięki samemu mistrzowi :)
Wyjaśnienie:
Wypróbuj online!
źródło
Perl 6 ,
6346 bajtówWypróbuj online!
Dane wyjściowe w postaci tablic 2D na wielu liniach, w razie potrzeby ostatnia tablica każdego z nich zostaje odcięta.
źródło
Python 2 , 76 bajtów
Wypróbuj online!
Metoda polega na utworzeniu listy wszystkich możliwych liczb,
r(61)
a następnie zmniejszeniu jej do listy numerów dla kartyi&2**k
.Następnie, stosując podział na listy, ta lista liczb 1D jest przestawiana na prawidłowy rozmiar karty 6x5
[card nums][j::5]for j in r(5)
.Następnie ten generator jest po prostu powtarzany dla 6 kart
for k in r(6)
.Chociaż nie mogłem znaleźć rozwiązań mniejszych niż 76 bajtów, oto dwa inne, które również mają 76 bajtów:
Wypróbuj online!
Ten następny jest inspirowany przez Jonathana Allana .
Wypróbuj online!
Wszelkie uwagi są mile widziane.
źródło
Węgiel drzewny , 26 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Próbowałem obliczać wpisy bezpośrednio, ale było to już 27 bajtów, zanim dostosowałem się do wartości
*
w prawym dolnym rogu. Wyjście każdego wiersza połączone spacjami i pustą linią między kartami. Wyjaśnienie:źródło
*
dla zabawy po tym, jak zobaczyłem gwiazdy na rzeczywistych kartach. Zastanawiałem się, czy będą używane jakieś języki, ale cieszę się, że przynajmniej jeden z nich to zrobił. :) Niezła odpowiedź!*
jest co najmniej tak krótki, jak wszystko inne.05AB1E , 16 bajtów
Wypróbuj online!
Wyjaśnienie
05AB1E , 17 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Łuska , 13 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Python 2 ,
82807874 bajtyWypróbuj online!
-4 bajty, dzięki Jonathan Allan
źródło
iter
kluczowe jest tutaj zbędne, ponieważ generator równie dobrze wykona zadanie .Japt , 14 bajtów
Spróbuj
źródło
JavaScript (ES6),
9088 bajtówWypróbuj online!
Skomentował
źródło
Python 2 , 73 bajty
Inspiracja zaczerpnięta zarówno z TFeld, jak i The Matt .
Wypróbuj online!
źródło
C (gcc) , 95 bajtów
Wypróbuj online!
Zwraca macierze jako trójwymiarową tablicę int w o.
Ostatnie 4 macierze mają -1 jako ostatnią wartość.
Zaoszczędzono 2 bajty dzięki Kevinowi Cruijssenowi.
Zaoszczędź
78 bajtów dzięki Arnauldowi.źródło
o[i][4][5]=-1;for(j=k=0;
na,for(o[i][4][5]=-1,j=k=0;
aby można było usunąć nawiasy. Dobra odpowiedź btw, +1 ode mnie.#include
aby pokazać, że działa bez niegoCJam (18 bajtów)
Demo online . Jest to pełny program, który wyświetla wyjście na standardowe wyjście.
Sekcja
źródło
Galaretka , 13 bajtów
Niladyczny link, który daje listę (6) list list liczb całkowitych. (Wyprowadza użycie domyślnej opcji braku
*
wypełniacza lub wypełnienia ujemnego).Wypróbuj online!
W jaki sposób?
Wiele 15 bez uświadomienia sobie sztuczki „minimalnej długości przy podziale na pięć”:
... i próbując znaleźć krótszego, dostałem kolejne 13, nie potrzebując żadnej sztuczki:
źródło
Wolfram Language (Mathematica) , 88 bajtów
źródło
Transpose@Partition[#~Append~-1,5]&/@Last@Reap[Do[Sow[k,k~NumberExpand~2],{k,60}],Except@0]
~
sztuczki w jeszcze jednym miejscu i zastąpiłem zmiennąk
przezNull
. Przepraszamy, nie ma czasu na dodanie linku tio.Wolfram Language (Mathematica) , 99 bajtów
Wypróbuj online!
źródło
Transpose@
zamiastTranspose[...]
; wypełnianie do 30 wpisów przed partycjonowaniem; za pomocą,Table[...,{k,6}]
aby uniknąć potrzebyk=#
.Transpose@
działa po wprowadzeniu się doPadRight
środkaPartition
. Innym komentarzem jest to, że pytanie nie wydaje się""
uwzględniać symbolu zastępczego; możesz go zastąpić-1
nie tracąc żadnego bajtu.Galaretka , 13 bajtów
Wypróbuj online!
Luźno oparty na odpowiedzi MATL flawr . Łącze niladyczne, które wyświetla listę list zgodnie z wymaganiami.
źródło
R , 73 bajty
Nie jestem do końca pewien, czy spełniłem wymóg kolejności, ponieważ R domyślnie wypełnia macierze według kolumny, więc kolejność tak, aby pojawiała się fizycznie na kartach, jest taka sama, jak sposób przydzielania macierzy w R.
Wypróbuj online!
źródło
T-SQL, (
11681139 bajtów)Chciałem tylko wiedzieć, że mogę to zrobić.
Wersja zoptymalizowana
Demo online
Wypróbuj online!
Pełna wersja - z notatkami jako komentarzami SQL
Voila!
Uwaga 1: Część logiki dotyczy renderowania nawiasów kwadratowych i przecinków.
Uwaga 2: Nowsze wersje SQLServer mają bardziej kompaktowe podejście do tworzenia list rozdzielanych przecinkami. (Zostało to utworzone na SQL Server 2016.)
Uwaga 3: Tablice dla danej karty nie są sortowane (co jest zgodne ze specyfikacją). Liczby w tablicy są poprawnie posortowane. W takim przypadku każda „karta” pytania renderuje tablice w osobnym wierszu wyników.
Skróty do tablic na sztywno?
Tak.
Bajcie mnie.
źródło
C # (interaktywny kompilator Visual C #) , 112 bajtów
Wypróbuj online!
źródło
Czerwony ,
108107 bajtówWypróbuj online!
źródło
APL + WIN,
6562 bajtówWypróbuj online! Dzięki uprzejmości Dyalog Classic
źródło
MATLAB, 155 bajtów
Może to być krótsze niż wiele wierszy, ale chciałem to zrobić w jednym wierszu kodu.
źródło
05AB1E , 14 bajtów
Wypróbuj online!
źródło
žO
zamiast po prostu6L
? Wiem, że nie używasz ich na mapie, ale jestem ciekawy, dlaczegoaeiouy
stworzyłeś listę z 6 wartościami. xD Ładna odpowiedź, btw!6L
,6и
,5Ý
,5°
, lub9!
.тœ
,₅œ
,₁œ
, również praca, to są całkiem fajne zbyt (:₆b
też by działał;)