Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ЗАДАЧА ЕГЭ 11 ИНФ

Тимофей Сарманов Ученик (19), на голосовании 2 месяца назад
известно, что для кодирования диапазона чисел от 0 до n нужно logn бит, но если мы кодируем диапазон, например от 20000 до 20001 нам так же нужен log20001 или мы можем использовать log(20001-20000)?
Голосование за лучший ответ
スネーク フリーフライト Ученик (148) 3 месяца назад
Вам нужно использовать log(20001) бит для каждого числа в этом диапазоне.
3681 Просветленный (20338) 3 месяца назад
Корэкт. В общем случае для кодирования диапазона чисел от 0 до n требуется ⌈log₂(n+1)⌉ бит. Однако, если кодируешь числа в диапазоне от 20000 до 20001, то не нужно использовать log₂20001 бит. Вместо этого можно использовать 1 бит. Почему? Потому что есть только два возможных значения: 20000 и 20001.
Можно закодировать их, например, так:
0 - 20000
1 - 20001
В общем случае, для кодирования диапазона чисел от a до b (где a и b включительно), потребуется ⌈log₂(b - a + 1)⌉ бит.
Похожие вопросы