На разных страничках своего сайта я часто упоминал разные системы счисления. В основном, конечно, двоичную. Но было и про четверичную. Кратко упоминал про цифирную литорею, базирующуюся на древнерусской системе счисления – цифири. Этого всего мало и оно было неструктурировано. Поэтому я и решил сделать этот небольшой экскурс-исследование на тему «Каким образом можно использовать системы счисления в играх и головоломках».
Давным-давно, на заре истории, люди почти не умели считать. Один-два-много или один-два-три-много. В некоторых племенах, живущих сейчас, и оставшихся на первобытной стадии развития, именно так и считают до сих пор.
Когда-то и у нас слово «семь» означало приблизительно как "over9000", то есть прям много-много. Не зря оно осело в поговорках и устойчивых выражениях «у семи нянек дитя без глазу», «семь раз отмерь - один отрежь», «семь бед - один ответ», «седьмая вода на киселе», «семеро одного не ждут», «семеро по лавкам», «семь пядей во лбу» и множестве других.
Древние люди были не очень образованы, риторикой и прочими премудростями не владели, поэтому зачастую не могли сказать, о каком числе идёт речь. Но могли показать. В ход шли любые подручные материалы – нужное количество камешков, палочек, зарубок на палке или просто пальцев. Пальцы были всегда с собой и обычно в количестве 10 штук (если повезло). Поэтому со временем стали большие числа считать пятёрками (одна рука), десятками (две руки), некоторые даже двадцатками (по количеству пальцев на руках и ногах).
Долгое время число 40 (видимо, общее число пальцев у продавца и покупателя вместе взятых) оставалось пределом счёта, поэтому и считали сорокАми. А «сорок сороков» – это опять было синонимом «овердох..» «очень много».
Со временем понадобилось считать точнее и более большими числами (извините за тавтологию). Придумали название для десяти десятков (сто), десяти сотен (тысяча), десяти тысяч (тьма), дошли до миллиона, а потом понеслось и дальше.
Число пальцев на двух руках сыграло важную роль в том, что число 10 явилось основой счёта почти во всех цивилизациях. Было бы у нас на руках по 6 пальцев, с высокой вероятностью мы бы пользовались 12-ричной системой счисления (что на самом деле удобнее). Но раз уж 10 - значит 10. Хотя бывало и по-другому.
Ниже перечислены самые известные системы нумераций и счисления, которые использовало человечество:
Некоторые современные популярные системы счисления:
…
Итак, нам нужно придумать, каким образом использовать свойства систем счисления для создания интересных задачек и головоломок.
Пока мне видится несколько подходов:
Приведу пару примеров.
Играем мы в какую-то игру, по дороге попадается такая картинка:
Ну, порадовались мы и пошли дальше. А потом натыкаемся на такое:
Ну это очень похоже на упоминаемую выше «цифирь», хотя и не очень соответствует тогдашним правилам составления чисел. Чтобы «расшифровать», подставляем вместо букв числовые значения:
и получаем: москва = 40+70+200+20+2+1 = 333. Прикольно, правда? :)
Или, например, проходим мы веболомку и видим такую картинку:
Если сразу не придёт в голову, что это римские числа, то на это должны навести пара неявных подсказок из CSS. Во-первых, это написано довольно популярным шрифтом «Times New Roman», а во-вторых, стиль шрифта – курсив, то есть «Italic».
Выходит, это обычное арифметическое выражение, записанное римскими числами, и надо посчитать его результат, чтобы получить ответ. M=1000, I=1, X=10, MIX = 1000+(-1+10) = 1009. C - это 100, D – это 500, CD = -100+500 = 400. Итого: MIX+CD = 1009+400 = 1409. Ну и для кайфа записать ответ римскими же числами. В результате получим: MIX+CD=MCDIX.
Допустим, согласно задаче, нам нужно включить на панели несколько кнопок-тумблеров, чтобы что-то открыть. Кнопок аж 24 штуки. Перебирать все возможные комбинации жизни не хватит. Но у нас есть подсказка – кружка кофе с надписью HEX2BIN. Это значит, что нужно взять какое-то 16-ричное число и перевести его в двоичную запись. Также мы знаем, что тот, кто сидел за этим столом, очень любит кофе.
«Легко увидеть, что…» буквы слова КОФЕ, записанного латинскими буквами COFFEE уж очень напоминают шестнадцатеричные цифры :) COFFEE → C0FFEE16 → 110000 001111 111111 1011102. И мы легко получили нужную нам последовательность.
На компьютере очень часто применяются шестнадцатеричные коды. Их можно увидеть, просматривая содержимое исполняемых файлов, работая с цветами в вебе или графических программах, да много где ещё. Давайте подумаем, какие слова можно составить из шестнадцатеричных цифр. Вы уже видели, как получилось C0FFEE. А можно ли составить ещё слова? А предложение из таких слов?
В шестнадцатеричной системе счисления есть следующие цифры: 0123456789ABCDEF. Составлять слова из десятичных цифр сложновато, а букв вроде бы совсем мало. Но если привлечь технологию LEET, то нам уже будет доступно гораздо большее число «букв». Потому что некоторые цифры напоминают некоторые буквы. Например, вот так:
Итог, у нас получается вот такой набор букв, из которых можно составить свой словарь, а потом уже подумать, какие из этих слов нас могут заинтересовать, чтобы сделать из них задачку:
13 букв, 4 гласные – довольно хороший наборчик. Например, из этого набора можно составить более 2000 английских слов, даже можно одно 10-буквенное: decalogist (DECAl09157). Но нам могут быть более интересны слова покороче, например из 6 букв:
А почему из шести? Потому что если приписать к ним спереди значок #, то получим цвет в формате RGB: