"Nomor yang Cocok"
Sam punya ide "brilian" untuk kompresi! Dapatkah kamu menolong?
Berikut ini adalah ikhtisar skema kompresi Sam. Pertama, ambil representasi basis 10 dari bilangan asli mana pun yang benar-benar lebih kecil dari 2 ^ 16, dan tulislah sebagai string biner tanpa nol di depan.
1 -> 1 9 -> 1001 15 -> 1111 13 -> 1101 16 -> 10.000 17 -> 10001 65535 -> 111111111111111
Sekarang ganti grup mana pun dari satu nol atau lebih dengan nol tunggal. Ini karena jumlahnya semakin ramping. String biner Anda sekarang akan terlihat seperti ini.
1 -> 1 -> 1 9 -> 1001 -> 101 15 -> 1111 -> 1111 13 -> 1101 -> 1101 16 -> 10.000 -> 10 17 -> 10001 -> 101 65535 -> 111111111111111 -> 111111111111111
Sekarang Anda mengonversi string biner kembali ke representasi basis 10, dan mengeluarkannya dalam format apa pun yang dapat diterima. Berikut ini adalah kasus pengujian Anda. Integer pertama mewakili input, dan integer terakhir mewakili output. Perhatikan bahwa beberapa angka tidak berubah, dan dengan demikian dapat disebut "cocok"
1 -> 1 -> 1 -> 1 9 -> 1001 -> 101 -> 5 15 -> 1111 -> 1111 -> 15 13 -> 1101 -> 1101 -> 13 16 -> 10.000 -> 10 -> 2 17 -> 10001 -> 101 -> 5 65535 -> 1111111111111111 -> 1111111111111111 -> 65535 65000 -> 1111110111101000 -> 11111101111010 -> 16250
Anda dapat menggunakan bahasa apa pun, tetapi harap dicatat bahwa Sam membenci celah standar. Ini adalah kode golf sehingga kode dapat sesingkat mungkin untuk memberikan ruang bagi angka "terkompresi".
Catatan: Ini BUKAN skema kompresi yang dapat diterima. Menggunakan ini akan segera membuat Anda dipecat.
Citation-Needed: Saya tidak menerima pujian untuk konsep ini. Ini berasal dari blog @Conor O 'Brien di sini lihat OEIS nomor yang pas ini. https://oeis.org/A090078
10000
?