Требуется обновление браузера.

Уверены, что понимаете шутку про 10 типов людей?


Просмотров: 4322
18 декабря 2016 года

Предупреждение


Если текст ниже покажется Вам очевидным, то значит Вы не показывали эту шутку достаточному количеству людей. Я, до недавнего времени, тоже считал, что дополнительных пояснений не требуется.

Первое прочтение


Наверное, вы не раз читали шутку про то, каким образом люди делятся на 10 типов. Если нет, то вот её формулировка:

На заметку
Все люди делятся на 10 типов: на тех, кто понимает двоичную систему счисления, и тех, кто - нет.

Среднестатистический пользователь, читая эту шутку, сперва настораживается, прочитав "делятся на десять типов", и краем глаза заметив, что в остаток предложения столь детальное разбиение не уместится. Затем прочитав описание всего двух категорий (образующих универсум), резко осознаёт, что речь шла о 102, то есть 210, или просто о двух категориях людей.

Действительно, если мы будем перечислять двоичных коды последовательно возрастающих чисел, то:

ЧислоДвоичное представление
ноль00
один01
два10
три11
четыре100

В свою очередь, 102=(1*21+0*20)10=2110=210.

Драма


Оторвавшись от монитора, озарённый глубиной шутки пользователь, бросает своему коллеге:

Цитата
- Смотри: "Все люди делятся на десять типов: на тех, кто понимает двоичную систему счисления, и тех, кто - нет".
- Что за ерунда? - недоумевает коллега, продолжая ковыряться в дампе.
- Ты что - ламер? - раздражается первый, в ужасе осознав: с кем он работал всё это время.
- Ты же сказал про десять типов?!
- Там десять - двоичное!!!
- А-а-а-а - растерянно тянет коллега, желая прервать диспут и вернуться к отладке.

Вот тут наш протагонист ошибается: озвучить эту шутку без потери её сути не удастся.

Капитан Очевидность спешит на помощь


Я уже писал заметку о том, что "десятичных чисел" не существует. Число - отдельно, форма его представления - отдельно. Если вы говорите о числе четыре, то запишите его хоть 410, хоть 1002, хоть IV - оно останется четвёркой. Вы же не читаете фразу "в XX веке" как "в хы-хы-том веке"/"в икс-икс-овом веке"? Очевидно, что здесь символы, обычно используемые для обозначения букв, используются для кодирования числа: это ясно из контекста. Возвращаясь к шутке: в формулировке допущена вольность - опущено обозначение системы счисления, что намекает на использование "обычной" десятичной. Дочитав предложение и отыграв роль отказоустойчивого интерпретатора, читающий переосмысливает увиденное число 10 как 102.

Прелесть этой задачи в том, что она сама по себе является тестом на принадлежность к одной из групп, описываемых ею.

Как правильно?


Возможно Вы слышали, как преподаватели поправляют студентов, диктующих бинарный код 1001 как тысяча один, вместо один-ноль-ноль-один или девять (10012=910). Жаргонизмы тысяча один двоичное - верный путь к ошибкам.

В стандарте языка Си++ предусмотрена возможность использования в тексте программы целых литералов в виде, отличном от десятичного представления. Вольностей (в духе рассматриваемой задачи) не допускается: 21 это двадцать один, 021 это семнадцать (218), а 0x21 это тридцать три (2116).

В нетехнической литературе, для верной интерпретации увиденного необходимо опираться на контекст и оформительские средства.


Запись опубликована в категориях:

Цифры и числа  
 

Комментарии

Инкогнито
  Загружаем captcha