Penafian: Pengkodean Levenshtein sama sekali tidak terkait dengan metrik jarak edit Levenshtein .
<Masukkan cerita panjang tentang mengapa kode Levenshtein perlu dihitung di sini.>
Kode
Pengkodean Levenshtein adalah sistem pemberian kode biner ke bilangan bulat tidak negatif yang mempertahankan beberapa properti aneh dalam probabilitas yang tidak relevan untuk tantangan ini. Kami akan menyatakan kode ini sebagai L ( n ). Wikipedia menggambarkan ini sebagai proses lima langkah:
- Inisialisasi jumlah langkah variabel C ke 1.
- Tulis representasi biner dari nomor tersebut tanpa harus mengarah
1
ke awal kode. - Biarkan M menjadi jumlah bit yang ditulis pada langkah 2.
- Jika M bukan 0, tambah C , ulangi dari langkah 2 dengan M sebagai angka baru.
- Tulis C
1
bit dan a0
ke awal kode.
Namun, kode ini juga dapat dijelaskan secara rekursif:
- Jika angkanya 0, maka kodenya adalah
0
. - Tulis representasi biner dari nomor tersebut tanpa harus mengarah
1
ke awal kode. - Biarkan M menjadi jumlah bit yang ditulis pada langkah 2.
- Tulis L ( M ) di awal kode.
- Tulis
1
sedikit ke awal kode.
Bagi mereka yang lebih suka contoh, di sini adalah proses rekursif untuk L (87654321), dengan menunjukkan gabungan:
Tantangan
Tulis program atau fungsi yang, diberi nomor n , mengeluarkan bitstring L ( n ) dalam format yang masuk akal (ini termasuk mengembalikan nomor dengan bit tersebut). Celah standar, seperti biasa, tidak diizinkan.
Contohnya
Memasukkan: 5
Keluaran: 1110001
Memasukkan: 30
Keluaran: 111100001110
Memasukkan: 87654321
Keluaran: 111110000101001001110010111111110110001
Memasukkan: 0
Keluaran: 0
±
bukan fungsif
.