Подтема 5 из 5
Передача
Сколько времени идёт передача — ответ задачи темы — и сколько файлов успеет пройти по каналу.
Время передачи
Вернёмся к задаче темы: пакет из 50 снимков по 9 437 184 бит идёт по каналу 2 000 000 бит/с.
Время передачи — объём, делённый на скорость канала: t = V / v. Это та же формула, что «путь = скорость · время» в задачах на движение.
Пакет занимает 50 · 9 437 184 = 471 859 200 бит, время 471 859 200 / 2 000 000 = 235,93 с. В ответе — целая часть: 235. Это ответ задачи темы.
t = 1024 * 768 * bits(3000) * 50 / 2000000print(t, int(t))Промежуточные числа выписывать не нужно: программа сразу считает всё выражение. int отбрасывает дробную часть.
Единицы объёма и скорости
Объём и скорость должны быть в согласованных единицах: биты на бит/с, Кбайты на Кбайт/с. Файл 4 Мбайт по каналу 2²⁰ бит/с: 4 Мбайт = 4 · 2²³ бит, время 4 · 2²³ / 2²⁰ = 32 с. Ошибка «4 секунды» — если забыть, что объём в байтах, а скорость в битах.
Если скорость дана как 64 000 бит/с, это готовое число: множители 1000 или 1024 к нему добавлять не нужно.
Запись и передача
Длительность звучания и время передачи — разные величины. Запись стерео, 16 кГц, 16 бит, 90 секунд занимает 46 080 000 бит; по каналу 128 000 бит/с она передаётся 360 секунд.
Тонкости:файл больше, канал быстрее
Время меняется так же, как объём, и обратно скорости: t₂ = t₁ · V₂ / V₁ · v₁ / v₂. Если файл стал втрое больше, а канал вдвое быстрее, время вырастет в 3/2 раза.
Сколько снимков успеет
Сколько снимков пройдёт за отведённое время — вместимость канала, делённая на снимок, с округлением вниз. Канал 64 Кбайт/с за 28 секунд передаст 1792 Кбайт; снимков по 80 Кбайт — 1792 / 80 = 22,4, то есть 22: двадцать третий не успеет.
Для снимков задачи темы: за 10 минут канал 2 000 000 бит/с передаст целиком 127 снимков.
photo = 1024 * 768 * bits(3000)print(2000000 * 600 // photo)Реальное время
Чтобы поток передавался без отставания, за секунду канал должен пропускать всё, что запись создаёт за секунду. Стереопоток 32 кГц после сжатия на 75 % идёт по каналу 20 Кбайт/с = 163 840 бит/с: 0,25 · 32 000 · 2 · i ≤ 163 840, i ≤ 10,24. Наибольшая глубина — 10 бит, округление вниз.
Для снимков то же: если камера снимает каждые n секунд, снимок должен уйти раньше следующего. Здесь n округляют вверх — нужно успеть.
Экономия
Экономия — разность объёмов, умноженная на число файлов. Снимок 1 Мбайт после уменьшения стал 0,125 Мбайт; на 100 снимках экономия 100 · (1 − 0,125) = 87,5 Мбайт. Вопрос «во сколько раз уменьшился объём» — другой: 1 / 0,125 = 8.
«Превышает»
«Превышает» — строгое неравенство: граница не подходит, ответ — следующее целое.
Звуковые данные четырёх треков занимают 600 Кбайт, у каждого трека заголовок H Кбайт (целое), канал 20 Кбайт/с, а скачивание длится больше 32 секунд. (600 + 4H) / 20 > 32, 4H > 40, H > 10 — наименьшее H = 11. Проверка соседним значением: при H = 10 время ровно 32 — не больше.
h = 0while (600 + 4 * h) / 20 <= 32: h += 1print(h)увеличивает H, пока время ещё не превышает 32 секунды, и останавливается на первом подходящем.
Тонкости:как округляет Python
int(x) отбрасывает дробную часть, ceil(x) округляет вверх, а round(x) — к ближайшему, но ровно половину — к чётному: 12,5 → 12, 13,5 → 14. Если вышло ровно x,5 и нужно школьное округление, реши этот случай руками.
print(int(12.8), round(12.8), round(12.5), round(13.5))Итого
- Времяt = V / v в согласованных единицах
- Запись и передачаразные величины: 90 с звучит, 360 с передаётся
- Сколько снимковвместимость канала / снимок, вниз
- Реальное времяза секунду создаётся не больше, чем передаётся
- «Превышает»граница не подходит: H > 10 → 11
Проверьте себя
Ответь сначала сам, потом открой ответ.
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
Практика
Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.
Передача минутной записи
Минутная монозапись сделана при 32 кГц и глубине 16 бит. Сколько секунд займёт передача по каналу 64 000 бит/с?
Введите число.
Подсказка
Время передачи — объём, делённый на скорость.
Решение
Запись занимает 32 000 · 60 · 1 · 16 = 30 720 000 бит. По каналу 64 000 бит/с она передаётся 30 720 000 / 64 000 = 480 с — восемь минут передачи для одной минуты звучания.
Решение программой
print(32_000 * 60 * 16 // 64_000)Ответ: 480
Пакет из 50 снимков
Снимки 640 × 480 пикселей с палитрой из 256 цветов передают пакетами по 50 штук со скоростью 1 536 000 бит/с. Сколько секунд передаётся пакет?
Введите число.
Подсказка
Сначала объём всего пакета.
Решение
Для 256 цветов нужно 8 бит. Пакет занимает 640 · 480 · 8 · 50 бит и передаётся 640 · 480 · 8 · 50 / 1 536 000 = 80 с.
Решение программой
print(640 * 480 * 8 * 50 // 1_536_000)Ответ: 80
Пакет из 250 снимков в минутах
Камера делает цветные снимки 1920 × 1080 пикселей с палитрой из 5000 цветов. Снимки группируются в пакеты по 250 штук и передаются со скоростью 25 000 000 бит/с. Сколько минут передаётся один пакет? В ответе запиши целую часть числа.
Введите число.
Подсказка
5000 цветов требуют 13 бит; в ответе целая часть минут.
Решение
Для 5000 цветов нужно 13 бит. Пакет передаётся 1920 · 1080 · 13 · 250 / 25 000 000 = 269,568 с = 4,49… мин, целая часть — 4.
Решение программой
i = 1while 2 ** i < 5000: i += 1seconds = 1920 * 1080 * i * 250 / 25_000_000print(int(seconds / 60))Ответ: 4
Скачивание альбома
Альбом записан в формате стерео с частотой дискретизации 44 100 Гц и глубиной 24 бита без сжатия. В альбоме 12 треков общей длительностью 40 минут, каждый трек содержит заголовок объёмом 200 Кбайт. Сколько секунд будет скачиваться альбом по каналу со скоростью 100 000 000 бит/с? В ответе запиши целую часть полученного числа.
Введите число.
Подсказка
Общую длительность не умножают на число треков, заголовок — у каждого трека.
Решение
Звук всего альбома 44 100 · 2 · 24 · 2400 = 5 080 320 000 бит — общую длительность не умножают на число треков. Заголовки 12 · 200 · 8192 = 19 660 800 бит. Всего 5 099 980 800 бит, время 50,99… с, целая часть — 50.
Решение программой
sound = 44_100 * 2 * 24 * 40 * 60heads = 12 * 200 * 8192print(int((sound + heads) / 100_000_000))Ответ: 50
6 Мбайт по каналу 2²¹ бит/с
Файл объёмом 6 Мбайт передают по каналу 2²¹ бит/с. Сколько секунд длится передача?
Введите число.
Подсказка
Единицы объёма и скорости должны совпадать.
Решение
6 Мбайт = 6 · 2²³ бит. Время передачи 6 · 2²³ / 2²¹ = 6 · 4 = 24 с.
Решение программой
print(6 * 2 ** 23 // 2 ** 21)Ответ: 24
Сколько передаст канал
Сколько Кбайт передаст канал со скоростью 256 000 бит/с за 2 минуты?
Введите число.
Подсказка
Скорость умножают на время.
Решение
За 2 минуты = 120 с канал передаёт 256 000 · 120 бит. В Кбайтах 256 000 · 120 / 8192 = 3750.
Решение программой
print(256_000 * 120 // 8192)Ответ: 3750
Файл больше, канал быстрее
Файл передавался 45 секунд. Новый файл вчетверо больше, а канал втрое быстрее. Сколько секунд передаётся новый файл?
Введите число.
Подсказка
Время растёт вместе с объёмом и уменьшается при росте скорости.
Решение
Больший вчетверо файл передавался бы вчетверо дольше, а втрое более быстрый канал сокращает время втрое: 45 · 4 / 3 = 60 с.
Решение программой
print(45 * 4 // 3)Ответ: 60
Наибольшая глубина для потока
Стереозвук записывают с частотой 20 000 Гц. После сжатия остаётся 40 % объёма. Скорость канала — 512 000 бит/с. Найди максимальную глубину кодирования.
Введите число.
Подсказка
За секунду канал должен пропускать всё, что запись создаёт за секунду.
Решение
За секунду поток создаёт 20 000 · 2 · i бит, после сжатия 0,4 от этого. Нужно 0,4 · 20 000 · 2 · i ≤ 512 000, отсюда i ≤ 32. Наибольшая глубина 32 бита.
Решение программой
print(int(512_000 / (20_000 * 2 * 0.4)))Ответ: 32
Снимок в реальном времени
Камера каждые n секунд (n — целое число) делает снимок 1280 × 1024 пикселей с палитрой из 65 536 цветов. Снимки сжимаются на 60 % и передаются по каналу со скоростью 256 Кбайт/с. Определи наименьшее n, при котором возможна передача в режиме реального времени.
Введите число.
Подсказка
Снимок нужно успеть передать до следующего.
Решение
Для 65 536 цветов нужно 16 бит = 2 байта. Снимок 1280 · 1024 · 2 байт = 2560 Кбайт, после сжатия на 60 % — 1024 Кбайт. Канал передаёт его за 1024 / 256 = 4 с, поэтому снимать можно не чаще чем раз в 4 секунды.
Решение программой
from math import ceil shot = 1280 * 1024 * 2 / 1024 * 0.4print(ceil(shot / 256))Ответ: 4
Экономия при отправке 40 снимков
Снимок 2048 × 1536 с глубиной цвета 24 бита перед отправкой уменьшают до 1024 × 768 с глубиной 16 бит. Сколько Мбайт экономится при отправке 40 снимков?
Введите число.
Подсказка
Экономия — разность объёмов.
Решение
Снимок до уменьшения занимает 2048 · 1536 · 24 бит, после — 1024 · 768 · 16 бит. Экономия на 40 снимках — 40 · (2048 · 1536 · 24 − 1024 · 768 · 16) = 2 516 582 400 бит, это 300 Мбайт.
Решение программой
old = 2048 * 1536 * 24new = 1024 * 768 * 16print((old - new) * 40 // 2 ** 23)Ответ: 300
Наименьший заголовок
Звуковые данные пяти треков вместе занимают 400 Кбайт. У каждого есть заголовок размером H Кбайт, где H — целое число. Передача по каналу 50 Кбайт/с длится больше 10 секунд. Найди минимальное H.
Введите число.
Подсказка
Строгое неравенство: проверь соседнее значение.
Решение
Нужно (400 + 5H) / 50 > 10, то есть 400 + 5H > 500, H > 20. При H = 20 передача длится ровно 10 секунд — не больше, поэтому наименьшее H = 21.
Решение программой
h = 0while (400 + 5 * h) / 50 <= 10: h += 1print(h)Ответ: 21
Заголовок трека альбома
Альбом записан в формате квадро с частотой дискретизации 32 000 Гц и глубиной 20 бит без сжатия. В альбоме 16 треков общей длительностью 30 минут. Каждый трек содержит заголовок — одно и то же целое число Кбайт для всех треков. Известно, что скачивание альбома по каналу со скоростью 300 000 000 бит/с длится больше 16 секунд. Каков минимально возможный объём заголовка трека в Кбайтах?
Введите число.
Подсказка
Скачивание длится больше 16 секунд: ищи наименьшее подходящее H.
Решение
Звук альбома 32 000 · 4 · 20 · 1800 = 4 608 000 000 бит. Нужно 4 608 000 000 + 16 · H · 8192 > 16 · 300 000 000, отсюда H > 1464,84…. Наименьшее целое H = 1465 Кбайт.
Решение программой
sound = 32_000 * 4 * 20 * 30 * 60h = 0while sound + 16 * h * 8192 <= 16 * 300_000_000: h += 1print(h)Ответ: 1465