Saya bermain-main dengan beberapa angka dan menemukan urutan yang, tentu saja, ada di OEIS. Ini adalah A005823 : Angka-angka yang ekspansi ternernya mengandung angka 1 . Kelanjutannya:
a (2n) = 3 * a (n) +2
a (2n + 1) = 3 * a (n + 1)
a (1) = 0
a = 0,2,6,8,18,20,24,26,54 ....
Saya menulis program CJam yang menghasilkan n pertama dari angka-angka ini dengan mengubah indeks menjadi biner, mengganti angka 1 dengan angka 2, dan mengkonversi dari ternary ke desimal.
Saya juga memperhatikan bahwa angka genap dapat diperoleh dengan mengambil jumlah dua angka dalam urutan (kadang-kadang angka itu sendiri).
Tantangan:
Dengan diberi nomor genap non-negatif sebagai input, output indeks dari dua angka dalam urutan yang menjumlahkannya. (Perhatikan bahwa terkadang beberapa pasangan dimungkinkan.)
Aturan:
- Tentukan apakah Anda menggunakan pengindeksan 0 atau 1.
- Jika Anda menghasilkan sebagai string, letakkan pembatas di antara kedua indeks.
- Anda diizinkan untuk menghasilkan angka yang kompleks.
- Jika Anda menginginkannya, Anda dapat menampilkan setiap pasangan yang valid.
- Golf Kode: jawaban terpendek menang
Uji Kasus
Saya menggunakan pengindeksan 0. Di sini saya daftar setiap kemungkinan output untuk setiap input, tetapi Anda hanya perlu output satu.
0: [0 0] 2: [1 0] 4: [1 1] 6: [2 0] 8: [2 1] [3 0] 10: [3 1] 12: [2 2] 14: [3 2] 16: [3 3] 18: [4 0] 30: [6 2] 32: [6 3] [7 2] 46: [7 5] 50: [7 6] 120: [10 10] 338: [19 18] 428: [30 23] [31 22] 712: [33 27] [35 25] [41 19] [43 11] [51 9] [57 3] [59 1] 1016: [38 37] [39 36]Terima kasih kepada @Luis Mendo untuk bantuan uji kasus.
Terkait: Apakah itu dalam set Cantor?