Имя: Пароль:
IT
 
Как кодировать 0 в системе кодов Фибоначчи?
0 megabax
 
08.11.16
20:54
Добрый день. Вот изучаю методы сжатия данных, кодировании Фибоначчи. Непонятно, как кодировать в этот системе нуль? Если 1 кодируется как 11, а 11 - это запрещенная комбинация и она используется как маркер конца числа?
1 Garykom
 
гуру
08.11.16
21:30
На основе фибоначчиевой системы счисления строится код (кодирование) Фибоначчи — универсальный код для натуральных чисел (1, 2, 3…)

где тут 0?
2 XLife
 
08.11.16
21:36
один из этих точно знает...
3 megabax
 
08.11.16
21:37
(1) То есть он вообще никак не кодируется получается?
4 kosts
 
08.11.16
21:38
11 это ноль
1111 это нольноль
чем не вариант
5 megabax
 
08.11.16
21:57
Вообще то 11 - это единица. Хотя, если счет начать с нуля и предположить что 0 - это 1, 1 - это 2 и так далее, тогда да, получиться.
6 Garykom
 
гуру
08.11.16
22:04
(5) И нифуя не получится, ибо ряд фибоначчи это 1,2,3,5,8,...

И каждый бит в представлении числа (в https://ru.wikipedia.org/wiki/Фибоначчиева_система_счисления) это одно из чисел ряда на которые "разложено" исходное число.

4 = 1+3 = 100+1 = 101
7 Garykom
 
гуру
08.11.16
22:11
Код Фибоначчи это перевернутое число в фибоначчиевой системе счисления и дополненное 1.
Банально простейший способ сжатого кодирования последовательности натуральных чисел.
Ибо чем меньше число тем меньше бит ему нуна, если знаем что в массе числе для сжатия очень много небольших (относительно максимального числа) и мало больших то кодирование этого массива чисел кодом Фибоначчи даст превосходное сжатие.

Но среди этих чисел не должно быть 0 и прочих отрицательных/действительных и т.д.

Если нужно закодировать еще и 0 и отрицательные числа, то предварительно делают смещение исходного массива,
-3,-2,-1,0,1,2,3 (делаем +4) = 1,2,3,4,5,6,7 и этот ряд и кодируем
8 Михаил Козлов
 
16.11.16
17:38
(6) Вообще-то ряд Фибоначчи: 1,1,2,3,5,..., что не отменяет (7).
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший