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