Berikut urutan yang sepele yang tidak ada dalam Ensiklopedia Online Urutan Bilangan Bulat .
Mulailah dengan urutan kosong kemudian tentukan setiap istilah sebagai jumlah karakter yang diperlukan untuk menulis, dalam bahasa Inggris, semua digit dari urutan sejauh ini tanpa spasi. *
Untuk referensi jumlah karakter dari semua (basis sepuluh) digit dalam bahasa Inggris adalah:
zero one two three four five six seven eight nine
4 3 3 5 4 4 3 5 5 4
(Yang merupakan awal dari A52360 dan A5589 .)
Ini membuat entri pertama karena ada nol digit hadir dalam urutan kosong.
Ini membuat entri kedua karena dibutuhkan empat karakter untuk menulis "nol", satu-satunya digit yang ada sejauh ini.
Ini membuat entri ketiga karena dibutuhkan empat karakter lagi untuk menulis "empat" untuk total delapan untuk menulis "zerofour".
Ini membuat entri keempat karena dibutuhkan lima karakter lagi untuk menulis "delapan" untuk total tiga belas untuk menulis "zerofoureight".
Ini membuat entri kelima karena dibutuhkan delapan karakter lagi untuk menulis "onethree" dengan total dua puluh satu untuk menulis "zerofoureightonethree".
...dan seterusnya. Berikut adalah 100 entri pertama:
0, 4, 8, 13, 21, 27, 35, 44, 52, 59, 67, 75, 84, 93, 102, 112, 121, 130, 142, 152, 162, 171, 182, 193, 205, 216, 225, 235, 247, 259, 270, 282, 293, 305, 318, 331, 344, 357, 371, 384, 398, 412, 422, 432, 444, 456, 467, 479, 492, 503, 516, 526, 536, 548, 561, 571, 583, 597, 610, 620, 630, 642, 652, 662, 671, 682, 693, 705, 718, 731, 744, 757, 771, 784, 798, 812, 823, 836, 849, 862, 873, 888, 903, 916, 926, 936, 948, 961, 971, 983, 997, 1010, 1024, 1038, 1055, 1070, 1086, 1101, 1114, 1127
* Kita dapat mendefinisikannya untuk bahasa lain dan / atau pangkalan lain atau dengan spasi tentu saja
Tantangan
Diberikan output, dalam sesedikit mungkin byte kode, salah satu dari:
- syarat pertama dari urutan (harus bekerja untuk bilangan bulat non-negatif)
- Nilai (harus bekerja untuk bilangan bulat non-negatif)
- The th jangka urutan (harus bekerja untuk bilangan bulat positif - yaitu nilai )
Ini adalah kode-golf sehingga jawaban tersingkat dalam byte menang untuk setiap bahasa, dan jawaban tersingkat dalam byte menang. Jangan biarkan bahasa golf menghentikan Anda dari memasukkan bahasa favorit Anda baik itu yang praktis maupun yang esoteris!
sumber
1
harus output[0]
dan0
harus output[]
atau 2)0
harus output[0]
(seperti pada jawaban saya sebelumnya)?Jawaban:
Perl 6 , 45 byte
Cobalah online!
Tidak perlu moduloing mewah ketika Anda bisa mendapatkan nama digit secara langsung! Blok kode anonim yang mengembalikan nilai ke-n dari urutan, atau Anda bisa meneruskan dalam kisaran untuk mendapatkan daftar nilai
Penjelasan:
sumber
»
adalah satu byte, kan? Juga,[+]
mungkin lebih manis dan memberi petunjuk bagaimana operasi biner dapat menjadi reduksi tetapisum
juga tiga byte dan sesuai dengan sisa solusi yang mungkin bukan yang terpendek tapi pasti adalah imo golf paling elegan .»
adalah dua byte sehingga dapat dipertukarkan.say '»'.encode('latin1').bytes
menampilkan1
. :)JavaScript (ES6),
69686158 byteMengembalikana(n) .
Cobalah online!
Bagaimana?
Digitd dikonversi ke sejumlah n huruf dengan:
Karena angka dipecah menjadi karakter digit, kita dapat memprosesd×100+10 hanya dengan menambahkan 10 (sebagai penggabungan string).
sumber
Stax ,
1413 byteJalankan dan debug itu
Wawasan utama di sini adalah angka yang
d
membutuhkan((4 - 2 * d) // 3) % 3 + 3
ejaan huruf. (Itu pembagian integer python, dan modulus non-negatif gaya python)sumber
Pip , 21 byte
Penjelasan
sumber
large constant to the power of pi
dan terkesan monumental. (Ini masih mengesankan, tetapi interpretasi awal saya hanya .. lebih)Bahasa Wolfram (Mathematica) , 57 byte
Cobalah online!
Tr@StringLength@IntegerName@IntegerDigits@#&
daftar digit dari#
, mengonversikan masing-masing ke nama bahasa Inggris, menghitung panjangnya, dan menjumlahkan hasilnya. Banyak hal yang termasuk daftar, sangat menarik. Maka kita hanya menerapkan definisi iteratif.TIO mengeluh bahwa itu tidak memiliki koneksi Internet, tetapi saya tidak yakin mengapa, karena bagaimanapun mencari jawaban yang tepat. Mungkin sedang memeriksa pembaruan untuk nama bilangan bulat?
Nest
NestList
sumber
Bersihkan , 82 byte
Cobalah online!
sumber
05AB1E ,
1514 byteCobalah online!
Penjelasan
sumber
APL (Dyalog Unicode) ,
2928 byteCobalah online!
Dfn. Cetakanf( i n p u t )
Terima kasih kepada teman-teman @The APL Orchard untuk membantu yang satu ini:
@ ngn untuk 2 byte; @ H.PWiz selama
34 byte.Sekarang menggunakan rumus @ rekursif.
Bagaimana:
sumber
Python 2 , 61 byte
Cobalah online!
Menggunakan pemetaan jumlah digit rekursif .
Python 2 , 63 byte
Cobalah online!
Versi fungsi rekursif. Dibutuhkan waktu yang eksponensial untuk dijalankan karena memiliki dua panggilan rekursif
f(n-1)
.sumber
+3
dan membatasi ke operator aritmatika (tidak ada bitwise) dan angka <= 4, saya menemukan solusi ini tetapi tidak ada yang lebih pendek atau bahkan panjang yang sama kecuali yang setara.Python 2 , 71 byte
Cobalah online!
sumber
f=lambda n,k=0:n and f(n-1,k+sum(632179420>>3*int(d)&7for d in`k`))or k
adalah jumlah yang sama tetapi menghindari mengeluarkan daftar terlampir.MathGolf , 17 byte
Cobalah online!
Ini menggunakan metode Arnauld . Menghasilkan elemen ke-n dari urutan .. Jika string kosong tidak apa-apa
a(0)
, maka kita bisa menghapusnya0\
di awal.Penjelasan:
sumber
Pyth , 21 byte
Cobalah online di sini .
sumber
sangat mungkin bukan satu byte dalam codepage Pyth. (Saya pikir itu menggunakan UTF-8, dalam hal ini adalah 3 byte, danj7163 3
memiliki panjang yang sama; tetapi tio.run mengatakan Pyth memiliki SBCS. Misterius!)Ruby , 54 byte
Cobalah online!
sumber
Java (JDK) , 95 byte
Cobalah online!
sumber
JavaScript (Node.js) , 82 byte
Cobalah online!
sumber
Jelly , 13 byte
Cobalah online!
Diindeks 0.
Program lengkap; menerima input dari STDIN.
sumber
Merah ,
9995 byteCobalah online!
Hanya solusi sederhana.
sumber
J , 37 byte
Cobalah online!
Menggunakan metode Arnauld
Penjelasan:
Argumennya adalah
n
sumber
Diedit setelah komentar pertama.
Mencetak semua istilah
Scala, 76 byte
Cobalah online!
Cetakan n th jangka
Scala, 72 byte
Scala, 69 byte
Scala, 67 byte
Scala, 67 byte
Cobalah online!
sumber
n
didefinisikan). Jika Anda tahu Scala, mungkin mudah diperbaiki. Perhatikan juga bahwa ada tips untuk bermain golf di pertanyaan Scala yang mungkin membantu. Terakhir bagus untuk mengirim tautan ke juru bahasa online, TIO memiliki Scala dan digunakan oleh banyak anggota PPCG.