Счислитель Куммера
Счислитель Куммера (также аддиатор, арифметическая линейка) — компактная цифровая суммирующая машина предельно простой конструкции, появившаяся в середине XIX века и выпускавшаяся до 1982 года[1]. Представляет собой конструкцию из нескольких зубчатых реек, промаркированных символами ↓, 0…9, ↑ (стрелок может не быть). К счислителю прилагался заострённый металлический штырь, которым и сдвигали рейки.
В простейшем виде счислитель умеет складывать числа, перенос в следующий разряд работает полуавтоматически по принципу «вычти 10−x, перенеси 1». Снизу (или на обратной стороне) счислителя могут стоять прорези для вычитания. Умножение реализуется как многократное сложение. Существуют сложные алгоритмы для деления.
ИсторияПравить
Француз Сезар Казэ[2] в 1707 году придумал рейки, прорези длиной в 10 единиц и метки, указывающие, куда надо вести штырь: вверх или вниз. Перенос в следующий разряд выполнялся вручную. Несмотря на сомнительную полезность, устройство получило определённое распространение.
Изобретение искривлённой прорези, полуавтоматически производящей перенос, приписывается петербургскому учителю музыки и механику-любителю Генриху Куммеру (1846), дальнему родственнику математика Эрнста Куммера. Позднее устройство переизобрёл француз Тронсэ (1889).
Немецкая компания Addiator начала выпускать устройство около 1920 и сделала аддиатор товарным знаком, ставшим нарицательным[3]. На Западе он был популярен, наряду с более дорогой Curta, и даже некоторое время конкурировал с микрокалькуляторами за счёт многократно меньшей цены. К 1961 году было сделано более 5 млн подлинных аддиаторов, самые дорогие из них щеголяли роскошным латунным корпусом[4]. Существовали счислители, предназначенные специально для расчётов в фунтах/шиллингах/пенсах, футах/дюймах/долях дюйма, шестнадцатеричные счислители для программистов[5], гибриды счислителя с логарифмической линейкой: первый умел складывать и вычитать, вторая — умножать и делить.
В СССР устройство также изготовлялось, но не стало таким известным, как русские счёты и «железный Феликс».
Существовали карманные суммирующие машины с полноценным механизмом переноса, они также управлялись штырём. Наиболее распространённые схемы — цепная[6] и дисковая[7].
ИнструкцияПравить
СбросПравить
Если какая-то рейка в положении ↓, переставим её с помощью штыря на любое другое значение. После этого нужно полностью вытянуть ручку вверху счислителя и вернуть её на место.
Существовали компактные счислители — у них не было ручки сброса, взамен рейки высовывались из корпуса. Их надо было задвинуть ладонью.
СложениеПравить
Сбрасываем счислитель.
Набираем слагаемое таким образом: вставляем штырь на шкале сложения напротив соответствующей цифры и ведём его вниз до упора. Индикатор покажет первое слагаемое.
Теперь набираем второе слагаемое с такими дополнениями:
- Если соответствующий промежуток между зубцами белый, ведём штырь, как и раньше, вниз до упора.
- Если промежуток между зубцами красный, ведём штырь вверх, а затем по изгибу. Это приведёт к переносу единицы в следующий разряд.
- Если вы повели штырь вверх, когда нужно вниз, или наоборот, он не дойдёт до конца. В таком случае надо просто, не вынимая штыря из отверстия, довести его до конца в обратную сторону.
- Если штырь дошёл до верха, но не входит в изгиб (в следующем разряде максимум — 9 или ↑, в зависимости от модели), проведём на мешающей рейке от цифры 1 вверх и по изгибу. Если и на ней не получается пройти по изгибу — делаем то же со следующей.
- На многих счислителях есть символы ↑ за девяткой и ↓ перед нулём. Они не мешают считать, но перед прочтением результата их надо нормализовать: провести штырём от цифры 0 вверх и по изгибу (соответственно на шкале вычитания от цифры 0 вниз и по изгибу). Эти символы снижают шансы, что в цепочке сложений потребуется несколько последовательных переносов, дополнительно показывают, что пользователь ошибся и надо вести штырь в другую сторону, а также позволяют работать с отрицательными числами.
Пример: 17 + 25. (Во всех примерах счислитель оснащён символами ↓↑.)
Сбрасываем счислитель. Набираем на верхней шкале 17 — в разряде десятков вставляем штырь около цифры 1 и ведём его до упора вниз, в разряде единиц от семёрки вниз. После этого набираем на верхней шкале 25 — сначала от двойки вниз (на индикаторе 37), затем от пятёрки вверх и по изгибу (на индикаторе 42).
Пример: 7,56 + 1,49
Сбрасываем счислитель. Набираем на верхней шкале 756. Затем набираем на верхней шкале 149 — например, от единицы вниз, от четвёрки вниз, затем от девятки вверх и по изгибу. На индикаторе 8↑5. Проводим во втором разряде от нуля вверх и по изгибу — на индикаторе 905. Ответ: 9,05.
(Если бы мы прибавляли 1,49 начиная с младшего разряда, нам бы не мешали стрелки вверх, и мы бы сразу получили 9,05.)
Пример: 1,99 + 0,05 + 0,08
Сбрасываем счислитель. Набираем на верхней шкале 199. Проводим от пятёрки вверх и по изгибу (на индикаторе 1↑4). Проводим от восьмёрки вверх (на индикаторе 1↑2), но по изгибу уже нельзя — потому в разряде десятков проводим от единицы вверх по изгибу. Получаем ответ 2,12.
ВычитаниеПравить
Уменьшаемое набирается, как и раньше, на шкале сложения.
Снизу (или на обратной стороне устройства) есть шкала вычитания. Именно на этой шкале набирается вычитаемое, таким же образом: если штырь попадает на красное деление, ведём его вниз и по изгибу; если на белое — то вверх до упора.
Если в результате расчёта одна из реек оказалась в положении ↓, «вычтем» 0, проведя штырём вниз и по изгибу. Если в положении ↓ оказался верхний разряд — результат отрицателен. Хоть мы и не можем прочитать результат, счислитель его помнит, и как только сумма станет положительной, мы снова сможем её прочитать.
Иногда делают и индикатор отрицательных чисел: показаниям ↓, 0, 1…9, ↑ на основном индикаторе соответствуют ↓, ↓, 9…1, 0 в последнем разряде и −, 9, 8…0, ↑ в остальных. Чтобы прочесть отрицательное число, нужно избавиться от всех ↓ и минусов в середине/конце числа, проведя штырём от 0 вниз и по изгибу.
На шестнадцатеричном счислителе часто требуется провести вычитание по компьютерным правилам: 5 − 7 = FFFE. Результат этой операции смотрят на основном индикаторе, физически и/или мысленно избавившись от всех стрелок ↓.
Пример: 6,34 − 8,54 + 5,36
Сбрасываем счислитель. Набираем 634. На шкале вычитания набираем 854: от 8-ки вниз по изгибу, от 5-ки вниз по изгибу, от 4-ки вверх. На верхнем индикаторе ↓780. На нижнем — соответственно −21↓. Проведя вниз от 0 и по изгибу, получим ↓77↑ сверху и −220 снизу — промежуточный ответ −2,2.
Прибавив 5,36 по обычным правилам, получаем 3,16.
Умножение и делениеПравить
Производятся обычными для счётов и суммирующих машин методами — многократным сложением и вычитанием. Например, чтобы умножить 123 на 456, надо добавить 45600 один раз, 4560 дважды и 456 трижды.
Чтобы делить 156:21, из 156000 многократно вычитаем 21000, затем 2100… Получив остаток меньший, чем 21, надлежащим образом округляем результат и ставим десятичную запятую: 156000:21 = 7428 (ост.12), и 156:21 ≈ 7,429.
Очень много приёмов упрощённого умножения и деления описано в статье Счёты.
Два приёма для деления.
- Если нет бумаги и единственное запоминающее устройство — освободившиеся рейки счислителя, иногда приходится записывать делимое с ведущим нулём, чтобы рейки освобождались по мере получения цифр частного. Записываем оба числа, выровняв по верхнему разряду. 156:21 — 156 < 210, потому ведущий ноль не нужен, и начинаем расчёт с 156000. 456:21 — 456 > 210, и начинаем с 045600.
- Запомнив трёх- или четырёхкратный делитель (21·4 = 84 или 21·3 = 63), можно сэкономить на вычитаниях — в среднем 2,1 вычитания на цифру частного, максимум 4 (вместо 4,5 и 9).
ТеорияПравить
Сначала рассмотрим счислитель без символов ↑↓. Он представляет собой механический десятичный сумматор. Длина щели ровно 10 единиц, и если довести штырь, например, от 6-ки до самого низа, мы автоматически прибавляем к сумматору 6. Если же провести от 6-ки до верха — мы вычитаем 4. До верха и по изгибу — −4+10, то есть прибавить 6 с переносом.
Такая схема переноса неполная и не может совершить перенос в двух и более разрядах: 199 + 1 = 200. Взамен она застревает при попытке увеличить 90 на 10, и пользователь должен своими силами вычесть 90 и прибавить 100 — то есть провести от 1 вверх и по изгибу.
Отрицательные числа хранятся дополнительным кодом: 9999 = −1, 9998 = −2.
Более прогрессивные счислители добавляют две псевдоцифры: ↑ = 10, ↓ = −1. Чтобы нормализовать эти цифры, надо вычесть 10 в одном разряде и прибавить в другом — то есть провести от 0 и по изгибу. Чтобы превратить прямой код −1 в дополнительный 9999, надо взять модуль, вычесть единицу и инвертировать все цифры — отсюда такое устройство индикатора отрицательных чисел. И здесь примитивная схема переноса оказывается очень кстати, ведь запись 0↓98 — это действительно отрицательное число: −100 + 98 = −2.
ПримечанияПравить
- ↑ Addiator Addfeet Junior (неопр.). Дата обращения: 27 октября 2018. Архивировано 4 октября 2018 года.
- ↑ History of Computers and Computing, Mechanical calculators, 18th century, Caze (неопр.). Дата обращения: 21 октября 2018. Архивировано 3 июля 2018 года.
- ↑ Addiator Arithma | American Stationer (неопр.). Дата обращения: 13 октября 2018. Архивировано 13 октября 2018 года.
- ↑ Popular Science - Google Книги (неопр.). Дата обращения: 14 октября 2018. Архивировано 14 октября 2018 года.
- ↑ The Hexadat base 16 mechanical calculator for computer programmers | Calculating (неопр.). Дата обращения: 13 октября 2018. Архивировано 13 октября 2018 года.
- ↑ Golden Gem (неопр.). Дата обращения: 27 октября 2018. Архивировано 4 октября 2018 года.
- ↑ Addometer (неопр.). Дата обращения: 27 октября 2018. Архивировано 4 октября 2018 года.