Angka yang meningkat secara leksikografis adalah bilangan bulat yang angkanya benar-benar meningkat. Cetak semua angka yang meningkat secara leksikografis di bawah 10.000.
Berikut adalah garis-garis output yang diharapkan:
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
Ini adalah tantangan kode golf! Jawaban terpendek menang!
(PS mencari solusi python)
code-golf
number
sequence
kolmogorov-complexity
Varun Patro
sumber
sumber
[0,1,...]
, dll. Atau haruskah kita mengeluarkan setiap angka pada baris yang berbeda?Jawaban:
Python 2 , 56 byte
Cobalah online!
Mengonversi setiap angka seperti
124
ekspresi1<2<4
dan mengevaluasinya untuk memeriksa apakah digit diurutkan,Cegukan terjadi untuk nomor satu digit yang memberikan ekspresi bahwa hanya nomor itu sendiri. Ini menyebabkan
0
untuk mengevaluasi ke nilai Falsey meskipun harus dicetak. Ini diperbaiki oleh trik yang disarankan oleh Erik yang Outgolfer lakukan**n
, yang memberikan nilai kebenaran0**0
untukn=0
dan tidak mempengaruhi nilai kebenaran sebaliknya.sumber
`
dilakukan di dalam`n`
?repr()
fungsi, bukanstr()
fungsi. Mereka tidak selalu sama. Ini sebuah contoh.str()
setara.Python 2 , 55 byte
Cobalah online!
sumber
Haskell , 50 byte
Cobalah online!
Menghasilkan string multiline. Kami memeriksa bahwa angka
s
bertambah dengan menggunakans==scanl1(max.succ)s
, varian dari pemeriksaan pengurutan yang biasas==scanl1 max s
yang memastikan pengurutan yang ketat dengan menambah setiap karakter digit sebelum mengambil maksimumnya dan digit berikutnya.Ourous menyimpan byte dengan menggunakan
6^5
sebagai batas atas untuk nomor 4 digit.sumber
Jelly , 7 byte
Cobalah online!
Bagaimana itu bekerja
sumber
0
disertakan di sini tapi saya tidak tahu Jelly. Apakah saya benar bahwa Jelly's powerset menyertakan larik kosong yang kemudian akan dikonversi0
ketika "tidak ditentukan"?Japt
-R
,12118 byteMenguji
* Atau, untuk menawarkan penjelasan yang lebih baik:
ü
metode mengurutkan array dan membaginya menjadi elemen yang sama (misalnya,[8,4,8,4].ü() -> [[4,4],[8,8]]
) dan kemudian, dalam apa yang tampaknya menjadi kekhasan aneh dan mudah-mudahan bukan bug,ì
metode, ketika mengubah array kembali ke sebuah angka, mengambil elemen pertama dari setiap array bersarang, daripada pertama-tama meratakan array, itulah yang saya harapkan ketika saya mencoba trik ini (misalnya,[[4,4],[8,8]].ì() -> 48
).sumber
L²Ç¥ì ü ¬Ãð
ü
trik yang Anda gunakan adalah jenius :-) @OliverR ,
6249 byteCobalah online!
Karena
combn
iterasi melalui inputnya dalam urutan yang diberikan, mudah untuk membuat semua bilangan bulat yang meningkat secara leksikografis, mencetaknya secara berurutan.write
mencetaknya masing-masingi
-digit dalam garis lebari
, dengan rapi memenuhi persyaratan baris baru juga.sumber
combn
!Perl 6 , 25 byte
-1 byte terima kasih kepada nwellnhof
Cobalah online!
.comb
menghasilkan daftar digit masing-masing angka, dan[<]
melakukan pengurangan kurang dari pada daftar itu, setara dengan: digit1 < digit2 <... < digitN .sumber
[<](.comb)&&.say
menghemat satu byte.Haskell,
5655 byteSunting: -1 byte berkat @Ourous
Cobalah online!
sumber
PowerShell ,
4240 byteCobalah online!
Loop dari
0
ke1e4
(yaitu,10000
). Tarik keluar benda-benda di mana|?{...}
jumlah sebagai string$_
adalah-eq
ual dengan jumlah pemaint
oCharArray
dan kemudiansort
ed dengan-u
bendera nique. Dengan kata lain, hanya angka yang sama dengan string yang diurutkan dan dideduplikasi. Masing-masing dibiarkan di jalur pipa dan hasilnya tersirat.sumber
Pyth , 10 byte
Cobalah online!
Bagaimana itu bekerja
sumber
J, 26 byte
Cobalah online!
penjelasan
sumber
Common Lisp ,
7472 byteCobalah online!
-2 byte terima kasih kepada @Shaggy!
sumber
05AB1E (lawas) , 8 byte
Cobalah online!
Bekerja di versi baru 05AB1E juga tetapi sangat lambat untuk beberapa alasan.
Bagaimana?
sumber
Perl 5 , 47 byte
Cobalah online!
Lebih tua:
52 byte
sumber
Python 2 , 61 byte
Cobalah online!
sumber
Python 2 ,
6461 byteCobalah online!
Mendapat karakter unik dari representasi string integer, mengurutkannya, dan membandingkan hasilnya dengan angka asli.
sumber
range(9999)
atau nomor lain antara 6790 dan 9999. Solusi kami hampir identik BTW :)V , 41 byte
Cobalah online!
Hexdump:
sumber
Arang , 19 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
sumber
Jelly ,
1398 byteDisimpan 5 byte berkat @Dennis
Cobalah online!
Penjelasan
Menghasilkan semua angka yang meningkat secara leksikografis di bawah 10.000 dengan mengambil digit [1 ... 9] dan menemukan semua kombinasi panjang ≤ 4.
Jelly ,
11109 byteMenyimpan satu byte berkat @EriktheOutgolfer
Cobalah online!
Penjelasan
Memfilter rentang, menjaga angka yang meningkat secara leksikografis.
sumber
C # (Visual C # Interactive Compiler) ,
102101... 73 byte-12 dan -4 terima kasih @Dennis!
Cobalah online!
Setiap integer dari 0 hingga 7k diuji dengan terlebih dahulu mengubahnya menjadi string. Memanfaatkan fakta bahwa C # memperlakukan string sebagai enumerables karakter dan LINQ, agregat dihitung untuk setiap karakter yang dapat dihitung sebagai berikut:
:
yang lebih besar dari9
Jika hasil ini kurang dari
:
, maka angka tersebut memiliki angka leksikografis yang meningkat.sumber
6789
? Ini kurang dari7000
, jadi Anda tidak harus naik lebih tinggi.Bahasa Wolfram (Mathematica) , 36 byte
Setelah saya menulis ini, diklarifikasi bahwa setiap angka harus berada pada baris baru, jadi +7 byte untuk
Print/@
.Metode ini mengambil keuntungan dari kenyataan bahwa
Subsets
fungsi 1) tidak mereplikasi digit apa pun dan 2) mengurutkan output dengan mengatur ukuran dan mengatur konten.FromDigits
merakit setiap daftar digit.-1 byte terima kasih kepada @ Mr.Xcoder
Cobalah online!
sumber
Print/@FromDigits/@Range@9~Subsets~4
selama 36 byte.K (ngn / k) / K (oK) ,
323026 byteLarutan:
Cobalah online!
Penjelasan:
sumber
JavaScript REPL, 64 byte
Sedikit pub golf jadi mungkin jauh dari optimal.
Cobalah online
Ya, melakukannya tanpa IIFE akan menjadi beberapa byte lebih pendek tetapi itu melempar kesalahan meluap ketika dipanggil, yang biasanya akan baik-baik saja karena kita dapat mengasumsikan memori tak terbatas untuk keperluan kode golf tetapi, bagi saya, tampaknya tidak menjadi dalam semangat tantangan KC.
sumber
console.log
atau menandai ulang kiriman Anda sebagai JavaScript REPL .C (gcc) ,
978981 byteBerkat ceilingcat untuk -8 byte.
Terima kasih -8 yang lain untuk Dennis
Cobalah online!
sumber
Python 2 , 63 byte
Cobalah online!
sumber
Stax , 8 byte
Jalankan dan debug itu
sumber
Bersihkan , 90 byte
Cobalah online!
sumber
Merah , 59 byte
Cobalah online!
sumber
Jelly , 7 byte
Cobalah online!
Bagaimana?
sumber
MATLAB, 52 byte
sumber