Бруски Иоффе — множительный инструмент на основе теоремы Слонимского
В XIX веке существовали интересные инструменты для умножения, построенные на основе теоремы Слонимского. Это «Снаряд для умножения» Слонимского и бруски Иоффе. Эта статья посвящена второму из них, предложенному в 1881 году Гиршем Залмановичем Иоффе (вариант — Иофе).
Материалы по этому инструменту в рунете — очень скудны, тем не менее я, как мне кажется, сумел восстановить их внешний вид. В любом случае, приложенный мной ниже вариант близок к оригиналу и пригоден для использования по назначению.
Цель написания статьиЭта статья для тех, кто, так же, как и я, интересуется историей вычислительной техники. Когда я писал статью [3] о принципе построения таблицы Слонимского и использования её для умножения, глаз у меня замылился и я не уделил должного внимания, так сказать, материальной части. Кроме того, тогда у меня не было нужных зацепок для того, чтобы восстановить внешний вид брусков.
Поэтому, когда меня спросили о практической стороне вопроса, и у меня появились для этого зацепки, я решил восстановить внешний вид брусков Иоффе и написать о них статью.
Почему местом размещения статьи выбран ГиктаймсСтатья посвящена хоть и древней, но всё-таки вычислительной технике. Следовательно, подходит для Хабра по тематике, а хаб «История IT» находится, как известно, на Гиктаймсе. Гиктаймс хорошо индексируется, а я хочу, чтобы тому, кто заинтересуется этим счётным инструментом, было легко найти информацию по нему.
Назначение и описаниеБруски Иоффе предназначены для быстрого составления таблицы произведений некоторого заданного числа на ряд чисел от 2 до 9. Для этого на каждой грани каждого бруска написан столбец цифр, а искомая таблица образуется в результате складывания нескольких брусков вместе в нужном порядке.
Вот что удалось нарыть в Интернете:
Жаль, что второго источника не было у меня, когда я вскрывал алгоритм работы с таблицей Слонимского. Там же была картинка, иллюстрирующая принцип умножения:
Эта картинка послужила ключом к пониманию того, что же было нарисовано на брусках.
ТеорияТаблица Слонимского (более подробно описана мной в статье [3]) состоит из 280 столбцов, как доказал Слонимский, этого достаточно, чтобы сложить из них (столбцов) табличку с произведениями любого заданного числа на ряд одноразрядных чисел 0. 9.
Для выбора нужного столбца служит «ключ» — у Иоффе это пара «римская цифра»-«латинская буква», и цифра умножаемого числа. Иоффе использовал для ключа семь чисел, записываемых римскими цифрами, и четыре буквы — т.е. всего ключей 28. А цифр в десятичной системе, как известно, 10.
Как видно на картинке выше, в каждом столбце Иоффе написал один ключ наверху, а другой ключ — внизу. Для удобства назовём их верхним и нижним ключами. Верхний ключ служит для идентификации самого столбца, а нижний — для подбора столбца для следующего разряда. Кроме того, у столбца наверху есть номер — это множимая цифра, она тоже служит для идентификации столбца.
Алгоритм можно описать как автоматный, где входной строкой является умножаемое число, читаемое справа налево (от младших разрядов к старшим), а состоянием является ключ предыдущего столбца. На каждом этапе нам нужно найти столбец верхний ключ которого равен нижнему ключу предыдущего столбца, а номер — очередной входной цифре. Начальным состоянием является ключ I-A, заключительным — тоже I-A, при условии, что число прочитано полностью. Чтобы не было сюрпризов, к числу стоит дописать ведущий ноль.
ПрактикаТеперь то же самое на пальцах и на брусках. Гирш Залманович сгруппировал столбцы по 4 на гранях своих брусков, а сами бруски — по 7 в коробки. Вышло 10 коробок. Нетрудно догадаться, что номер коробки должен быть одновременно номером всех столбцов в ней. Бруски в коробках могут иметь 7 номеров — очевидно, это и есть смысл римской цифры. Дальше, 4 буквы, как следует из описания, обозначают четыре грани бруска.
На картинке из источника [2] сложена табличка умножения числа 325 на ряд 2. 9. Как я и советовал, к числу для профилактики приписан ведущий ноль. Повторю картинку, чтобы не скроллить:
Смотрим в обратном порядке: мы должны последовательно найти столбцы для цифр 5, 2, 3, 0. Начинаем мы из состояния I-A.
Берём из коробки 5 брусок I и кладём его стороной A. Читаем его нижний ключ: I-C. Наш мысленный автомат переходит в состояние I-C.
Берём из коробки 2 брусок I и кладём его слева от предыдущего стороной C. Читаем его нижний ключ: I-B.
Берём из коробки 3 брусок I и кладём его стороной B. Читаем его нижний ключ: II-B.
Берём из коробки 0 брусок II и кладём его стороной B. Число у нас кончилось, проверяем нижний ключ последнего бруска: I-A, что и требовалось доказать.
Приложение:В приложенном файле каждая четвёрка столбцов — это развёртка одного бруска. В горизонтальных группах — семёрки брусков для одной коробки.