Wydrukuj / wydrukuj ten blok tekstu:
1234567890
2468013579
3691470258
4815926037
5049382716
6172839405
7306295184
8520741963
9753108642
0987654321
Dopuszczalne formaty obejmują:
- Końcowe znaki nowej linii / białe znaki
- Lista ciągów
- Lista list znaków
- Lista list liczb całkowitych
Jednak lista liczb całkowitych jest niedopuszczalna, ponieważ ostatni wiersz nie jest liczbą całkowitą.
To jest golf golfowy . Najkrótsza odpowiedź w bajtach wygrywa. Obowiązują standardowe luki .
code-golf
math
kolmogorov-complexity
Leaky Nun
źródło
źródło
Python 2 ,
4947 bajtówWypróbuj online!
źródło
Galareta , 7 bajtów
Wypróbuj online!
Wykorzystuje algorytm Martina.
źródło
MATL ,
1211 bajtówZaoszczędzony bajt dzięki Luisowi. Ciągle zapominam, że
&
jest to skrót do powielania i transponowania.Wypróbuj online!
Za pomocą algorytmu @ Martin:
x*y % 11 % 10
Wyjaśnienie:
Ten sam bytecount:
źródło
t!*
przez&*
APL (Dyalog) , 13 bajtów
Wypróbuj online!
Port mojej odpowiedzi Mathematica .
źródło
CJam (17 bajtów)
Demo online
źródło
Siatkówka , 59 bajtów
Liczba bajtów zakłada kodowanie ISO 8859-1.
Wypróbuj online!
Wyjaśnienie
Kolejna implementacja ...% 11% 10 algorytmu. Zabawne jest to, że wykonywanie wyrażeń regularnych polega na tym, że możemy zająć się oboma obliczeniami modulo naraz.
Zainicjuj ciąg do dziesięciu
1
sekund.Zastąp każdy z nich przecinkiem, jednym i przedrostkiem przed tym. Daje to
,1,11,...,1111111111
, tj. Jednoargumentowy zasięg.Teraz zamień każdy z elementów zakresu na cały ciąg znaków, a następnie na linię. To daje nam siatkę 10x10 liczb jednostkowych wskazujących bieżącą kolumnę.
Dopasuj każdy
1
i określ, który wiersz jest włączony, powtarzając grupę jeden razy. Zamień na1
tyle1
s. Mnoży to wartości w każdym wierszu przez indeks oparty na 1 wierszu.Teraz zróbmy mod 11, mod 10 w jednym kroku. Aby wykonać mod 11 , zwykle po prostu usuwamy wszystko
1{11}
z łańcucha, który ma pozostać z resztą. A potem usuwamy1{10}
. Ale jeśli po prostu usuniemy dziesięć1
s plus inne, jeśli to możliwe, zachłanność silnika regex zrobi dla nas mod 11 tak długo, jak to możliwe, a jeśli nie, to spróbuje przynajmniej mod 10 .Na koniec konwertujemy każdą liczbę na dziesiętną, zastępując ją długością.
źródło
05AB1E , 14 bajtów
Wypróbuj online!
Wykorzystuje algorytm Martina, jak zwykle.
źródło
Haskell, 43 bajty
źródło
JavaScript (ES6),
70 6456 bajtówZaoszczędź 4 bajty dzięki Shaggy i 8 bajtów dzięki Arnauld.
źródło
_=>[...a=Array(10)].map((_,x)=>[...a].map((_,y)=>(x+1)*++y%11%10))
. Zapisujesz mi 4 bajty, ja oszczędzam 4 bajty :)map()
i jeszcze 3 bajty, używając1e9+''
zamiastArray(10)
. To prowadzi do_=>[...1e9+''].map((_,x,a)=>a.map((_,y)=>-~x*++y%11%10))
.1e9
podstęp. Nie znałem tego. Myślałem o użyciu trzeciego argumentu, ale z jakiegoś powodu go nie użyłem.Japt ,
161211 bajtówOkazuje się, że to była moja 200 (nieodwołana) odpowiedź tutaj :)
Wygląda na to, że to ta sama formuła, którą zauważył Martin .
Przetestuj (
-R
flaga tylko do celów wizualizacji)Wyjaśnienie
źródło
-R
flagiJava 8, 84 bajtów
Używa tego samego algorytmu, co odpowiedź Mathematica @MartinEnder : 1-indeksowana
x*y%11%10
.Wyjaśnienie:
Wypróbuj tutaj.
źródło
Python 2 ,
5852 bajtów-6 bajtów dzięki offcialaimm.
Wykorzystuje algorytm Martina, którego nie rozumiem, skąd tak szybko go wymyślił. o0
Wypróbuj online!
źródło
r=range(1,11)
oszczędza 6 bajtówPyth, 13 bajtów
Wypróbuj tutaj
-1 dzięki KarlKastor .
Let's duuuuuuupe!
źródło
e
zamiast% T
R , 19 bajtów
Wypróbuj online!
Najmniej wyglądający „R” fragment kodu R, jaki kiedykolwiek napisałem. Wykorzystuje ten sam algorytm, co odpowiedź Martina Endera (i prawie wszystkie pozostałe odpowiedzi).
x %o% y
jest taki sam jakouter(x, y)
.źródło
Węgiel drzewny ,
30 2919 bajtówWypróbuj online!
Korzysta ze wzoru Martina .
źródło
»
s i chociaż możesz użyćω
zamiast tego””
, możesz zapisać całą wiązkę bajtów, używając⸿
tego, co wtedy się stanieFχ«FχI﹪﹪×⁺¹ι⁺¹κ¹¹χ⸿
. (Zanim się dowiem,⸿
zasugerowałbym,J⁰ι
co pozwoliłoby zaoszczędzić wiele bajtów.)⸿
Jest operatorem odwrotnym, co robi na końcu kodu bez argumentów? Czy to jest udokumentowane?⮌
jest operatorem odwrotnym,⸿
jestmove cursor to start of next line
znakiem (podobnie jak,¶
ale może być w osobnym ciągu).C (gcc) , 70 bajtów
Wypróbuj online!
źródło
QBIC , 17 bajtów
To oczywiście wykorzystuje Metodę Martina. To tłumaczy na ten kod QBasic .
Wyjaśnienie
źródło
C #, 81 bajtów
Ten sam algorytm jak większość innych odpowiedzi i zasadniczo port C # odpowiedzi Java @Kevins .
źródło
Siatkówka , 79 bajtów
Wypróbuj online!
źródło
GolfScript ,
3724 bajtówWypróbuj online!
-13 dzięki sprytnej sztuczce, którą zasugerował Martin Ender .
źródło
{
->;
,}
->`
), możesz przynajmniej upuścić pierwszy[
.{){\)*11%10%}+10,/n}10,/
/
. ;)int blk +
->{int space contents-of-blk}
.+
sztuczkę ... chociaż niecoC (gcc) , 59 bajtów
Wypróbuj online!
źródło
Retina ,
9385 bajtówWypróbuj online!
źródło
Pyke, 15 bajtów
Wypróbuj tutaj!
źródło
Pyke, 13 bajtów
Wypróbuj tutaj!
źródło
PHP , 54 bajty
Wypróbuj online!
PHP , 56 bajtów
Wypróbuj online!
źródło
()
.for(;<0>$y++||10>$x+=$y=print"\n";)echo($x+1)*$y%11%10;
for($x=1;11>++$y||11>$x+=$y=print"\n";)echo$x*$y%11%10;
J , 27 bajtów
Wypróbuj online!
Używa tej samej sztuczki, co w odpowiedzi Matematyki Martina Endera .
źródło
TECO, 45 bajtów
(Dość) prosta implementacja odpowiedzi Rod's Python.
Użycie wstawianych końców <ESC> i znaku kontrolnego dla polecenia ^ T pozwoliłoby na zapisanie innego
trzypięć bajtów, kosztem czytelności.Użycie formuły mod-11 / mod-10 Martina faktycznie wydłuża go do 43 bajtów przy użyciu elementów sterujących dla ^ A i ^ T, głównie dlatego, że TECO nie ma operatora mod.
Mod 11 jest wykonywany w sposób ciągły, zwiększając liczbę w qn o -11, gdy tylko przekroczy 10.
qn\r0a^T
Sekwencja wstawia liczbę do bufora edycyjnego jako cyfry dziesiętne, cofa się za ostatnią cyfrę, pobiera ją z bufora i wpisuje, zasadniczo robi mod-10.Spodziewałem się, że będzie krótszy. No cóż.
źródło