Sejumlah variabel bit adalah array 0 atau lebih bit. Jadi [0, 1]
adalah sejumlah variabel bit, tetapi begitu juga []
.
Tulis fungsi atau program yang, dengan integer nonnegatif mengembalikan sejumlah variabel bit sehingga setiap integer memiliki pemetaan satu-ke-satu (bijektif) dengan array.
Ada jumlah tak terbatas dari pemetaan semacam itu, Anda bebas membuat satu sesuka Anda, tetapi itu harus satu-ke-satu. Pemetaan Anda harus secara konseptual satu-ke-satu untuk bilangan bulat berukuran sewenang-wenang, tetapi tidak apa-apa jika implementasi Anda gagal untuk bilangan bulat besar karena batas numerik jenis dalam bahasa pilihan Anda (misalnya C int
).
Sebagai contoh dari apa yang bukan pemetaan satu-ke-satu, hanya daftar digit biner dari bilangan bulat. Dalam sistem seperti 5 menjadi [1, 0, 1]
(atau 0b101
), tetapi itu tidak satu-ke-satu, karena 0b0101
atau [0, 1, 0, 1]
juga berarti 5.
Seharusnya cukup jelas bahwa pemetaan bukan satu-ke-satu jika ia melewatkan bilangan bulat (misalnya tidak bekerja untuk 5), tapi saya ingin memperjelas bahwa melewatkan array bit variabel juga bukan satu -untuk satu. Anda harus memetakan ke setiap bit array variabel yang mungkin, termasuk []
.
Kode terpendek dalam byte menang.