|
Как кодировать 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,...
И каждый бит в представлении числа (в ) это одно из чисел ряда на которые "разложено" исходное число.
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).
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший