У Пети в комнате плохо ловит интернет. Но не беда: Катя из своей комнаты скачивает новую серию Петиного любимого сериала себе на компьютер и передаёт файл Пете по локальной сети.
Объём файла — 600 Мбайт. Скорость скачивания файла на Катином компьютере — 2 в степени 23 бит/с. Скорость передачи файла по локальной сети — 2 в степени 21 бит/с.
Какое время нужно ребятам, чтобы Петя получил новую серию, если Кате нужно полностью скачать файл, перед тем как начать передавать его Пете?
Задача сводится к сложению двух этапов: скачать файл Катей и затем передать его по локальной сети Пете. Так как Катя должна полностью скачать файл, до начала передачи никаких перекрытий не происходит.
Шаги решения
1) Преобразуем размер файла в биты.
- Вариант А (обычно в задачах MB = десятичный мегабайт):
S = 600 Мбайт = 600 · 10^6 байт = 4,800,000,000 бит.
- Вариант Б (если считать 1 Мбайт = 2^20 байт, то есть MiB):
S = 600 МиБ = 600 · 2^20 байт = 600 · 8,388,608 байт = 5,033,164,800 бит.
2) Скорости
- Скачать Катей: v_down = 2^23 бит/с = 8,388,608 бит/с.
- Передать по LAN: v_lan = 2^21 бит/с = 2,097,152 бит/с.
3) Время на скачивание и на передачу
- Время загрузки: T_down = S / v_down.
- Время передачи: T_trans = S / v_lan.
- Общее время: T_total = T_down + T_trans.
Рассчёт для каждого варианта
- Вариант А (600 Мбайт = 4.8 · 10^9 бит)
T_down = 4.8e9 / 8,388,608 ≈ 572.20 секунд.
T_trans = 4.8e9 / 2,097,152 ≈ 2288.82 секунд.
T_total ≈ 572.20 + 2288.82 ≈ 2861.02 секунд ≈ 47 минут 41 сек.
- Вариант Б (600 МИБ = 5,033,164,800 бит)
T_down = 5,033,164,800 / 8,388,608 = 600 секунд.
T_trans = 5,033,164,800 / 2,097,152 = 2400 секунд.
T_total = 600 + 2400 = 3000 секунд = 50 минут.
Ответ
- Если считать 1 МБ = 10^6 байт (обычный десятичный мегабайт): примерно 47 минут 41 сек.
- Если считать 1 МБ как 1 MiB = 2^20 байт (то есть 600 MiB): ровно 50 минут.
Дополнение
Общее решение можно выразить так: T_total = S · (1/v_down + 1/v_lan), где S — размер файла в битах. В зависимости от трактовки объема файла (MB vs MiB) результат будет различаться.