Un nombre croissant lexicographiquement est un nombre entier dont les chiffres sont en ordre strictement croissant. Imprimez tous les nombres lexicographiquement croissants sous 10000.
Voici les lignes de la sortie attendue:
0
1
2
3
4
5
6
7
8
9
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
124
125
126
127
128
129
134
135
136
137
138
139
145
146
147
148
149
156
157
158
159
167
168
169
178
179
189
234
235
236
237
238
239
245
246
247
248
249
256
257
258
259
267
268
269
278
279
289
345
346
347
348
349
356
357
358
359
367
368
369
378
379
389
456
457
458
459
467
468
469
478
479
489
567
568
569
578
579
589
678
679
689
789
1234
1235
1236
1237
1238
1239
1245
1246
1247
1248
1249
1256
1257
1258
1259
1267
1268
1269
1278
1279
1289
1345
1346
1347
1348
1349
1356
1357
1358
1359
1367
1368
1369
1378
1379
1389
1456
1457
1458
1459
1467
1468
1469
1478
1479
1489
1567
1568
1569
1578
1579
1589
1678
1679
1689
1789
2345
2346
2347
2348
2349
2356
2357
2358
2359
2367
2368
2369
2378
2379
2389
2456
2457
2458
2459
2467
2468
2469
2478
2479
2489
2567
2568
2569
2578
2579
2589
2678
2679
2689
2789
3456
3457
3458
3459
3467
3468
3469
3478
3479
3489
3567
3568
3569
3578
3579
3589
3678
3679
3689
3789
4567
4568
4569
4578
4579
4589
4678
4679
4689
4789
5678
5679
5689
5789
6789
Ceci est un défi de golf de code! La réponse la plus courte gagne!
(PS à la recherche d'une solution python)
code-golf
number
sequence
kolmogorov-complexity
Varun Patro
la source
la source
[0,1,...]
, etc. ou devons-nous sortir chaque nombre sur une ligne séparée?Réponses:
Python 2 , 56 octets
Essayez-le en ligne!
Convertit chaque nombre comme
124
une expression1<2<4
et l'évalue pour vérifier si les chiffres sont triés,Un hoquet se produit pour les nombres à un chiffre donnant une expression qui est juste le nombre lui-même. Cela entraîne
0
une valeur Falsey même si elle doit être imprimée. Ce problème est résolu par une astuce suggérée par Erik le Outgolfer de faire**n
, ce qui donne une valeur truthy0**0
pourn=0
et n'affecte pas la valeur de la vérité autrement.la source
`
faire dans`n`
?repr()
fonction, pas lastr()
fonction. Ce ne sont pas toujours les mêmes. Voici un exemple.str()
équivalent.Python 2 , 55 octets
Essayez-le en ligne!
la source
Haskell , 50 octets
Essayez-le en ligne!
Génère une chaîne multiligne. Nous vérifions que le nombre
s
augmente en utilisants==scanl1(max.succ)s
, une variante du contrôle de tri habituels==scanl1 max s
qui garantit un tri strict en incrémentant chaque caractère numérique avant d'en prendre le maximum et le chiffre suivant.Ourous a enregistré un octet en utilisant
6^5
comme limite supérieure à la place d'un nombre à 4 chiffres.la source
Gelée , 7 octets
Essayez-le en ligne!
Comment ça marche
la source
0
est inclus ici, mais je ne connais pas Jelly. Ai-je raison de dire que le jeu de puissance de Jelly comprend le tableau vide qui est ensuite converti en0
"non décimal"?Japt
-R
,12118 octetsEssaye-le
* Ou, pour offrir une meilleure explication: la
ü
méthode trie un tableau et le divise en éléments égaux (par exemple,[8,4,8,4].ü() -> [[4,4],[8,8]]
) puis, dans ce qui semble être une bizarrerie étrange et, espérons-le, pas un bogue, laì
méthode, lors de la reconversion du tableau en un nombre, prend le premier élément de chaque tableau imbriqué, plutôt que d'aplatir d'abord le tableau, ce à quoi je m'attendais lorsque j'ai essayé cette astuce (par exemple,[[4,4],[8,8]].ì() -> 48
).la source
L²Ç¥ì ü ¬Ãð
ü
astuce que vous avez utilisée est géniale :-) @OliverR ,
6249 octetsEssayez-le en ligne!
Étant donné que l'
combn
itération s'effectue par son entrée dans l'ordre donné, il est facile de créer tous les entiers augmentant lexicographiquement, en les imprimant dans l'ordre.write
les imprime à chaquei
nombre de chiffres en lignes de largeuri
, répondant ainsi parfaitement à l'exigence de nouvelle ligne.la source
combn
!Perl 6 , 25 octets
-1 octet grâce à nwellnhof
Essayez-le en ligne!
.comb
produit une liste des chiffres de chaque numéro et[<]
effectue une réduction inférieure à cette liste, équivalente à: digit1 < digit2 <... < digitN .la source
[<](.comb)&&.say
enregistre un octet.Haskell,
5655 octetsEdit: -1 octet grâce à @Ourous
Essayez-le en ligne!
la source
PowerShell ,
4240 octetsEssayez-le en ligne!
Boucle de
0
à1e4
(c.- à -d10000
.). Retirez les objets dont|?{...}
le nombre sous forme de chaîne$_
est-eq
égal au nombre castt
oCharArray
, puissort
édité avec le-u
drapeau nique. En d'autres termes, seuls les nombres sont identiques à leurs chaînes triées et dédupliquées. Chacun d'eux est laissé sur le pipeline et la sortie est implicite.la source
Pyth , 10 octets
Essayez-le en ligne!
Comment ça marche
la source
J, 26 octets
Essayez-le en ligne!
explication
la source
Lisp commun ,
7472 octetsEssayez-le en ligne!
-2 octets merci à @Shaggy!
la source
05AB1E (hérité) , 8 octets
Essayez-le en ligne!
Fonctionne également dans la nouvelle version de 05AB1E mais est douloureusement lent pour une raison quelconque.
Comment?
la source
Perl 5 , 47 octets
Essayez-le en ligne!
Plus âgée:
52 octets
la source
Python 2 , 61 octets
Essayez-le en ligne!
la source
Python 2 ,
6461 octetsEssayez-le en ligne!
Obtient les caractères uniques de la représentation sous forme de chaîne de l'entier, les trie et compare le résultat au nombre d'origine.
la source
range(9999)
ou tout autre nombre compris entre 6790 et 9999. Nos solutions sont presque identiques BTW :)V , 41 octets
Essayez-le en ligne!
Hexdump:
la source
Fusain , 19 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
la source
Gelée ,
1398 octets5 octets enregistrés grâce à @Dennis
Essayez-le en ligne!
Explication
Génère tous les nombres lexicographiquement croissants en dessous de 10000 en prenant les chiffres [1 ... 9] et en trouvant toutes les combinaisons de longueur ≤ 4.
Gelée ,
11109 octetsUn octet enregistré grâce à @EriktheOutgolfer
Essayez-le en ligne!
Explication
Filtre à travers la plage, en conservant les nombres qui augmentent lexicographiquement.
la source
C # (Visual C # Interactive Compiler) ,
102101... 73 octets-12 et -4 merci @Dennis!
Essayez-le en ligne!
Chaque entier de 0 à 7k est testé en le convertissant d'abord en chaîne. En exploitant le fait que C # traite les chaînes comme des énumérables de caractères et LINQ, un agrégat est calculé pour chaque caractère énumérable comme suit:
:
qui est supérieur à9
Si le résultat est inférieur à
:
, alors le nombre a des chiffres lexicographiquement croissants.la source
6789
? C'est moins que cela7000
, vous n'avez donc pas besoin d'aller plus haut.Wolfram Language (Mathematica) , 36 octets
Après avoir écrit cela, il a été précisé que chaque numéro doit être sur une nouvelle ligne, donc +7 octets pour le
Print/@
.Cette méthode tire parti du fait que la
Subsets
fonction 1) ne reproduit aucun chiffre et 2) trie la sortie par taille et contenu définis.FromDigits
rassemble chaque liste de chiffres.-1 octet grâce à @ Mr.Xcoder
Essayez-le en ligne!
la source
Print/@FromDigits/@Range@9~Subsets~4
pour 36 octets.K (ngn / k) / K (oK) ,
323026 octetsSolution:
Essayez-le en ligne!
Explication:
la source
JavaScript REPL, 64 octets
Un peu de pub golf donc probablement loin d'être optimal.
Essayez-le en ligne
Oui, le faire sans IIFE serait plus court de quelques octets mais cela déclenche une erreur de débordement lors de l'appel, ce qui serait normalement bien car nous pouvons supposer une mémoire infinie aux fins du code golf mais, à mon avis, ne semble pas être dans l'esprit des défis KC.
la source
console.log
soit renommer votre soumission en JavaScript REPL .C (gcc) ,
978981 octetsMerci au plafond pour -8 octets.
Encore -8 grâce à Dennis
Essayez-le en ligne!
la source
Python 2 , 63 octets
Essayez-le en ligne!
la source
Stax , 8 octets
Exécuter et déboguer
la source
Nettoyer , 90 octets
Essayez-le en ligne!
la source
Rouge , 59 octets
Essayez-le en ligne!
la source
Gelée , 7 octets
Essayez-le en ligne!
Comment?
la source
MATLAB, 52 octets
la source