|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Привет котаны! Числа фибоначчи (Ф) это такая sequence: Код: plaintext
Если считать эти числа - весами разрядов в некой позиционной системе - то получаем систему наподобие двоичной. Табличка. NumberFiller12358131*12*13*14*115*16*117*118*19*1110*1111*1112*11113*11 Эта система обладает таким свойством. В ней нет двух подряд идущих единичек. Если есть единички в разрядах 1 и 2 - то они немедленно суммируются и передаются в следующий разряд. Символ "*" я ввел искусственно. Чуть ниже я объясню зачем. Можно даже сделать механический счетчик на такой системе который будет делать инкремент на каждое воздействие. Задача 1 Необходимо сделать такой кодек чтоб на вход шла последовательность любых целых чисел начиная от 1 а на выходе - последовательность бит в системе Ф. Здесь символ "*" я спокойно заменил на "1" без потерь свойства различимости этого потока. Пример. Input: Код: sql 1.
Output: Код: sql 1.
Здесь первые 2 символа "11" - это филлер и единичка. Тоесть число 1. Следующее число - "101" - это число 2. Можно output сделать в виде string и задача формально решена. Числа могут иметь вобщем любую разрядность. Задача 2 Сделать обратную задачу. Декодер. С пятницей всех. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 16:27 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
mayton, ммм... а "числа" во входном потоке это кто? если это что-то похожее на настоящие целые "числа" фиксированной разрядности, то вроде бы не должно быть больших проблем, поскольку массив на фиксированное число "разрядов фибоначчи" не требует вычисления и его можно считать бессплатным... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:10 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Вот еще пример. Число побольше. Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:21 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
mayton, а вот это число или что 999999999999999999999999999999999? о какой компьютерной математике, оперирующей "числами" идет речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:28 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Буби. С пятницей тебя. Ты чего такой сердитый? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:37 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
mayton Буби. С пятницей тебя. Ты чего такой сердитый? с чего вдруг сердитый, я пятнице радусь. я почти совершенно счастлив, а ты про числа рассказать всё не хочешь. Тебя тоже с пятницей. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:40 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Твой вопрос касается ограничений? Ограничение - int64. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:42 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
mayton Твой вопрос касается ограничений? Ограничение - int64. во, это дело. щаз я уже весь в пятнице, но чую, не должно быть там ничего военного. может вечером или в ночи, освободясь от пятницы... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:43 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Ну давай. Декодирование - чуть похитрее будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:46 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Поправил табличку. NumberFiller12358131*12*13*14*115*16*117*118*19*1110*1111*1112*11113*1 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 17:49 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю, что выходом кодирования должна являться "бинарная строка" - последовательность байт, сама по себе "числом" в смысле int64, или даже просто строка, и оно приходит на вход "декодирования"? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 18:02 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
mayton Ограничение - int64. навскидку не вижу ничего подвохообразного. имеем на руках массив порядка 100 чисел Фибоначчи. при кодировании находим максимальное число Ф не более заданного, ставим единицу в соответствующий разряд, вычитаем найденное из заданного, кодируем остаток. Поиск числа можно бинарным поиском, но на 100 элементах ускорение не сильное. декодирование ещё проще - обходим наши нули-единицы, и там где 1, добавляем в копилку соответствующее разряду число Ф, беря его из массива по индексу. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 18:37 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
А нужен-ли нам массив? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 18:45 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
mayton А нужен-ли нам массив? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2020, 19:14 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
mayton А нужен-ли нам массив? (пятница меня победила, так что кодирования пока не будет) массив позволит за логарифм от максимального кодируемого числа M найти старший разряд, после чего спускаться линейно по кодируемуму n к младшему. Без массива стоит вопрос - какова степень для первого фиб. числа, превышающего кодируемое. я не знаю, как в таком случае закодировать меньше, чем за 2n по отношению к кодируемуму n что лучше - зависит от статистики входного потока. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2020, 00:59 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
По теме https://en.wikiversity.org/wiki/Fibonacci_sequences,_binary_numbers_and_compositions https://en.wikipedia.org/wiki/Fibonacci_coding ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2020, 02:03 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
booby, Думаю, не стоит заморачиваться на логарифмический поиск старшего разряда, потому что потом все равно придется заполнять другие разряды, и в сумме у нас всё равно будет линейное время. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2020, 08:31 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
UP. Пора подводить неутешительные итоги. Никто неосилил. И я неосилил. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:02 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
вот, за 5 минут на коленке Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:21 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Имя пользователя1, шикарно. Я протестирую чуть позже. +Мне еще надо будет реализовать нечто вроде бинарного writer для этой системы. И придумать как правильно закодировать хвостик. Последние несколько бит кратных WORD (int). Или не надо кодировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:42 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
mayton И придумать как правильно закодировать хвостик. Последние несколько бит кратных WORD (int). Или не надо кодировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:46 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Да пожалуй не надо. Это в криптографии всякий Padding нужны. А в нашем случае просто последний единичный бит. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:57 |
|
Тяпничный код Фибоначчи
|
|||
---|---|---|---|
#18+
Имя пользователя1 Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 11:24 |
|
|
start [/forum/topic.php?fid=16&msg=39994538&tid=1339743]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 547ms |
0 / 0 |