Mari kita definisikan bilangan mandiri sebagai bilangan bulat positif, yang digit-nya muncul dalam jangka panjang yang sama dengan diri mereka sendiri. Dengan kata lain, setiap angka desimal d (tidak termasuk 0 ) hanya terjadi dalam panjang yang berjalan tepat d .
Tugas
Anda dapat memilih salah satu dari tiga metode yang tercantum di bawah ini:
- Mengingat integer n , output n th (0 atau 1-diindeks) nomor mandiri.
- Dengan bilangan bulat n , hasilkan angka pertama n mandiri.
- Cetak urutan tanpa batas.
Contohnya
133322 adalah angka mandiri karena 3 muncul dalam rentetan tiga 3 's, 1 adalah tunggal dan 2 terjadi dalam rentetan dua 2 ' s.
Di sisi lain, 35553355 tidak, karena, meskipun 5 dan 3 masing-masing terjadi lima dan tiga kali, mereka tidak membentuk lintasan angka yang berdekatan.
44422 tidak mandiri, karena 4 hanya terjadi tiga kali.
12222333 juga tidak, karena 2 muncul dalam run of four 2 's, dan tidak dapat diperlakukan sebagai dua run yang terpisah dari two 2 's.
Tidak mengherankan, ini adalah OEIS A140057 , dan beberapa istilah pertamanya adalah:
1, 22, 122, 221, 333, 1221, 1333, 3331, 4444, 13331, 14444, 22122, 22333, 33322, 44441, 55555, 122122, 122333, 133322, 144441, 155555
Anda dapat mengambil input dan memberikan output melalui salah satu metode standar , dalam bahasa pemrograman apa pun , sambil mencatat bahwa celah ini dilarang secara default. Ini adalah kode golf, jadi kode terpendek dalam byte (dalam setiap bahasa) menang.
i
menjadi lama ? Mungkin perlu digunakanstr
(saya tidak pernah benar-benar yakin akan hal-hal ini).Mathematica, 66 byte
Mencetak urutan tanpa batas
Cobalah online!
Di TIO Anda harus menghentikan eksekusi untuk melihat hasilnya tetapi di Mathematica berfungsi dengan baik.
-12 byte dari Martin Ender
sumber
05AB1E , 9 byte
Mengembalikan istilah ke-n dari urutan, 1-diindeks.
Cobalah online!
Penjelasan
sumber
µNγD€gs€ÙQ
JavaScript (ES6),
767168 byteMengembalikan istilah ke-n dari urutan, 0-diindeks.
NB : Seperti biasa dengan fungsi rekursif, rentang input tergantung pada dukungan Optimasi Panggilan Ekor dan ukuran tumpukan mesin Anda.
Demo
Tampilkan cuplikan kode
Alt. versi, 65 byte
Tidak mengambil input dan mencetak hasilnya dengan
alert()
, satu per satu.Cobalah online! (Berhenti segera setelah ukuran tumpukan maksimum terlampaui.)
sumber
Jelly , 7 byte
Cobalah online!
-4 byte terima kasih atas saran awal Tn. Xcoder .
-1 terima kasih kepada Jonathan Allan .
Mengambil input dari STDIN.
sumber
CJam , 20 byte
Cobalah online!
Penjelasan:
sumber
Haskell , 70 byte
sumber
x=
sesuai aturan golf kami .Brachylog , 10 byte
Cobalah online!
Menghasilkan elemen dari urutan secara tak terbatas melalui variabel inputnya. (Jika itu benar-benar harus melakukan pencetakan itu sendiri, tambahkan
&ẉ⊥
.) Ini pada dasarnya adalah kode untuk memecahkan masalah keputusan yang sesuai dengan yang≜
diawali dengan kasar memaksa solusi terkecil terlebih dahulu:Saya berharap ini hanya memakan waktu 9 byte, tetapi
ḅ
tampaknya membutuhkan eksplisitẹ
untuk memisahkan digit angka menjadi run.sumber
JavaScript 4,
8380 bytesumber
Perl 6 , 49 byte
Cobalah online!
Mengembalikan
n
elemen -th dari urutan, diindeks-nol.sumber
\d
hanya bisa.
R , 56 byte
Cobalah online!
Menggunakan pengodean run run pada nomor split. Mengembalikan nilai true jika semua panjang sama dengan nilai.
Catatan: Saya telah memuat
methods
perpustakaan di TIO untuk mulaiel
bekerja.sumber
Stax , 10 byte
Jalankan dan debug itu
Program ini memfilter semua bilangan bulat positif dengan filter. Digit dikode panjangnya. Untuk setiap proses, digit harus sama dengan panjang proses.
sumber
Pyth, 12
Tes online!
sumber
.fqFCr8jZT
Perl 5
-p
, 48 byteCobalah online!
Mengembalikan elemen ke-n, 1 diindeks.
sumber
Java 10, 121 byte
Seekor lambda dari
int
keint
. Fungsi ini mengambil indeks n dan mengembalikan nilai urutan ke- n (1-diindeks).Cobalah secara Online
Tidak disatukan
sumber