WEBVTT 00:00:03.736 --> 00:00:06.049 Начнём с задачи. 00:00:06.049 --> 00:00:07.761 [дует ветер] 00:00:14.514 --> 00:00:16.356 Алиса и Боб живут в домиках на деревьях, 00:00:16.356 --> 00:00:18.135 которые находятся на большом расстоянии 00:00:18.135 --> 00:00:20.931 друг от друга без прямой видимости. 00:00:20.931 --> 00:00:23.273 И им нужно поддерживать связь. 00:00:23.273 --> 00:00:25.054 Поэтому они решили протянуть провод 00:00:25.054 --> 00:00:26.737 между двумя домиками. 00:00:39.945 --> 00:00:41.651 Они туго натягивают провод 00:00:41.651 --> 00:00:44.973 и прикрепляют жестяную банку на каждом конце, 00:00:52.215 --> 00:00:53.899 что позволяет им переправлять 00:00:53.899 --> 00:00:55.884 еле слышимый голос. 00:00:58.915 --> 00:01:01.515 [Боб, приглушённо] Алло? 00:01:01.515 --> 00:01:05.573 [Алиса, приглушённо] Алло? Тебя не слышно. 00:01:05.581 --> 00:01:08.688 [Боб, приглушённо] Я тебя едва слышу. 00:01:08.688 --> 00:01:14.591 [Алиса, приглушённо] 1. 2. 3. 4. 5. 00:01:14.591 --> 00:01:18.299 Однако, есть проблема: 00:01:18.299 --> 00:01:20.682 помехи. 00:01:20.682 --> 00:01:22.255 Каждый раз, когда поднимается ветер, 00:01:22.255 --> 00:01:24.170 становится невозможно услышать 00:01:24.170 --> 00:01:26.927 сигнал через помехи. 00:01:28.897 --> 00:01:30.259 Поэтому им нужен способ увеличить 00:01:30.259 --> 00:01:32.439 уровень сигнала, 00:01:32.439 --> 00:01:34.931 чтобы отделить его от помех. 00:01:34.931 --> 00:01:37.126 У Боба появляется идея. 00:01:40.446 --> 00:01:42.859 Они могут просто дёргать за провод, 00:01:42.859 --> 00:01:46.599 что намного проще распознать через помехи. 00:01:46.599 --> 00:01:48.979 Но здесь появляется новая задача. 00:01:48.979 --> 00:01:53.165 Как они будут кодировать свои сообщения щипками провода? 00:01:56.571 --> 00:01:57.979 Ну, так как они хотят играть 00:01:57.979 --> 00:02:00.140 в настольные игры на расстоянии, 00:02:00.140 --> 00:02:03.270 сначала они договариваются о самых простых сообщениях: 00:02:03.270 --> 00:02:06.075 исходах броска двух костей. 00:02:06.075 --> 00:02:08.630 В этом случае, посылаемые сообщения 00:02:08.630 --> 00:02:10.869 можно представить в виде отбора 00:02:10.869 --> 00:02:13.840 из конечной совокупности символов, 00:02:13.840 --> 00:02:17.090 которая в нашей ситуации -- это 11 возможных чисел. 00:02:17.090 --> 00:02:19.997 Назовём это "дискретным источником". 00:02:23.962 --> 00:02:27.455 Сначала они решают использовать самый простой способ. 00:02:27.455 --> 00:02:30.610 А именно отправлять результат числом щипков. 00:02:30.610 --> 00:02:33.803 То есть чтобы отправить "3", три раза дёргать за провод. 00:02:33.803 --> 00:02:35.626 Девять щипков -- это "9", 00:02:35.626 --> 00:02:38.176 а двенадцать щипков -- это "12". 00:02:38.176 --> 00:02:40.510 Однако, вскоре они поняли, что это занимает 00:02:40.510 --> 00:02:43.262 гораздо больше времени, чем нужно. 00:02:44.416 --> 00:02:48.476 На практике они выяснили, что их максимальная скорость дёрганья 00:02:48.476 --> 00:02:50.919 равна двум щипкам в секунду. 00:02:50.919 --> 00:02:53.769 Если дёргать быстрее, то они начинают путаться. 00:02:53.769 --> 00:02:57.340 Итак, два щипка в секунду можно считать "скоростью" 00:02:57.340 --> 00:03:00.736 или ёмкостью такого способа передачи информации. 00:03:00.736 --> 00:03:05.841 [звук щипка] 00:03:05.841 --> 00:03:06.945 Вышло так, что 00:03:06.945 --> 00:03:09.745 самый частый результат броска -- это "7", 00:03:09.745 --> 00:03:14.355 то есть нужно 3,5 секунды, чтобы отправить число семь. 00:03:14.355 --> 00:03:20.173 [звуки семи щипков] 00:03:21.775 --> 00:03:24.486 Алиса поняла, что можно сделать намного лучше, 00:03:24.486 --> 00:03:27.429 изменив подход к кодированию. 00:03:27.429 --> 00:03:29.894 Она поняла, что шансы каждого числа для отправки 00:03:29.894 --> 00:03:31.704 образуют простую закономерность. 00:03:31.704 --> 00:03:33.853 Есть один способ выбросить 2. 00:03:33.853 --> 00:03:35.879 Два способа выбросить 3. 00:03:35.879 --> 00:03:38.020 Три способа выбросить 4. 00:03:38.020 --> 00:03:40.330 Четыре способа выбросить 5. 00:03:40.330 --> 00:03:42.618 Пять сособов выбросить 6. 00:03:42.618 --> 00:03:44.724 И шесть способов выбросить 7, 00:03:44.724 --> 00:03:46.277 самый частый результат. 00:03:46.277 --> 00:03:48.597 Пять способов выбросить 8. 00:03:48.597 --> 00:03:50.319 Четыре способа для 9-ти. 00:03:50.319 --> 00:03:53.728 И так далее до одного способа выбросить 12. 00:03:53.728 --> 00:03:54.886 Вот график, изображающий 00:03:54.886 --> 00:03:57.927 количество способов получения каждого результата. 00:03:57.927 --> 00:04:00.089 Шаблон очевиден. 00:04:00.089 --> 00:04:02.141 Сейчас давайте изменим график на 00:04:02.141 --> 00:04:05.359 "количество щипков на каждый символ". 00:04:05.359 --> 00:04:06.799 Далее, она сопоставляет 00:04:06.799 --> 00:04:08.110 самое частое число, семь, 00:04:08.110 --> 00:04:12.009 самому короткому сигналу -- одному щипку. 00:04:12.009 --> 00:04:14.230 [звук одного щипка] 00:04:14.230 --> 00:04:17.125 Потом она переходит к следующему наиболее вероятному числу. 00:04:17.125 --> 00:04:20.076 Если встречаются равновероятные, то берётся любое из них. 00:04:20.076 --> 00:04:22.959 В данном случае, она выбрала 6 для кодирования двумя щипками, 00:04:22.959 --> 00:04:25.427 а 8 -- тремя. 00:04:25.427 --> 00:04:28.232 Для 5 будет четыре щипка, 00:04:28.232 --> 00:04:30.344 а для 9 -- пять щипков. 00:04:30.344 --> 00:04:33.793 И так дальше, пока она не дошла до 12, 00:04:33.793 --> 00:04:36.403 которое остаётся кодировать 11 щипками. 00:04:36.403 --> 00:04:39.444 Теперь самое частое число, семь, 00:04:39.444 --> 00:04:41.800 может быть отправлено менее, чем за секунду. 00:04:41.800 --> 00:04:43.788 Значительное улучшение. 00:04:43.788 --> 00:04:46.050 Это простое изменение позволило им отправлять 00:04:46.050 --> 00:04:51.964 в среднем больше информации за то же самое время. 00:04:51.964 --> 00:04:54.440 На самом деле этот способ кодирования оптимальный 00:04:54.440 --> 00:04:56.020 для данного простого примера. 00:04:56.020 --> 00:04:57.649 В том смысле, что невозможно 00:04:57.649 --> 00:05:00.030 найти более короткий метод отправки 00:05:00.030 --> 00:05:04.671 результата броска двух костей с помощью одинаковых щипков. 00:05:04.671 --> 00:05:08.715 Как бы то ни было, поигравшись с проводом какое-то время, 00:05:08.715 --> 00:05:11.094 Боб додумался до новой идеи. 00:05:11.094 --> 00:05:13.094 [звуки щипков проигрываются задом наперёд] 00:05:27.270 --> 00:05:32.057 [щипок показан замедленно и без звука]