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

Помогите решить пожалуйста.

Wuthreve Ученик (115), на голосовании 1 месяц назад
На предприятии каждой изготовленной детали присваивают серийный номер,
содержащий десятичные цифры, 26 латинских букв (без учёта регистра) и символы
из 8164-символьного специального алфавита. В базе данных для хранения каждого
серийного номера отведено одинаковое и минимально возможное число байт. При
этом используется посимвольное кодирование серийных номеров, все символы
кодируются одинаковым и минимально возможным числом бит. Известно, что для
хранения 835 серийных номеров отведено более 156 Кбайт памяти. Определите
минимально возможную длину
серийного номера. В ответе запишите только целое число
Голосование за лучший ответ
Вертолётов 625 Мудрец (13988) 2 месяца назад
Для решения задачи необходимо определить минимально возможную длину серийного номера, учитывая, что:

- Используются десятичные цифры (10), 26 латинских букв и 8164 символов специального алфавита.
- Общее количество символов: 10 + 26 + 8164 = 8200.
- Для хранения 835 серийных номеров выделено более 156 Кбайт памяти, что соответствует 156 × 1024 = 159744 байт.

**Шаги для вычисления минимальной длины серийного номера:**

1. **Определяем количество бит для кодирования одного символа:**
Для кодирования n символов требуется минимум k бит, где 2^k ≥ n. В нашем случае:
2^k ≥ 8200.
Находим минимальное k:
- 2^13 = 8192, что подходит.
Таким образом, k = 13 бит на символ.

2. **Вычисляем количество байт на один серийный номер:**
Один символ занимает 13/8 = 1.625 байт. Для хранения целого числа байт округляем до ближайшего большего целого, т.е. до 2 байт на символ.

3. **Определяем общее количество байт для всех серийных номеров:**
Если длина серийного номера равна L, то общее количество байт для 835 серийных номеров:
835 × (2 × L) > 159744.
Упрощаем это уравнение:
1670L > 159744,
L > 159744 / 1670 ≈ 95.7.
Таким образом, минимально возможная длина L равна 96 символов.

Ответ: **96**
WuthreveУченик (115) 2 месяца назад
Спасибо большое , отмечу как лучший
evzzxwУченик (166) 3 недели назад
Почему k=13 если он не покроет 8200 автор…
evzzxw, если k будет равно 14, то это уже будет 16384, что намного больше, чем 8200
Похожие вопросы