Фибоначчиева система счисления
Бетева (обсуждение | вклад) |
Бетева (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
'''Фибоначчиева система счисления''' — смешанная система счисления для целых чисел на основе чисел Фибоначчи F2=1, F3=2, F4=3, F5=5, F6=8 и т.д. | '''Фибоначчиева система счисления''' — смешанная система счисления для целых чисел на основе чисел Фибоначчи F2=1, F3=2, F4=3, F5=5, F6=8 и т.д. | ||
'''Последовательность Фибоначчи''' определяется следующим образом: | '''Последовательность Фибоначчи''' определяется следующим образом: | ||
+ | |||
[[Изображение:Ф0.png]] | [[Изображение:Ф0.png]] | ||
[[Изображение:Ф1.png]] | [[Изображение:Ф1.png]] | ||
Строка 49: | Строка 50: | ||
Нетрудно получить и правило прибавления единицы к числу в фибоначчиевой системе счисления: если младшая цифра равна 0, то её заменяем на 1, а если равна 1 (т.е. в конце стоит 01), то 01 заменяем на 10. Затем "исправляем" запись, последовательно исправляя везде 011 на 100. В результате за линейное время будет получена запись нового числа. | Нетрудно получить и правило прибавления единицы к числу в фибоначчиевой системе счисления: если младшая цифра равна 0, то её заменяем на 1, а если равна 1 (т.е. в конце стоит 01), то 01 заменяем на 10. Затем "исправляем" запись, последовательно исправляя везде 011 на 100. В результате за линейное время будет получена запись нового числа. | ||
− | Перевод числа в фибоначчиеву систему счисления осуществляется простым "жадным" алгоритмом: просто перебираем числа Фибоначчи от больших к меньшим и, если некоторое [[Изображение:Некоторое.png]] , то [[Изображение:Фк.png]] входит в запись числа [[Изображение:Ннн.png]], и мы отнимаем [[Изображение:Фк.png]]от [[Изображение:Ннн.png]] и продолжаем поиск. | + | Перевод числа в фибоначчиеву систему счисления осуществляется простым "жадным" алгоритмом: просто перебираем числа Фибоначчи от больших к меньшим и, если некоторое [[Изображение:Некоторое.png]] , то [[Изображение:Фк.png]] входит в запись числа [[Изображение:Ннн.png]], и мы отнимаем [[Изображение:Фк.png]] от [[Изображение:Ннн.png]] и продолжаем поиск. |
Версия 11:05, 20 сентября 2011
Фибоначчиева система счисления — смешанная система счисления для целых чисел на основе чисел Фибоначчи 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. В результате за линейное время будет получена запись нового числа.
Перевод числа в фибоначчиеву систему счисления осуществляется простым "жадным" алгоритмом: просто перебираем числа Фибоначчи от больших к меньшим и, если некоторое , то входит в запись числа , и мы отнимаем от и продолжаем поиск.