TÂCHE
affiche les entiers n, où 12 <= n <= 123456789
et toutes les paires de chiffres consécutifs dans n ont la même différence positive entre eux (par exemple 2468 mais pas 2469).
PAS D'ENTRÉE.
Production:
12
13
14
15
16
17
18
19
23
24
25
26
27
28
29
34
35
36
37
38
39
45
46
47
48
49
56
57
58
59
67
68
69
78
79
89
123
135
147
159
234
246
258
345
357
369
456
468
567
579
678
789
1234
1357
2345
2468
3456
3579
4567
5678
6789
12345
13579
23456
34567
45678
56789
123456
234567
345678
456789
1234567
2345678
3456789
12345678
23456789
123456789
Règles
- Des échappatoires standard s'appliquent.
- pas d'entrée
le code le plus court gagne.
Crédits anarchy golf
Réponses:
Gelée ,
1211 octetsEssayez-le en ligne!
Comment ça fonctionne
la source
ìà Find fastest route between two points using Dykstra's Algorithm
Python 2 , 81 octets
Essayez-le en ligne!
Ma solution de l'anarchy golf. L'idée est d'itérer sur tous les triplets possibles de longueur, de valeur de départ et de pas, ce qui donne des sorties triées. La triple est codée comme une valeur
r
de72
à647
, et les composants sont extraits en tant quek/72
,k/8%9
etk%8
. Un démarragek
suffisamment élevé évite la sortie de nombres à un chiffre.xsot a économisé deux octets en remplaçant le
range
par une chaîne de chiffres codée en dur'123456789'
.Cela a été écrit sous la contrainte d'une limite d'exécution de deux secondes. Une stratégie plus lente qui filtre les nombres plutôt que d'en générer peut être plus courte.
la source
1
à123456789
, forçant plutôt les réponses à trouver un moyen intelligent de générer les bons nombres dans le bon ordre (trié).C,
166152 octets6 octets enregistrés grâce à @KevinCruijssen!
8 octets économisés grâce à @JonathanFrech!
Essayez-le en ligne
La version entièrement formatée du code ci-dessus peut être vue ci-dessous.
la source
while(i<123456789)
être enwhile(i<=123456789)
fonction de la gamme de défis? En outre, vous pouvezp,l,d,i=11;main(){for(char s[10];i<=123456789;){sprintf(s,"%d",++i);p=0;for(l=strlen(s);--l>0;){d=s[l]-s[l-1];if(p<1)p=d;if(p^d|d<1)break;p=d;}if(l<1)puts(s);}}
i<1e9
.l<1
peut être joué au golf!l
, carl
n'atteint jamais une valeur négative.i<1e9
. Et!l
quand ça sonnel
toujours>=0
raisonnable pour CI suppose (je n'ai jamais programmé en C moi-même).Gelée ,
14, 13 octetsEssayez-le en ligne!
Un octet sauvé grâce à @MrXcoder!
C'est extrêmement inefficace, donc ça va s'arrêter sur TIO, mais si jamais ça se termine, ça produira la sortie correcte. Vous pouvez l'essayer avec de plus petits nombres ici: Essayez-le en ligne!
Explication:
la source
$
à la fin de votre lien d'assistance.DIµ>0ȦȧE¶Ç77#
05AB1E , 23 octets
Essayez-le en ligne!
Remplacez-le
•7=›ζ•
par 7000 pour le terminer sur TIO, ou appuyez simplement sur le bouton "Terminer" avant qu'il n'expire, ce qui entraîne l'impression des chiffres jusqu'à ce point.la source
žh
'0123456789'
,1357
par exemple, c'est aussi un nombre valide que vous devez sortir.•7=›ζ•
Mathematica, 79 octets
Essayez-le en ligne!avec un nombre inférieur car il est très lent
voici une autre approche qui construit tous les nombres en 1sec
Mathematica, 123 octets
Essayez-le en ligne! tous les nombres en une seconde
la source
Husk ,
1413 octetsImprime les numéros séparés par des sauts de ligne dans STDOUT. Essayez-le en ligne!
-1 octet en raison de l'inspiration de H.PWiz.
Explication
la source
Wolfram Language (Mathematica) , 76 octets
Essayez-le en ligne!
la source
APL (Dyalog) ,
3728 octetsEssayez-le en ligne! (avec une plage plus courte, en raison de la temporisation)
Comment?
x←11+⍳123456789
-11, 12... 1e9
enx
¨
- pour chaque⍎¨⍕⍵
- divisez en chiffres2-/
- obtenir la liste des différences∪
- obtenez des éléments uniques1=≢
- longueur == 1?x/⍨
- utilisez-le comme masque sur la gamme créée⍪
- et colonnela source
Husk , 14 octets
Essayez-le en ligne!
la source
≠
. : PI avait oublié que cela fonctionne aussi pour les personnagesLot,
210200 octetsAucune optimisation, donc très lent - prend environ 25 secondes jusqu'à 12345, donc pour la sortie complète, vous devrez attendre environ 3 jours.
la source
Java 8,
169168145 octetsPort de @Jacobinski C réponse (après l'avoir un peu joué au golf ).
-23 octets grâce à @Nevay .
Explication:
Essayez-le ici. (C'est un peu trop lent vers la fin, donc n'imprime pas le numéro final sur TIO. Il imprime le numéro final localement en environ 20 secondes, cependant.)
la source
v->{byte[]a;for(int i=9,p,l;++i<1e9;System.out.print(l<1?i+"\n":""))for(a=(i+"").getBytes(),p=0,l=a.length;--l>0&&p*(p^(p=a[l]-a[l-1]))<1&p>0;);}
break
manière ou d'une autre et l'ajouter à la vérification de la boucle, mais je ne l'aurais pas trouvé moi-même. ;) Merci!05AB1E , 14 octets
Essayez-le en ligne!
la source
12žhŸʒS¥D0›PsË&
, je ne peux pas le faire fonctionner localement. Pouvez-vous obtenir que cela s'exécute réellement?Ÿ
, ça marche très bienPython 2 ,
1039795 octets-2 octets grâce à @JonathanFrech
Essayez-le en ligne!
la source
`n`[1:]
.Python 2 ,
7675 octetsPrend environ 3 minutes localement.
Essayez-le en ligne! (modifié pour imprimer tous les numéros sauf le dernier)
la source
JavaScript (Firefox 30-57), 105 octets
Boucles sur des longueurs de 2 à 10 (x est l'index du dernier caractère et donc 1 de moins que la longueur), en commençant les chiffres de 1 à 9 et les pas de 1 à 9, puis les filtres sur le dernier chiffre étant inférieur à 10 et si génère donc le résultat en filtrant les chiffres de la chaîne de chiffres.
la source
Uncaught SyntaxError: Unexpected token for
Pyth , 21 octets
L'approche intelligente de Port of Dennis .
Essayez-le ici!
Pyth , 23 octets
Cela expire sur l'interpréteur en ligne, mais fonctionne si on lui donne suffisamment de temps et de mémoire.
Essayez-le en ligne avec un nombre inférieur .
la source
MATL ,
1716 octetsEssayez-le en ligne! avec
1e9
remplacé par1e3
afin qu'il n'expire pas dans le compilateur en ligne.la source
JavaScript (ES6), 121 octets
Pas aussi court que la réponse de Neil , mais je pensais que cela valait toujours la peine d'être publié.
Fonctionne en créant un ensemble de pouvoirs
'123456789'
où toutes les entrées non correspondantes sont tronquées et préfixées0
, en triant les résultats dans l'ordre numérique et en ne gardant que les 77 pertinentes.Démo
Afficher l'extrait de code
la source
C (gcc) , 106 octets
Essayez-le en ligne!
La version non golfée (raffinée):
la source
JavaScript (ES6),
109104 octetsFonctionne en générant tous les nombres possibles: boucle à travers chaque incrément de 8 à 1 (variable
i
), boucle à travers chaque chiffre de départ de 8 à 1 (variablej
), boucle à travers chaque chiffre entrej
et10-i
(variablek
) et génère une chaînet
en ajoutantk
au courantt
. À chaque étape,t
est ajouté au tableau de sortie.Essayez-le en ligne!
la source
Wolfram Language (Mathematica) , 71 octets
Essayez-le en ligne!
Rapide comme l'éclair en construisant plutôt qu'en sélectionnant la sortie.
la source
Java (OpenJDK 8) ,
228174170 170163 octetsEssayez-le en ligne!
la source
JavaScript (ES6), 145 octets
Une approche directe avec peu de magie.
L'exécution de l'extrait consommera beaucoup de mémoire ...
la source
PHP,
8584 octetsessayez-le en ligne .
le tri coûte 17 octets. Cette version imprime les résultats classés différemment:
la source