|
0 / 0 / 0
Регистрация: 13.03.2025
Сообщений: 29
|
|
Упаковка чисел30.10.2025, 10:39. Показов 867. Ответов 1
Метки нет (Все метки)
При передаче данных по сети важно их эффективно кодировать, чтобы лучше использовать пропускную способность канала. Мы опишем процедуру декодирования чисел при одном эффективном способе их кодирования. Этот способ использует переменную длину кодов, для обеспечения единственности декодирования ни один код числа не является префиксом кода другого числа. Вы же должны реализовать процедуру оптимального кодирования.
Метод применим для кодирования целых чисел от −263 до 263−1 (тип long в Java, int64 в Дельфи, __int64 в C++). Упакованное число занимает от 1 до 9 байт, в зависимости от своего значения. Декодирование происходит следующим образом. Сначала рассматривается первый байт числа. Просматривая его биты от старшего к младшему, найдем первый ноль. Пусть q – количество просмотренных при этом единиц (если первый байт равен 0xff, то q=8). Число q означает, сколько следующих байтов относятся к декодируемому числу. Если q=8, то эти байты – стандартная восьмибайтная запись числа, причем старшие байты идут сначала. В противном случае выполним следующее. Если q+2-й бит первого байта равен нулю (биты нумеруются с единицы, сначала идет старший бит, если q=7, то рассматривается старший бит второго байта) то старшие единицы первого байта заменяются на нули, и число дополняется нулевыми байтами до размера 8 байтов. Иначе (если соответствующий бит равен единице) q+1-й бит (который всегда равен нулю) заменяется на единицу, число же дополняется слева байтами 0xff до восьми байтов. В обоих случаях получается стандартная восьмибайтная запись числа, причем старшие байты идут сначала. Вам заданы несколько целых чисел, закодируйте каждое из них таким образом, чтобы длина закодированного числа была минимальной возможной, и оно декодировалось в исходное число. Первая строка содержит n – количество тестовых примеров (1 ≤ n ≤ 104). Следующие n строк содержат по одному числу в интервале между -263 и 263-1 включительно. выведите n строк, каждая строка должна содержать закодированную версию соответствующего числа, записанную как последовательность шестнадцатеричных цифр, старшие байты должны идти сначала. Используйте строчные буквы английского алфавита.
0
|
|
| 30.10.2025, 10:39 | |
|
Ответы с готовыми решениями:
1
Упаковка в Unit'ы подпроцедур Распаковка и упаковка файлов количество целых чисел среди чисел заданого множества чисел |
|
Модератор
10434 / 5722 / 3405
Регистрация: 17.08.2012
Сообщений: 17,420
|
||||||
| 06.11.2025, 20:28 | ||||||
Сообщение было отмечено ohio как решение
Решение
Для сдачи роботу на проверочный сайт можно так:
0
|
||||||
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|