Cara kerja pengodean
Diberikan daftar bit:
- Pegang prime (dimulai dengan
2
) - Punya daftar
- Untuk setiap bit dalam input
- Jika sama dengan bit sebelumnya, tambahkan perdana yang Anda pegang ke daftar
- Jika berbeda, pegang prime berikutnya dan tambahkan ke daftar
- Kembalikan produk semua angka dalam daftar Anda
- Untuk bit pertama, anggap bit sebelumnya adalah
0
Catatan: langkah-langkah ini hanya untuk tujuan ilustrasi, Anda tidak diharuskan untuk mengikutinya.
Contohnya
Input: 001
hold 2
0: add 2 to the list
0: add 2 to the list
1: hold 3, add 3 to the list
list: 2,2,3
Output: 12
Input: 1101
hold 2
1: hold 3, add 3 to the list
1: add 3 to the list
0: hold 5, add 5 to the list
1: hold 7, add 7 to the list
list: 3,3,5,7
Output: 315
Beberapa contoh lagi:
000000000 -> 512
111111111 -> 19683
010101010 -> 223092870
101010101 -> 3234846615
011101101 -> 1891890
000101101010010000 -> 3847834029582062520
Tantangan
Tulis pembuat enkode dan decoder untuk metode penyandian ini.
(Decoder membalikkan proses encoder).
Input output
Encoder dapat mengambil input dalam format apa pun yang masuk akal
Encoder harus menampilkan bilangan bulat atau string
Decoder harus mengambil input dalam format yang sama dengan yang encoder utput
Decoder harus menampilkan format yang sama dengan yang diambil oleh encoder sebagai input
Dengan kata lain decoder( encoder( input ) ) === input
Catatan
- Dekoder dapat mengasumsikan bahwa inputnya dapat didekodekan
- Jawaban Anda hanya harus berurusan dengan bilangan bulat bahwa bahasa Anda native dapat mendukung tanpa menggunakan (
long
,bigInt
, dll), masuk akal, jika Anda bahasa hanya mendukung int hingga 1, mungkin mempertimbangkan kembali posting jawaban
Mencetak gol
Skor Anda adalah jumlah dari panjang dalam byte encoder dan decoder.
Jika Anda perlu mengimpor modul, impor hanya dapat dihitung satu kali asalkan encoder dan decoder Anda dapat hidup berdampingan dalam file yang sama dan digunakan kembali (seperti fungsi).
Celah default dilarang.
Ini adalah kode-golf sehingga skor terpendek untuk setiap bahasa menang.