Математические байки – Telegram
Математические байки
4.3K subscribers
1.44K photos
15 videos
27 files
914 links
Рассказы про разную математику.

Архив: http://dev.mccme.ru/~merzon/mirror/mathtabletalks/
Download Telegram
На кофейном столике Женевского университета нашел прикольную книгу: Do not erase. Сделана она так. На каждом развороте коротенькое интервью с математиком (почти все американские, кажется) слева, а справа — доска. Доски красивые, фото прикладываю.
UPD: в комментах книгу выложили целиком.
Математические байки
Фотография из музея (с убранной подписью). Как вы думете, что это?
Ответ на загадку: это посох Якова, древний прибор для измерения углов — в частности, для измерения высоты звёзд над горизонтом. Только тут на нём сразу все поперечные палочки надеты.

Так и представляется картина — становится человек на качающуюся палубу, и двигает поперечную палочку, пока не найдёт расстояние, на котором один конец указывает на звезду, другой на горизонт, причём вертикально: если чуть-чуть дальше, то уже не достанет, как ни крути. Сам посох при этом будет направлен по биссектрисе; желательно при этом также не выбить себе глаз.

После этого угол находится: если палочка длиной 2a, а зафиксировали мы её на расстоянии h, то
tg(\alpha/2) = a/h,
так что
\alpha = 2 arctg (a/h).

(image credit: Fantagu & Majo statt Senf, Wikipedia)
Давайте я выложу сюда один сюжет — фокусы с карточками с угадыванием числа. Которые можно показывать — а потом обсуждать с детьми, что происходит.

Набор первый: загадайте число от 1 до 15 (или от 1 до 31, например, день рождения). Дальше фокусник задаёт 4 (или 5) одинаковых вопросов: есть ли это число на данной карточке. И более-менее мгновенно это число называет.

Понятно, как это устроено математически — карточки это вопросы о цифрах двоичной записи. А инструкция фокуснику — показывая карточки, сразу раскладывать их в две стопки, те, где ответы « да » и где ответы «нет». После чего сложить на тех карточках, что в стопке «да», первые числа — это как раз и есть соответствующие степени двойки (ибо первое число, у которого есть единица в разряде «2^n» в двоичной записи, это и есть это самое 2^n). И понятно, что это делается очень быстро.

(Кстати — в Квантике в 2012 году был «Супергалактический определитель возраста» — см. с. 5; а на Мат. Этюдах есть рассказ с набором для распечатки для чисел от 1 до 100)
Второй набор (тут — для чисел от 1 до 15 или для чисел от 1 до 31) можно применять двумя разными способами:
а) загадывающего фокусник опять спрашивает про каждую из карточек, есть ли на ней загаданное число — но про любую одну из них загадывающий может отказаться отвечать.
б) отвечая, загадывающий имеет право один раз (но не больше) соврать. Но фокусник, в свою очередь, угадывает число, если все ответы были честными, а если отгадывающий соврал, то фокусник просто говорит «не верю».
Опять же, фокус достаточно простой — к двоичному кодированию добавили бит контроля чётности, сумму цифр двоичной записи по модулю 2, и именно его и «спрашивает» последняя карточка.

Соответственно, в варианте а) фокусник смотрит, сколько он уже получил ответов «да», и если их нечётное число, то в карточке, про которую загадывающий отказался отвечать, ответ «да», а если чётное, то «нет». Восстанавливаем ответ на этой карточке (разумеется, проговаривая, «а вот туут ответ должен быть…»), и задача сведена к предыдущей.

А в варианте б) ещё проще — смотрим, сколько карточек в куче «да». Если нечётное число, то говорим «не верю», если чётное, то применяем навыки предыдущего фокуса (главное — не забыть, что бит контроля чётности в двоичную запись не входит; чтобы не путать — степени двойки, которые надо складывать, выделены красным, а на последней карточке красного нет).
Третий набор более интересный. Число опять от 1 до 15 (на самом деле, от 0 до 15), и 7 карточек. В этот раз загадывающий может (но не обязан) один раз соврать — а фокусник всё равно число должен отгадать!

Математика — эти карточки реализуют код Хэмминга [7,4,3], позволяющий исправлять одну ошибку при передаче 4-битового сообщения в 7 битах.
Математические байки
Третий набор более интересный. Число опять от 1 до 15 (на самом деле, от 0 до 15), и 7 карточек. В этот раз загадывающий может (но не обязан) один раз соврать — а фокусник всё равно число должен отгадать! Математика — эти карточки реализуют код Хэмминга [7…
И алгоритм для фокусника такой:
- раскладывать карточки на две стопки в зависимости от ответа, «да» или «нет»
- взять ту стопку, которая меньше (можно любую, но так проще)
- сложить побитово (XOR) трёхбитовые коды (синие, мелким шрифтом внизу) карточек. На самом деле — это применение к коду проверочной матрицы.
- - если получилось 000, то загадывающий не соврал (и можно похвалить!).
- - если получилась какая-то другая строчка, то это и есть код карточки, на которой загадывающий соврал. Находим её, перекладываем её в другую стопку (комментируя, что-де вот в этот ответ не верится!).
- теперь все ответы про карточки правильные
- и задача сведена к первой: первые четыре карточки это обычное двоичное кодирование. Чтобы их выделить, можно или складывать, красные числа в стопке «да», или — если цвет не виден — выделить те карточки, у которых по меньшей мере две единицы в коде.
Готово!
Вот тут Ксавье Карузо реализовал это в виде Java-апплета, угадывающего смайлик по семи ответам на вопросы (я перевёл по строчкам) :
- Ваш смайлик жёлтый? - У него есть галстук-бабочка?
- Он носит очки? - Он показывает язык?
- Он носит шляпу? - Его руки видны?
- Есть ли у него усы?
Математические байки
Третий набор более интересный. Число опять от 1 до 15 (на самом деле, от 0 до 15), и 7 карточек. В этот раз загадывающий может (но не обязан) один раз соврать — а фокусник всё равно число должен отгадать! Математика — эти карточки реализуют код Хэмминга [7…
Теперь можно скрестить код Хэмминга с идеей бита контроля чётности: раньше, честные ответы для любых двух чисел отличались минимум в трёх местах. Именно поэтому мы в принципе могли исправить один ошибочный ответ: если бы нашлись числа, для которых честные ответы отличаются только на двух карточках (А и Б), то получив ответ «на полпути», мы не смогли бы сказать, это первое число, и нам соврали на карточке А, или второе, а нам соврали на карточке Б.

Так вот — давайте добавим восьмую карточку, сумму первых семи ответов по модулю 2 («нечётное ли число ответов «да» среди первых семи?»). Тогда при честных ответах число ответов «да» всегда будет чётным. Поэтому любые два набора честных ответов отличаются в чётном числе мест — так что наименьшее возможное число отличий увеличивается с 3 до 4. И это — пополненный ход Хэмминга [8,4,4]: в серии из 8 бит передаются 4 бита информации, а любые два правильных набора отличаются минимум в 4 местах.
Математические байки
Теперь можно скрестить код Хэмминга с идеей бита контроля чётности: раньше, честные ответы для любых двух чисел отличались минимум в трёх местах. Именно поэтому мы в принципе могли исправить один ошибочный ответ: если бы нашлись числа, для которых честные…
Опять же, можно показывать фокус в двух вариантах:
(а) загадывающий может соврать один или два раза. Если он соврал один раз — фокусник угадывает, если два — просто говорит «не верю».
(б) загадывающий может соврать один раз, и дополнительно — про одну карточку может отказаться отвечать.

Для случая (а) — опять же, раскладываем карточки в зависимости от ответов на две кучки, берём ту, которая меньше (считать проще), и считаем XOR синих кодов (уже четырёхбитовых).
- Если получилось 0000 — загадывающий не соврал ни одного раза (для контроля: так бывает только если ответов «да» — 0, 4 или 8; причём не все наборы с 4 «да» подойдут).
- Если получился код с одной или тремя единицами — это код той карточки, где он соврал; находим её и (комментируя) перекладываем в другую стопку.
- Если получилось что-то ещё — загадывающий соврал два раза, говорим «не верю»

А имея правильные ответы — первые 4 карточки это двоичная запись, так что складываем красные числа (первые на карточках с тремя единицами в коде), попавшие в стопку «да».
Для случая (б) — откладываем карточку C, про которую мы не знаем ответа, в сторону, и смотрим XOR в какой-нибудь (меньшей по размеру) из кучек К.
- Если получилось 0000 — нам не соврали, а C нужно положить в другую кучку K’.
- Если получился код C — нам не соврали, а C нужно положить в ту же кучку K.
- Если ни то, ни другое, но в сумме одна или три единицы, то нам соврали, и эта сумма это код соответствующей карточки. Перекладываем её из одной кучки в другую, и кладём С в K’.
- И наконец, иначе добавляем ещё и код C; должен получиться код карточки, которую нужно переложить из одной кучки в другую. А карточку C кладём в K.

Всё, враньё поймали, разложили ответы правильно, и опять складываем красные числа в стопке «да».
Ну и последний сюжет. Код Адамара — он же код Рида-Мюллера RM(1,4).

Это код типа [16,5,8] — то есть в 16 битах сообщения мы передаём 5 бит информации, а кодовое расстояние равно 8.
Соответственно — загадывающему можно разрешить соврать 3 раза, или 2 раза соврать, а ещё про 3 карточки отказаться отвечать. И всё равно можно будет угадать загаданное число!

На этот раз карточки нужно не разрезать, а оставить одним большим квадратом 4x4. И запастись 20 «жетончиками» (монетками, или ещё чем-нибудь) — чтобы зафиксировать ответы и вести промежуточные вычисления. Можно, конечно, и ручкой отмечать, но тогда карточки одноразовыми будут, а это жалко.

Начало обычное — фокусник спрашивает, на каких из 16 « карточек » (квадратов 4x4) присутствует загаданное число. И загадывающий или фокусник как-то это отмечают: скажем, раскладывают монетки на те квадраты, где ответ « да » (и пустые бумажки на те, где загадывающий промолчал).

А вот дальше — интересное.