Sortez / imprimez ce bloc de texte:
1234567890
2468013579
3691470258
4815926037
5049382716
6172839405
7306295184
8520741963
9753108642
0987654321
Les formats acceptables comprennent:
- Traits de fin de ligne / espaces blancs
- Liste des chaînes
- Liste des listes de personnages
- Liste des listes d'entiers
Cependant, la liste des nombres entiers n'est pas acceptable car la dernière ligne n'est pas un nombre entier.
C'est du code-golf . La réponse la plus courte en octets l'emporte. Des échappatoires standard s'appliquent.
code-golf
math
kolmogorov-complexity
Leaky Nun
la source
la source
Python 2 ,
4947 octetsEssayez-le en ligne!
la source
Gelée , 7 octets
Essayez-le en ligne!
Utilise l'algorithme de Martin.
la source
MATL ,
1211 octetsEnregistré un octet grâce à Luis. J'oublie toujours que
&
c'est un raccourci pour la duplication et la transposition.Essayez-le en ligne!
En utilisant l'algorithme de @ Martin:
x*y % 11 % 10
Explication:
Même bytecount:
la source
t!*
par&*
APL (Dyalog) , 13 octets
Essayez-le en ligne!
Un portage de ma réponse Mathematica .
la source
CJam (17 octets)
Démo en ligne
la source
Rétine , 59 octets
Le nombre d'octets suppose un codage ISO 8859-1.
Essayez-le en ligne!
Explication
Une autre implémentation de l' algorithme ...% 11% 10 . La partie amusante de le faire avec une expression régulière est que nous pouvons prendre en charge les deux calculs modulo à la fois.
Initialisez la chaîne à dix
1
s.Remplacez chacun de ceux-ci par une virgule, un et le préfixe devant celui-ci. Cela donne
,1,11,...,1111111111
, c'est-à-dire une plage unaire.Remplacez maintenant chacun des éléments de la plage par la chaîne entière suivie d'un saut de ligne. Cela nous donne une grille de 10x10 de nombres unaires indiquant la colonne actuelle.
Faites correspondre chacun d'eux
1
et déterminez sur quelle ligne il se trouve en répétant le groupe plusieurs fois. Remplacez le1
par autant de1
s. Cela multiplie les valeurs de chaque ligne par l'index basé sur 1 de la ligne.Maintenant, faisons le mod 11, le mod 10 en une seule étape. Pour faire le mod 11 , nous retirons normalement tout
1{11}
de la chaîne pour laisser les restes. Et puis nous supprimerions1{10}
après cela. Mais si nous supprimons simplement dix1
s plus un autre si possible, la gourmandise du moteur regex fera le mod 11 pour nous aussi longtemps que possible, et sinon, il essaiera au moins le mod 10 .Enfin, nous convertissons simplement chaque nombre en décimal en le remplaçant par sa longueur.
la source
05AB1E , 14 octets
Essayez-le en ligne!
Utilise l'algorithme de Martin, comme d'habitude.
la source
Haskell, 43 octets
la source
Javascript (ES6),
70 6456 octets4 octets enregistrés grâce à Shaggy et 8 octets grâce à Arnauld.
la source
_=>[...a=Array(10)].map((_,x)=>[...a].map((_,y)=>(x+1)*++y%11%10))
. Vous me sauvez 4 octets, je vous sauve 4 octets :)map()
et 3 autres octets en utilisant1e9+''
au lieu deArray(10)
. Cela mène à_=>[...1e9+''].map((_,x,a)=>a.map((_,y)=>-~x*++y%11%10))
.1e9
astuce. Je ne le connaissais pas. J'ai pensé à utiliser le troisième argument, mais pour une raison quelconque, je ne l'ai pas utilisé.Japt ,
161211 octetsIl s'avère que c'était ma réponse 200 (non supprimée) ici :)
On dirait que c'est la même formule que Martin a repérée .
Testez-le (
-R
indicateur à des fins de visualisation uniquement)Explication
la source
-R
drapeau à la placeJava 8, 84 octets
Utilise le même algorithme que la réponse Mathematica de @MartinEnder : 1 indexé
x*y%11%10
.Explication:
Essayez-le ici.
la source
Python 2 ,
5852 octets-6 octets grâce à offcialaimm.
Utilise l'algorithme de Martin que je ne comprends pas comment il est arrivé si vite. o0
Essayez-le en ligne!
la source
r=range(1,11)
sauve 6 octetsPyth, 13 octets
Essayez-le ici
-1 merci à KarlKastor .
Disons duuuuuuupe!
la source
e
au lieu de% T
R , 19 octets
Essayez-le en ligne!
Le bit de code R le moins "R" que j'aie jamais écrit. Utilise le même algorithme que la réponse de Martin Ender (et presque toutes les autres réponses également).
x %o% y
est le même queouter(x, y)
.la source
Fusain ,
30 2919 octetsEssayez-le en ligne!
Utilise la formule de Martin .
la source
»
s de fin et pendant que vous pouvez utiliser à laω
place de””
vous pouvez enregistrer tout un tas d'octets en utilisant⸿
comme cela devient alorsFχ«FχI﹪﹪×⁺¹ι⁺¹κ¹¹χ⸿
. (Avant que je sache,⸿
j'aurais suggéréJ⁰ι
ce qui aurait encore permis d'économiser un certain nombre d'octets.)⸿
est l'opérateur inverse, que fait-il à la fin de votre code sans arguments? Est-ce documenté?⮌
est l'opérateur inverse,⸿
est lemove cursor to start of next line
caractère (comme¶
mais peut être dans une chaîne distincte).C (gcc) , 70 octets
Essayez-le en ligne!
la source
QBIC , 17 octets
Ceci, bien sûr, utilise la méthode de Martin. Cela se traduit par ce code QBasic .
Explication
la source
C #, 81 octets
Même algorithme que la plupart des autres réponses et essentiellement le port C # de la réponse Java @Kevins .
la source
Rétine , 79 octets
Essayez-le en ligne!
la source
GolfScript ,
3724 octetsEssayez-le en ligne!
-13 grâce à une astuce astucieuse suggérée par Martin Ender .
la source
{
->;
,}
->`
), vous pouvez au moins supprimer le premier[
.{){\)*11%10%}+10,/n}10,/
/
. ;)int blk +
->{int space contents-of-blk}
.+
astuce ... même si j'ai un peu modifié votre codeC (gcc) , 59 octets
Essayez-le en ligne!
la source
Rétine ,
9385 octetsEssayez-le en ligne!
la source
Pyke, 15 octets
Essayez-le ici!
la source
Pyke, 13 octets
Essayez-le ici!
la source
PHP , 54 octets
Essayez-le en ligne!
PHP , 56 octets
Essayez-le en ligne!
la source
()
.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 octets
Essayez-le en ligne!
Utilise la même astuce que dans la réponse Mathematica de Martin Ender .
la source
TECO, 45 octets
Une implémentation (assez) simple de la réponse Python de Rod.
L'utilisation d'inserts terminés par <ESC> et d'un caractère de contrôle pour la commande ^ T économiserait encore
troiscinq octets, au détriment de la lisibilité.L'utilisation de la formule mod-11 / mod-10 de Martin l'allonge en fait à 43 octets en utilisant des contrôles pour ^ A et ^ T, principalement parce que TECO n'a pas d'opérateur mod.
Le module 11 se fait de manière continue en incrémentant le nombre dans qn de -11 chaque fois qu'il dépasse 10. Le
qn\r0a^T
séquence insère le nombre dans le tampon d'édition sous forme de chiffres décimaux, inverse le dernier chiffre, le récupère du tampon et le tape, faisant essentiellement mod-10.Je m'attendais à ce qu'il soit plus court. Tant pis.
la source