The Sixers urut adalah nama yang bisa diberikan kepada urutan A087409 . Saya belajar tentang urutan ini dalam video Numberphile , dan itu dapat dibangun sebagai berikut:
Pertama, ambil kelipatan 6, yang ditulis dalam basis 10:
6, 12, 18, 24, 30, 36, ...
Selanjutnya, gabungkan angka-angka ke dalam aliran digit:
61218243036...
Akhirnya, kelompokkan aliran menjadi pasangan dan tafsirkan masing-masing sebagai bilangan bulat:
61, 21, 82, 43, 3, ...
Saat kita mengelompokkan angka menjadi pasangan, angka maksimum dalam urutan akan menjadi 99, dan ternyata semua bilangan bulat non-negatif kurang dari 100 diwakili dalam urutan. Tantangan ini adalah untuk menemukan indeks dari nomor pertama dalam urutan Sixers.
Memasukkan
Bilangan bulat dalam kisaran [0-99]
. Anda tidak perlu menghitung angka di luar rentang ini, dan solusi Anda dapat memiliki perilaku apa pun jika input seperti itu diberikan.
Keluaran
Indeks kemunculan pertama nomor input dalam urutan Sixers. Ini mungkin 0 atau 1 diindeks; tolong katakan yang Anda gunakan dalam jawaban Anda.
Aturan
- Prosedur untuk menghasilkan urutan yang tercantum dalam pendahuluan adalah hanya untuk tujuan ilustrasi, Anda dapat menggunakan metode apa pun yang Anda suka asalkan hasilnya sama.
- Anda dapat mengirimkan program atau fungsi lengkap.
- Setiap metode input dan output yang masuk akal diizinkan.
- Celah standar tidak diijinkan.
- Tautan untuk menguji kode Anda daring sangat disarankan!
- Ini kode-golf , jadi jawaban tersingkat di setiap bahasa menang!
Uji kasus
Berikut adalah daftar semua input dan output, dalam format input, 0-indexed output, 1-indexed output
.
0 241 242
1 21 22
2 16 17
3 4 5
4 96 97
5 126 127
6 9 10
7 171 172
8 201 202
9 14 15
10 17 18
11 277 278
12 20 21
13 23 24
14 19 20
15 29 30
16 32 33
17 297 298
18 35 36
19 38 39
20 41 42
21 1 2
22 46 47
23 69 70
24 6 7
25 53 54
26 22 23
27 11 12
28 62 63
29 219 220
30 65 66
31 68 69
32 71 72
33 74 75
34 49 50
35 357 358
36 80 81
37 83 84
38 25 26
39 89 90
40 92 93
41 27 28
42 42 43
43 3 4
44 101 102
45 104 105
46 8 9
47 177 178
48 110 111
49 13 14
50 28 29
51 119 120
52 122 123
53 417 418
54 79 80
55 128 129
56 131 132
57 134 135
58 55 56
59 437 438
60 140 141
61 0 1
62 31 32
63 75 76
64 5 6
65 120 121
66 82 83
67 10 11
68 161 162
69 164 165
70 58 59
71 477 478
72 170 171
73 173 174
74 34 35
75 179 180
76 182 183
77 497 498
78 85 86
79 188 189
80 191 192
81 18 19
82 2 3
83 78 79
84 93 94
85 7 8
86 37 38
87 168 169
88 12 13
89 228 229
90 88 89
91 218 219
92 221 222
93 224 225
94 64 65
95 557 558
96 230 231
97 233 234
98 40 41
99 239 240
6, 2*6, 3*6,..., 325*6
sudah cukup untuk menghasilkan semua nilai yang mungkin00
01
02
Jawaban:
JavaScript (ES6),
71 6555 byteOutput diindeks 0.
Cobalah online!
Bagaimana?
Dengan menggunakan fungsi rekursif, kami dapat 'mengonsumsi' 2 karakter pertama dari string kelipatan gabungan dari6 , atau menambahkan karakter baru jika kami memiliki kurang dari 2 karakter.
Contoh untukn=3 :
Berkomentar
sumber
Python 2 ,
9392858381686559 byteCobalah online!
sumber
f=lambda n,s='612',i=3:n-int(s[:2])and f(n,s[2:]+`i*6`,i+1)or i-2
f=lambda n,s='612',i=18:n-int(s[:2])and-~f(n,s[2:]+`i`,i+6)
(0-diindeks).Perl 6 , 31 byte
Cobalah online!
Menggunakan urutan 1-diindeks.
Penjelasan:
sumber
Haskell ,
82 ... 65 5854 byteCobalah online!
sumber
05AB1E , 9 byte
Diindeks 0. Menerima bilangan bulat tunggal, atau daftar bilangan bulat sebagai input.
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
sumber
100
,,"100"
dan100.0
sama untuk sebagian besar fungsi seperti pemeriksaan yang sama dan semacamnya. Masih ada fungsi cast to int dan cast to string di 05AB1E untuk beberapa fungsionalitas, seperti pengurutan (numeric vs lexicographic sorting), atau untuk menghilangkan angka desimal setelah koma dari float saat casting ke int, tetapi mereka tidak sering menggunakannya. .Arang , 12 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Diindeks 0. Penjelasan:
sumber
J ,
2926 byte-3 byte terima kasih kepada FrownyFrog!
Cobalah online!
Berbasis 0
sumber
i.~_2(".\;)6<@":@*1+i.@325
APL (Dyalog Unicode) , 26 byte
Cobalah online! - Tes untuk semua input yang valid.
Bagaimana:
sumber
⍴
tetapi APL membuatku takut ...⍴
adalah pembentukan kembali APL. Jadi jika Anda ingin membentuk ulang vektor yang rata, Anda hanya perlu melakukannya<new shape vector> ⍴ <vector to reshape>
Python 3 ,
8781 Bytes:input integer, output 0-diindeks.
Cobalah online!
-6 byte, terima kasih kepada @TFeld.
sumber
Bahasa Wolfram (Mathematica) , 74 byte
Cobalah online!
2 byte disimpan dari @Expired Data
sumber
Brachylog , 14 byte
Cobalah online!
Terlalu lambat untuk uji kasus dengan output yang lebih besar.
sumber
R ,
7562 byte-13 byte terima kasih kepada Giuseppe.
Cobalah online!
sumber
MathGolf , 10 byte
Cobalah online!
Pada dasarnya sama dengan jawaban 05AB1E, tapi saya kehilangan satu byte karena harus mengubah angka yang telah digabungkan menjadi string secara eksplisit.
Penjelasan
sumber
APL + WIN, 37 byte
Meminta input integer. 1 diindeks.
Cobalah online! Coutesy of Dyalog Classic
sumber
C # (Visual C # Interactive Compiler) ,
123 byte115 byteCobalah online!
sumber
f(61)
seharusnya kembali0
(sepertinya solusi Anda 0-diindeks)K (oK) , 22 byte
Larutan:
Cobalah online!
Penjelasan:
Diindeks 0.
sumber
Jelly , 10 byte
Cobalah online!
TIO link memberikan semua nilai untuk 0 hingga 99.
Penjelasan
sumber
Java 10,
119104102 bytePort dari jawaban Python 2 @TFeld .
-2 byte terima kasih kepada @Imus .
1-diindeks.
Cobalah online.
Penjelasan:
Versi asli
119117 byte:Diindeks 0.
Cobalah online.
Penjelasan:
sumber
CJam , 17 byte
Cobalah online!
Berbasis 0.
Penjelasan
sumber
""
, tetapi tidak ada builtin untuk0
atau""
kadang-kadang berguna untuk loop, karena itu sering merupakan nilai awal yang diinginkan. Mengenai tidak memiliki100
atau1000
, ya, saya setuju mereka akan lebih bermanfaat daripada mengatakan18
atau19
:~
dani
dari kode Anda. :(Japt , 12 byte
Diindeks 0.
Cobalah atau uji semua input
sumber
Merah ,
9794 byteCobalah online!
sumber
Stax , 11 byte
Jalankan dan debug itu
Input adalah bilangan bulat. Output diindeks 0.
sumber
Perl 5
-MList::Util=any -ap
, 50 byteCobalah online!
Output berbasis 1
sumber
Retina ,
8377 byteSaya benar-benar tidak berlatih pemrograman rumit di Retina, tapi saya puas dengan panjangnya saya berhasil melakukannya.
Menghasilkan hasil yang diindeks 0.
Cobalah secara Online
Penjelasan
sumber
Swift 5 / Xcode 10.2.1 ,
140134133 byteCobalah online!
sumber
Retina 0.8.2 , 36 byte
Cobalah online! Tautan termasuk test suite. 1-diindeks. Penjelasan:
Awalan 2406
_
s ke input.Ganti setiap 6
_
detik dengan jumlah sebelumnya_
. Ini menghasilkan urutan0
,6
,12
...2400
, tetapi secara otomatis merangkai angka.Lewati awalan 0 dan temukan pasangan digit pertama yang cocok dengan dua digit terakhir yaitu input nol-empuk (karena string berakhir
0
; pada kenyataannya test suite menggunakan fakta bahwa itu berakhir00
).Keluarkan jumlah pasangan digit hingga dan termasuk kecocokan.
Retina 1 menyimpan beberapa byte karena operator pengulangan senarnya lebih pendek satu byte dan sudah default
_
sebagai operan tangan kanannya, sehingga baris kedua kode menjadi adil2406*
. Fitur lain dari Retina 1 adalah dan dikalikan dengan 6 dalam substitusi. Hebatnya, ini juga tidak mempengaruhi jumlah byte keseluruhan, karena hasil akhirnya terlihat seperti ini:>
pengubah yang menghasilkan substitusi dalam konteks pemisah setelah pertandingan, yang dalam kasus$.>`
penyebabnya termasuk panjang pertandingan dalam hasil. Meskipun ini membutuhkan biaya satu byte, kami segera menyimpannya karena kami tidak perlu mencocokkannya0
. (Pengulangan juga harus dikurangi dengan 6.) Retina 1 juga dapat melakukan aritmatika dasar dalam substitusi. Ini berarti bahwa kita tidak perlu menggunakan trik untuk mengambil kelipatan 6, melainkan kita hanya menghasilkan angka1..400
sumber
Bash , 80 byte
1-diindeks.
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) , 88 byte
Cobalah online!
Port lain dari jawaban Java dan Python .
Jawaban asli saya di bawah:
C # (Visual C # Interactive Compiler) , 102 byte
Cobalah online!
Kedua solusi menggunakan pengindeksan berbasis 1.
sumber
Ruby , 46 byte
Cobalah online!
sumber
Clojure, 102 byte
Sangat lama! :(
sumber