Лексикографически возрастающее число - это целое число, цифры которого расположены в строго возрастающем порядке. Выведите все лексикографически возрастающие числа до 10000.
Вот строки ожидаемого результата:
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
Это кодовый вызов для гольфа! Кратчайший ответ выигрывает!
(PS ищет решение Python)
code-golf
number
sequence
kolmogorov-complexity
Варун Патро
источник
источник
[0,1,...]
и т. Д. Или мы должны вывести каждое число в отдельной строке?Ответы:
Python 2 , 56 байт
Попробуйте онлайн!
Преобразует каждое число, как
124
в выражение,1<2<4
и оценивает его, чтобы проверить, отсортированы ли цифры,Сбой происходит для однозначных чисел, дающих выражение, которое просто является самим числом. Это приводит
0
к значению Falsey, даже если оно должно быть напечатано. Это фиксируется трюк , предложенный Эриком Outgolfer делать**n
, что дает truthy значение0**0
дляn=0
и не влияет на значение истинности иначе.источник
`
в`n`
?repr()
функция, а неstr()
функция. Они не всегда одинаковы. Вот пример.str()
эквивалентно.Python 2 , 55 байт
Попробуйте онлайн!
источник
Haskell , 50 байтов
Попробуйте онлайн!
Выводит многострочную строку. Мы проверяем, что число
s
увеличивается сs==scanl1(max.succ)s
помощью варианта обычной проверки сортировки,s==scanl1 max s
которая обеспечивает строгую сортировку, увеличивая каждый символ цифры перед тем, как взять максимум из него и следующую цифру.Ourous сохранил байт, используя
6^5
в качестве верхней границы вместо 4-значного числа.источник
Желе , 7 байт
Попробуйте онлайн!
Как это работает
источник
0
сюда включается, но я не знаю, Джелли. Правильно ли я понимаю, что блок питания Jelly включает в себя пустой массив, который затем преобразуется в0
"undecimaled"?Japt
-R
,12118 байтПопробуй это
* Или, чтобы предложить лучшее объяснение:
ü
метод сортирует массив и разбивает его на равные элементы (например,[8,4,8,4].ü() -> [[4,4],[8,8]]
), а затем, что кажется странным, и, надеюсь, не ошибкой,ì
метод, при преобразовании массива обратно в число, берет первый элемент каждого вложенного массива, а не сначала выравнивает массив, что я и ожидал, когда попробовал этот трюк (например,[[4,4],[8,8]].ì() -> 48
).источник
L²Ç¥ì ü ¬Ãð
ü
уловка , которую вы, ребята, использовали, гениальна :-) @OliverР ,
6249 байтПопробуйте онлайн!
Поскольку
combn
итерации по вводу в указанном порядке, легко создать все лексикографически увеличивающиеся целые числа, распечатывая их по порядку.write
печатает их каждыйi
-значный номер в строках шириныi
, аккуратно выполняя требование новой строки.источник
combn
!Perl 6 , 25 байт
-1 байт благодаря nwellnhof
Попробуйте онлайн!
.comb
создает список цифр каждого номера и[<]
делает меньше, чем сокращение в этом списке, эквивалентно: digit1 < digit2 <... < digitN .источник
[<](.comb)&&.say
сохраняет байт.Haskell,
5655 байтРедактировать: -1 байт благодаря @Ourous
Попробуйте онлайн!
источник
PowerShell ,
4240 байтПопробуйте онлайн!
Цикл от
0
до1e4
(т. Е.10000
). Вытащите те объекты, где|?{...}
число в виде строки$_
равно-eq
числу, приведенномуt
oCharArra,y
а затем редактируйтеsort
с помощью-u
флагом nique. Другими словами, только числа, которые совпадают с их отсортированными и дедуплицированными строками. Каждый из них остается на конвейере и вывод неявный.источник
Pyth , 10 байт
Попробуйте онлайн!
Как это работает
источник
J, 26 байт
Попробуйте онлайн!
объяснение
источник
Common Lisp ,
7472 байтаПопробуйте онлайн!
-2 байта спасибо @Shaggy!
источник
05AB1E (наследие) , 8 байтов
Попробуйте онлайн!
Работает и в новой версии 05AB1E, но почему-то мучительно медленно.
Как?
источник
Perl 5 , 47 байт
Попробуйте онлайн!
Старшая:
52 байта
источник
Python 2 , 61 байт
Попробуйте онлайн!
источник
Python 2 ,
6461 байтПопробуйте онлайн!
Получает уникальные символы строкового представления целого числа, сортирует их и сравнивает результат с исходным числом.
источник
range(9999)
любой другой номер от 6790 до 9999. Кстати, наши решения практически идентичны :)V , 41 байт
Попробуйте онлайн!
HexDump:
источник
Древесный уголь , 19 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
источник
Желе ,
1398 байтСохранено 5 байтов благодаря @Dennis
Попробуйте онлайн!
объяснение
Генерирует все лексикографически увеличивающиеся числа ниже 10000, беря цифры [1 ... 9] и находя все комбинации длины ≤ 4.
Желе ,
11109 байтСохраненный байт благодаря @EriktheOutgolfer
Попробуйте онлайн!
объяснение
Фильтрует через диапазон, сохраняя лексикографически увеличивающиеся числа.
источник
C # (интерактивный компилятор Visual C #) ,
102101... 73 байта-12 и -4 спасибо @ Денис!
Попробуйте онлайн!
Каждое целое число от 0 до 7к проверяется сначала преобразованием его в строку. Используя тот факт, что C # обрабатывает строки как перечисляемые символы, а LINQ, для каждого перечисляемого символа вычисляется агрегат следующим образом:
:
который больше, чем9
Если результат этого меньше чем
:
, то число имеет лексикографически увеличивающиеся цифры.источник
6789
? Это меньше, чем7000
, поэтому вам не нужно идти выше.Wolfram Language (Mathematica) , 36 байт
После того, как я написал это, выяснилось, что каждое число должно быть в новой строке, поэтому +7 байтов для
Print/@
.Этот метод использует тот факт, что
Subsets
функция 1) не копирует никаких цифр и 2) сортирует выходные данные по заданному размеру и заданному содержимому.FromDigits
собирает каждый список цифр.-1 байт благодаря @ Mr.Xcoder
Попробуйте онлайн!
источник
Print/@FromDigits/@Range@9~Subsets~4
для 36 байтов.K (нгн / к) / K (ок) ,
323026 байтРешение:
Попробуйте онлайн!
Объяснение:
источник
JavaScript REPL, 64 байта
Немного паб-гольф, так что, вероятно, далеко от оптимального.
Попробуйте онлайн
Да, выполнение без IIFE было бы на несколько байтов короче, но это вызывает ошибку переполнения при вызове, что, как правило, было бы хорошо, поскольку мы можем предполагать бесконечную память для целей гольф-кода, но, мне кажется, это не так. в духе проблем КЦ.
источник
console.log
либо перемаркировать свое представление как REPL JavaScript .C (gcc) ,
978981 байтБлагодаря потолку кошки за -8 байт.
Еще -8 благодаря Денису
Попробуйте онлайн!
источник
Python 2 , 63 байта
Попробуйте онлайн!
источник
Stax , 8 байт
Запустите и отладьте его
источник
Чисто , 90 байт
Попробуйте онлайн!
источник
Красный , 59 байт
Попробуйте онлайн!
источник
Желе , 7 байт
Попробуйте онлайн!
Как?
источник
MATLAB, 52 байта
источник