Фибоначчиева система счисления
Фибоначчиева система счисления — смешанная система счисления для целых чисел на основе чисел Фибоначчи F2=1, F3=2, F4=3, F5=5, F6=8 и т.д. Последовательность Фибоначчи определяется следующим образом:
История
Эти числа ввёл в 1202 г. Леонардо Фибоначчи (Leonardo Fibonacci) (также известный как Леонардо Пизанский (Leonardo Pisano)). Однако именно благодаря математику 19 века Люка (Lucas) название "числа Фибоначчи" стало общеупотребительным. Впрочем, индийские математики упоминали числа этой последовательности ещё раньше: Гопала (Gopala) до 1135 г., Хемачандра (Hemachandra) — в 1150 г.
Свойства
Числа Фибоначчи обладают множеством интересных математических свойств.
Вот лишь некоторые из них:
* Соотношение Кассини:![]()
* Правило "сложения":![]()
* Из предыдущего равенства при k = n вытекает:![]()
* НОД-равенство:![]()
Фибоначчиева система счисления
Теорема Цекендорфа утверждает, что любое натуральное число n можно представить единственным образом в виде суммы чисел Фибоначчи:
где k1 >= k2+2, k2 >= k3+2, ... , kr >= 2 (т.е. в записи нельзя использовать два соседних числа Фибоначчи).
Отсюда следует, что любое число можно однозначно записать в фибоначчиевой системе счисления, например:
причём ни в каком числе не могут идти две единицы подряд.
Нетрудно получить и правило прибавления единицы к числу в фибоначчиевой системе счисления: если младшая цифра равна 0, то её заменяем на 1, а если равна 1 (т.е. в конце стоит 01), то 01 заменяем на 10. Затем "исправляем" запись, последовательно исправляя везде 011 на 100. В результате за линейное время будет получена запись нового числа.
Перевод числа в фибоначчиеву систему счисления осуществляется простым "жадным" алгоритмом: просто перебираем числа Фибоначчи от больших к меньшим и, если некоторое , то
входит в запись числа
, и мы отнимаем
от
и продолжаем поиск.