Matt Parker, «Humble Pi»

топ 100 блогов green_fr12.01.2024 Matt Parker, «Humble Pi» Matt Parker — это Stand-up Maths. Он когда-то давно рекламировал свою книжку, я пытался её купить в Канаде, но не нашёл — Анечка в итоге нашла в Англии. Это не так книга, которую нужно заказывать в интернете, и уж тем более покупать во Франции (смысла там немного, набор анекдотов), поэтому мне хотелось купить её в реальном мире, создать связь с англоязычной страной.

Я очень люблю чувство юмора Матта, поэтому и книга мне тоже понравилась, конечно же. Начиная с нумерации страниц: нумерация по убывающей, потом, после нуля, на который приходится конец книги, буфер переполняется, и благодарности с библиографией идут с номера 232-1. Индекс тоже «не как у людей» — обычно для каждого термина пишут номера страниц, где он упоминается, здесь так же, но номера не целые, а с дробной частью — уж не знаю, как именно он её определил (доля строк, доля слов, доля символов, доля смысла?).

Несколько смешных эпизодов из книги.

1. В главе про разнообразные факапы с календарями Матт пишет о том, что световой год определён через юлианский. В принципе, логично, можно было вообще сделать 365 или 360 дней. Но выходит красивое сочетание ура-современности (космические корабли бороздят!) и откровенно архаичного календаря (кто его сейчас использует кроме РПЦ и ещё пары таких же церквей?)

По поводу юлианского календаря я наконец-то понял, как получилось, что при его введении настолько облажались. Напомню контекст: Юлий Цезарь вводит календарь с предсказуемым количеством дней в году: их всегда 365, кроме каждого четвёртого года, когда дней 366. В честь Цезаря июль называется июлем. После чего Цезарь скоропостижно отходит от дел, а Август корректирует календарь, потому что при введении календаря облажались и сделали високосным каждый третий год. За эту коррекцию август назвали августом. А я долго не мог понять: ну вот как можно было перепутать «каждый третий» и «каждый четвёртый»?! Легко! Это, говорит Матт, классическая ошибка «включая границу или нет?» Пусть у нас есть годы ABCDEFGH... Предположим, ABC — не високосные, а D — четвёртый по счёту — високосный. Какой год должен быть следующим високосным? D — первый, E — второй, F — третий, значит G. Да, современный человек прекрасно понимает фразу «надо считать с нуля». Или даже «мы уже посчитали D, значит первый год — это E». Но всё-таки становится понятным такая грубая, казалось бы, ошибка.

Для тех, кому эта ошибка всё равно кажется слишком тривиальной, небольшая задача. Уборщик убирает один этаж небоскрёба за один день. Ему нужно убрать с 8 по 12 этажи. Если он будет работать с 8 по 12 декабря, успеет он выполнить поставленную перед ним задачу? Очевидно, успеет. Хорошо, тогда так. Уборщик убирает один этаж не за день, а за час. Задача всё та же: убрать с 8 по 12 этажи. Если он будет работать сегодня с 8 до 12 часов, успеет? Очевидно, не успеет. В чём разница? Именно в том, что в каких-то оборотах речи «с 8 до 12» включает верхнюю границу (12-й день), а в каких-то — не включает (12-й час). Никакой логики нет, нужно просто знать. И не зная, в каких терминах были первые спецификации к юлианскому календарю, нельзя понять, легко ли было их неправильно понять.

Туда же с днём рождения. В этом году мне исполнилось 48 лет, но это был мой 49-й день рождения («если», как пишет Матт, «день своего рождения рассматривать как один из своих дней рождения — крайне сложно с этим спорить!» — я здесь замечу, что это работает с русским и английским языками, но не с французским, где считают не дни, а именно годовые интервалы: anniversaires).

У этой ошибки есть даже своё название OBOE — out by one error.

2. Отличная история Null Island — воображаемого острова с координатами 0 / 0 (к слову об ошибке предыдущего параграфа: по-русски это называется «пересечение экватора с нулевым меридианом», а по-французски «croisement de l’équateur et du Premier méridien» = пересечение экватора с первым меридианом).

Остров придумали, чтобы проще было ссылаться на ошибки в базах данных, когда неизвестные координаты помечают 0 / 0. Я думаю, все сталкивались с аналогичными базами данных (собственно, мой пример со странными датами в Excel появился из-за того, что мы считаем средневзвешенные даты, когда они приходят из разных источников — очевидно, что регулярно появляются даты 99/99/9999, которые могут давать самые разные результаты во время усреднения). Матт рассказывает прекрасные истории реальных людей, которых звали Steve Null, Brian Test, Avery Blank, Jeff Sample, а также множество китайцев с именем и фамилией меньше 3 символов (аналогичную историю рассказывал Matt Parker, «Humble Pi» grave__digger - система поиска требует ввести как минимум три буквы имени). Ну а самый для меня ужас в том, что в США с 1990 года родилось >300 детей, которых родители назвали Abcde.

3. Глава о разных типах данных. Введите ваш номер телефона в Excel — если он начинается с 0 (как все телефоны во Франции), то этот ноль потеряется. Если много цифр, то округлится (старый анекдот: ты помнишь номер телефона Васи? Ну хотя бы приблизительно!) — я наблюдаю эту ошибку прямо сейчас на работе, код компании из 20 символов, и если все они цифры, то Excel показывает код как что-то ×10+19. Хозяйке на заметку: есть набирать, начиная с апострофа, то это значение автоматически будет восприниматься не как число, а как текст (очевидно, это не решение для автоматической обработки данных).

Но как объяснить человеку «не в теме», что такое «число», а что такое «текст»? Почему 2128506 — это не число? Всё просто, говорит Матт. Задайте человеку вопрос о половине. Если для того, чтобы получить половину чего-то, нужно это что-то делить — это число. Если нужно резать — это текст. Половина номера телефона — это его первые цифры (резать), никто в здравом уме не станет делить номер телефона на два.

4. Прекрасная, просто карикатурная история, к чему может привести ошибка триангуляции. Бурили скважину на озере, случайно попали в шахту под этим озером. В эту скважину вылилось всё озеро (шахтёры успели свалить). Шахта была соляная, поэтому вода прекрасно расширила изначальную скважину с нескольких сантиметров диаметра до нескольких сотен метров. Озеро вытекало через канал в Мексиканский залив. Когда вода в озере кончилась, по каналу туда пошла вода из залива — теперь это солёное озеро. По пути вода прихватила 11 барж — теперь они все где-то внутри шахты. Сложно себе даже представить досье этого страхового случая.

5. В главе про комбинаторику Матт рассказывает о рекламе McDonald’s 2002 года, когда они запустили McChoice Menu, в рекламе которого значилось «Одно меню — 40312 возможных вариантов». На них несколько раз подавали в суд за недобросовестную рекламу, но каждый раз в суде McDonald’s выкатывал какие-то нелепые отмазки, вместо того, чтобы признать, что да, они неправильно посчитали количество возможных вариантов (надеюсь, что судья при этом оштрафовал бы их на символический цент). В конечном итоге они предъявили формулу, по которой они считали количество вариантов для меню из N блюд, каждое из которых ты можешь взять или нет: вместо 2^N (и вопроса, можно ли считать вариантом меню «я ничего не взял» или «я взял одну картошку») они считали N! — N (видимо, пытались считать ещё и порядок, в котором ты ешь ингредиенты, и при этом одновременно исключить варианты с одним ингредиентом). Хохма здесь в том, что эту последовательность x_n = n! — n зарегистрировали в энциклопедии последовательностей (Jean-Paul Delahaye регулярно цитирует эту энциклопедию) под названием McCombinations — ей пока что не удалось найти какого бы то ни было разумного применения.

6. В главе про почтовые индексы Матт пишет, что современный британский формат позволяет 1,7 миллиардов разных почтовых индексов. Что чуть больше, чем нужно для Великобритании. Но что позволяет задуматься о системе, где почтовый индекс есть у каждого дома.

В конце концов, подумал я, у нас уже есть какие-то личные публичные идентификаторы, например номер телефона. Почему мы до сих пор возимся с этими стрёмными почтовыми адресами? Понятно, что исторически так сложилось, но сегодня все адреса давно уже читаются роботами, и почта сортируется ими же. Во Франции даже маршрут почтальона, разносящего почту по ящикам, формируется компьютером. Остаётся разве только аргумент, что ошибку в «человеческом» адресе можно исправить — с другой стороны, если в адресе будет всего 5-6 букв и цифр, то и опечаток, может быть, было бы существенно меньше?

7. Одна из регулярно всплывающих в разговоре с коллегами тем — округление в компьютере (да, у меня коллеги — совсем не программисты). В книге шикарный пример, как нужно объяснять эту тему далёкому от IT человеку. В десятичной записи 3 * 1/3 выглядит как 3 * 0,3333333... У компьютера количество знаков ограничено — где-то цепь троек придётся обрезать. Значит и результат будет не 1, а 0,9999999. Я как-то не догадывался приводить примеры в десятичной записи, регулярно пытался перейти на двоичную — и тут же терял слушателя.

В этой же главе прекрасный пример, иллюстрирующий, что нет, не всё так просто. Наберите в Excel формулу «=0,5-0,4-0,1» — он послушно напишет «0». Ровно ноль, никаких погрешностей округления. Теперь наберите «=(0,5-0,4-0,1)*1» — и вы получите что-то вроде 10^-17. То есть, в первом случае Excel каким-то образом (символические вычисления?) понимает, что это не нужно считать, ответ 0. А во втором эта эмпирика у него не включается, он начинает честные вычисления — и получает честную ошибку округления.

8. Классическая шутка про то, как монета может упасть орлом, может решкой, а может встать на ребро. Во-первых, пишет Матт, это реально. См. матч Колумбия — Парагвай в 2016 году. Да, там была трава, в ней такой исход представить себе проще, но тем не менее.

Ок, проверим. Матт взял монетку (да, это была самая толстая монетка, которую он вообще видел — старый британский фунт) и три дня бросал её. 10000 раз бросил, 14 раз она приземлилась на ребро. Как можно не полюбить такого человека? Он вскользь упоминает реакцию других членов своей семьи на это занятие — могу себе представить, как быстро это может задолбать.

9. История, в которую невозможно поверить, но нет, таки правда. В 1982 году в Ванкувере запустили биржевой индекс, стартовое значение 1000. В ноябре 1983 года индекс стоил 525, при том, что никаких кризисов не было, в среднем акции росли. Оказалось, что каждый раз, когда индекс пересчитывался, его значение усекалось до 3 знаков после запятой. Не округлялось, а усекалось — систематическая ошибка вниз. В среднем на половинку от одной тысячной, но индекс обновлялся несколько тысяч раз в день, за месяц набегала ошибка в 25 пунктов, за два года набралось на половину всей стоимости индекса. В ноябре 1983 года индекс пересчитали с 525 до 1099 пунктов. Могу себе представить головную боль программистов, которым нужно было сделать так, чтобы эта разница не считалась прибылью — деноминация без формальной смены номинала.

10. В школе и в институте на уроках английского мы говорили на «градус Цельсия» — degree centigrade. Матт рассказывает, что изначально Цельсий сделал шкалу, где 0 соответствовал температуре кипения воды (нет, это не опечатка), а 100 — температуре замерзания. Через какое-то время шкалу перевернули в привычном нам всем направлении, а саму систему переименовали в centigrade, потому что 100.

Проблема в том, что centigrade уже использовался в научной литературе. Это сотая доля града — единицы измерения угла (да-да, там и градусы тоже. другой старый анекдот: прямой угол — это 90 градусов. сколько это будет в Фаренгейтах?) Поэтому ещё в 1948 году решили отказаться от этого термина в температуре, вернуться к «градусам Цельсия». Я задаюсь лишь вопросом, какого года были наши учебники английского языка?

А в Википедии пишут, что градусы Цельсия — это единственная мера измерения в метрической системе, которая обозначается заглавной буквой. Поэтому, когда вам нужно упомянуть 1/1000 (милли-) градуса Цельсия, следует писать «m°C».

11. В главе об ошибках перехода от одних единиц измерения к другим много такого, над чем уже не хочется смеяться. Но не могу не пересказать историю моста между немецким Лауфенбургом и швейцарским Лауфенбургом (нам её когда-то живущая там Птица рассказывала, я ей не мог поверить). Все обозначения высоты в проекте велись «от уровня моря». В Германии эти слова привязаны к какому-то значению уровня Северного моря. В Швейцарии нет моря, но понятие «от уровня моря» есть, и оно отсылает к морю Средиземному. Эти уровни разные, разница в 27 сантиметров. Строители / архитекторы / инженеры — люди не тупые, они знали об этой разнице. Но вместо того, чтобы в какой-то момент вычесть 27 сантиметров, они прибавили 27 сантиметров — и в момент стыковки обнаружили, что немецкая сторона моста на 54 сантиметра выше швейцарской.

Оставить комментарий

Архив записей в блогах:
   В быту мы без затруднений определяем, что Он - умён, а Тот - глупец. Когда же  СМИ  начинают судить  об известных персонах, то здесь здравого смысла ещё меньше, чем в обиходе. Когда Матвей Ганопольский или Дмитрий Быков ведут ...
Тюльпаны — нежные и грациозные цветы. Большое разнообразие их форм и расцветок помогает флористам создать настоящие шедевры цветочного искусства. Тюльпаны символизируют счастье и удачу. Красные означают страсть, желтые – солнце и процветание, розовые — нежность. Если вы хотите удивить ...
У российской оппозиции нет программы, считает Жерар Депардье «Есть очень умные люди, как Каспаров, но это хорошо для шахмат и все. Но политика ведь намного сложнее», - сказал актёр в интервью телеканалу «Россия-1». По словам Депардье, в ...
"...Ночью подвергались интенсивным обстрелам Славянск (пос.Артема, Целинный, Северный), Николаевка, Краматорск. Много разрушений и раненных среди мирного населения, перебиты газовые трубы. Среди ополчения потерь нет. Утром Краматорск бомбила авиация противника. Результатов пока не знаю - ...
Буду краткой. Вчерашний пост о том, что женщина должна восторгаться мужчиной, вскрыл серьёзную недоработку: автор игнорирует ветхозаветный канон, Песнь ...