Код Фибоначчи
Код Фибоначчи — это способ записать натуральное число последовательностью нулей и единиц так, чтобы в ней не было двух соседних единиц, а в конце стояли две единицы подряд. Такой код строится на основе теоремы Цекендорфа и используется как однозначный самосинхронизирующийся код.
Как строится код
Для числа \(N\) выбирают наибольшее число Фибоначчи, не превосходящее \(N\), и последовательно вычитают подходящие веса. На соответствующих местах ставят \(1\), на остальных — \(0\). Благодаря правилу выбора единицы не оказываются рядом. После этого к полученной записи добавляют ещё одну единицу справа.
Используем веса \(8,5,3,2,1\). Число \(10=8+2\), поэтому коэффициенты слева направо равны \(10010\). Дописываем завершающую единицу: 100101. В основной части нет соседних единиц, а последние две единицы образуют специальное окончание.
Код Фибоначчи не является переводом числа в систему с основанием \(2\). Например, обычная двоичная запись числа \(10\) — \(1010\), а его код Фибоначчи — \(100101\). Кроме того, завершающая единица относится к формату кода, а не к разложению числа.
Какой код Фибоначчи соответствует числу \(4\), если веса начинаются с \(1,2,3,5\)?
Главное
- Число представляют суммой непоследовательных чисел Фибоначчи.
- Коэффициенты записывают нулями и единицами; в основной части соседние единицы запрещены.
- В конце кода всегда добавляют единицу, поэтому кодовое слово завершается на \(11\).