Liczba leksykograficznie rosnąca jest liczbą całkowitą, której cyfry są w ściśle rosnącej kolejności. Wydrukuj wszystkie rosnące leksykograficznie liczby poniżej 10000.
Oto wiersze oczekiwanego wyniku:
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
To wyzwanie dla golfa! Najkrótsza odpowiedź wygrywa!
(PS szuka rozwiązania w języku Python)
code-golf
number
sequence
kolmogorov-complexity
Varun Patro
źródło
źródło
[0,1,...]
itp., Czy też musimy wypisywać każdą liczbę w osobnym wierszu?Odpowiedzi:
Python 2 , 56 bajtów
Wypróbuj online!
Konwertuje każdą liczbę jak
124
na wyrażenie1<2<4
i ocenia je, aby sprawdzić, czy cyfry są posortowane,Czkawka występuje w przypadku liczb jednocyfrowych, co daje wyrażenie, które jest samą liczbą. Powoduje
0
to oszacowanie wartości Falsey, nawet jeśli powinna zostać wydrukowana. To jest ustalana przez trick sugerowanym przez Eryka Outgolfer robić**n
, co daje wartość truthy0**0
zan=0
i nie ma wpływu na wartość logiczną inaczej.źródło
`
robi`n`
?repr()
funkcja, a niestr()
funkcja. Nie zawsze są takie same. Oto przykład.str()
równoważne.Python 2 , 55 bajtów
Wypróbuj online!
źródło
Haskell , 50 bajtów
Wypróbuj online!
Wysyła ciąg multilinii. Sprawdzamy, czy liczba
s
rośnies==scanl1(max.succ)s
, wariant zwykłego sprawdzania sortowania,s==scanl1 max s
który zapewnia ścisłe sortowanie, zwiększając każdy znak cyfry przed pobraniem jej maksimum i następnej cyfry.Ourous uratował bajt, używając
6^5
jako górnej granicy zamiast 4-cyfrowej liczby.źródło
Galaretka , 7 bajtów
Wypróbuj online!
Jak to działa
źródło
0
się tu włączyć, ale nie znam Jelly. Czy mam rację, że zestaw zasilający Jelly zawiera pustą tablicę, która następnie jest konwertowana na0
„nieokreśloną”?Japt
-R
,12118 bajtówSprawdź to
* Lub, aby zaoferować lepsze wyjaśnienie:
ü
metoda sortuje tablicę i dzieli ją na równe elementy (np.[8,4,8,4].ü() -> [[4,4],[8,8]]
), A następnie, w czymś, co wydaje się dziwnym dziwactwem i mam nadzieję, że nie jest błędem,ì
metoda, przy konwersji tablicy z powrotem na liczba, bierze pierwszy element z każdej zagnieżdżonej tablicy, zamiast spłaszczać tablicę, czego się spodziewałem po wypróbowaniu tej sztuczki (np[[4,4],[8,8]].ì() -> 48
.).źródło
L²Ç¥ì ü ¬Ãð
ü
sztuczka, której użyliście, jest genialna :-) @OliverR ,
6249 bajtówWypróbuj online!
Ponieważ
combn
iteruje po danych wejściowych w podanej kolejności, łatwo jest utworzyć wszystkie rosnące leksykograficznie liczby całkowite, drukując je w kolejności.write
wypisuje każdąi
cyfrę cyfr w liniach szerokościi
, starannie spełniając również wymagania nowej linii.źródło
combn
!Perl 6 , 25 bajtów
-1 bajt dzięki nwellnhof
Wypróbuj online!
.comb
tworzy listę cyfr każdego numeru, a[<]
nie mniej niż redukcja na tej liście, co odpowiada: digit1 < digit2 <... < digitN .źródło
[<](.comb)&&.say
zapisuje bajt.Haskell,
5655 bajtówEdycja: -1 bajt dzięki @Ourous
Wypróbuj online!
źródło
PowerShell ,
4240 bajtówWypróbuj online!
Pętla od
0
do1e4
(tj10000
.). Wyciągnij te obiekty, gdzie|?{...}
numer jako ciąg$_
jest-eq
seksualnego na numer odlewut
oCharArray
a następniesort
ed z-u
nique flagi. Innymi słowy, tylko liczby, które są takie same jak ich posortowane i deduplikowane ciągi. Każdy z nich pozostaje w potoku, a dane wyjściowe są niejawne.źródło
Pyth , 10 bajtów
Wypróbuj online!
Jak to działa
źródło
J, 26 bajtów
Wypróbuj online!
wyjaśnienie
źródło
Common Lisp ,
7472 bajtyWypróbuj online!
-2 bajty dzięki @Shaggy!
źródło
05AB1E (starsza wersja) , 8 bajtów
Wypróbuj online!
Działa również w nowej wersji 05AB1E, ale z jakiegoś powodu jest boleśnie powolny.
W jaki sposób?
źródło
Perl 5 , 47 bajtów
Wypróbuj online!
Starsze:
52 bajty
źródło
Python 2 , 61 bajtów
Wypróbuj online!
źródło
Python 2 ,
6461 bajtówWypróbuj online!
Pobiera unikalne znaki reprezentujące ciąg liczb całkowitych, sortuje je i porównuje wynik z liczbą oryginalną.
źródło
range(9999)
dowolnego innego numeru od 6790 do 9999. Nasze rozwiązania są prawie identyczne BTW :)V , 41 bajtów
Wypróbuj online!
Hexdump:
źródło
Węgiel drzewny , 19 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
źródło
Galaretka ,
1398 bajtówZaoszczędź 5 bajtów dzięki @Dennis
Wypróbuj online!
Wyjaśnienie
Generuje wszystkie liczby rosnące leksykograficznie poniżej 10000, biorąc cyfry [1 ... 9] i znajdując wszystkie kombinacje długości ≤ 4.
Galaretka ,
11109 bajtówZapisano bajt dzięki @EriktheOutgolfer
Wypróbuj online!
Wyjaśnienie
Filtruje przez zakres, utrzymując liczby, które rosną leksykograficznie.
źródło
C # (interaktywny kompilator Visual C #) ,
102101... 73 bajty-12 i -4 dzięki @Dennis!
Wypróbuj online!
Każda liczba całkowita od 0 do 7k testowana przez konwersję najpierw na ciąg. Wykorzystując fakt, że C # traktuje ciągi znaków jako wyliczalne znaki i LINQ, agregacja jest obliczana dla każdego wyliczalnego znaku w następujący sposób:
:
większą niż9
Jeśli wynik tego jest mniejszy niż
:
, liczba ma leksykograficznie rosnące cyfry.źródło
6789
? To mniej niż7000
, więc nie musisz iść wyżej.Wolfram Language (Mathematica) , 36 bajtów
Po tym, jak to napisałem, wyjaśniono, że każda liczba musi znajdować się w nowej linii, więc +7 bajtów dla
Print/@
.Ta metoda wykorzystuje fakt, że
Subsets
funkcja 1) nie powiela żadnych cyfr, a 2) sortuje dane wyjściowe według ustawionego rozmiaru i ustawionej zawartości.FromDigits
zestawia każdą listę cyfr.-1 bajt dzięki @ Mr.Xcoder
Wypróbuj online!
źródło
Print/@FromDigits/@Range@9~Subsets~4
przez 36 bajtów.K (ngn / k) / K (oK) ,
323026 bajtówRozwiązanie:
Wypróbuj online!
Wyjaśnienie:
źródło
JavaScript REPL, 64 bajty
Trochę golfa w pubie jak na razie dalekie od optymalnego.
Wypróbuj online
Tak, zrobienie tego bez IIFE byłoby kilka bajtów krótsze, ale wywołuje to błąd przepełnienia po wywołaniu, co normalnie byłoby w porządku, ponieważ możemy założyć nieskończoną pamięć dla celów golfa, ale moim zdaniem nie wydaje się w duchu wyzwań KC.
źródło
console.log
lub ponownie oznaczyć zgłoszenie jako JavaScript REPL .C (gcc) ,
978981 bajtówDzięki pułapowi cat na 8 bajtów.
Kolejne -8 dzięki Dennisowi
Wypróbuj online!
źródło
Python 2 , 63 bajty
Wypróbuj online!
źródło
Stax , 8 bajtów
Uruchom i debuguj
źródło
Czysty , 90 bajtów
Wypróbuj online!
źródło
Czerwony , 59 bajtów
Wypróbuj online!
źródło
Galaretka , 7 bajtów
Wypróbuj online!
W jaki sposób?
źródło
MATLAB, 52 bajty
źródło