Tuyên bố miễn trừ trách nhiệm: Mã hóa Levenshtein hoàn toàn không liên quan đến chỉ số khoảng cách chỉnh sửa Levenshtein .
<Chèn câu chuyện dài về lý do tại sao mã Levenshtein cần được tính toán ở đây.>
Mật mã
Mã hóa Levenshtein là một hệ thống gán mã nhị phân cho các số nguyên không âm, giữ lại một số thuộc tính lạ trong xác suất không phù hợp với thách thức này. Chúng tôi sẽ biểu thị mã này là L ( n ). Wikipedia mô tả đây là một quá trình gồm năm bước:
- Khởi tạo biến đếm bước C thành 1.
- Viết biểu diễn nhị phân của số mà không dẫn
1
đến đầu mã. - Gọi M là số bit được viết ở bước 2.
- Nếu M không bằng 0, tăng C , lặp lại từ bước 2 với M là số mới.
- Viết các bit C
1
và a0
đến đầu mã.
Tuy nhiên, mã cũng có thể được mô tả đệ quy:
- Nếu số là 0, thì mã của nó là
0
. - Viết biểu diễn nhị phân của số mà không dẫn
1
đến đầu mã. - Gọi M là số bit được viết ở bước 2.
- Viết L ( M ) vào đầu mã.
- Viết một
1
chút vào đầu mã.
Đối với những người thích các ví dụ, đây là quy trình đệ quy cho L (87654321), với biểu thị phép nối:
Các thách thức
Viết chương trình hoặc hàm, cho một số n , xuất ra chuỗi bit L ( n ) ở bất kỳ định dạng hợp lý nào (điều này bao gồm trả về một số có các bit đã nói). Các sơ hở tiêu chuẩn, như mọi khi, không được phép.
Ví dụ
Đầu vào: 5
Đầu ra: 1110001
Đầu vào: 30
Đầu ra: 111100001110
Đầu vào: 87654321
Đầu ra: 111110000101001001110010111111110110001
Đầu vào: 0
Đầu ra: 0
±
thay vì một hàmf
.