Введение
Одним из трех устройств, облегчающих арифметические вычисления, описанных Джоном Нейпером в трактате, является локальная арифметика (лат. arithmeticae localis) – аддитивная (непозиционная) двоичная система счисления, которую Джон Нейпер исследовал как метод вычислений в своем трактате "Рабдология" (1617), как символически, так и на сетке, напоминающей шахматную доску. Терминология Нейпера, основанная на использовании положения счетных элементов на доске для представления чисел, может ввести в заблуждение, поскольку система счисления, по сути, является непозиционной в современной терминологии. Во времена Нейпера большинство вычислений производилось на досках с зарубками или жетонами. Таким образом, в отличие от того, как это может показаться современному читателю, его целью было не использование перемещения счетных элементов на доске для умножения, деления и извлечения квадратного корня, а скорее поиск способа символического вычисления с помощью пера и бумаги. Однако, при воспроизведении на доске, эта новая техника не требовала сложных мысленных проб и ошибок или запоминания переносов (в отличие от вычислений в десятичной системе). Он был так доволен своим открытием, что написал в предисловии:
Location arithmetic (Latin arithmeticae localis) is the additive (non positional) binary numeral systems, which John Napier explored as a computation technique in his treatise Rabdology (1617), both symbolically and on a chessboard like grid. Napier's terminology, derived from using the positions of counters on the board to represent numbers, is potentially misleading because the numbering system is, in facts, non positional in current vocabulary. During Napier's time, most of the computations were made on boards with tally marks or jetons. So, unlike how it may be seen by the modern reader, his goal was not to use moves of counters on a board to multiply, divide and find square roots, but rather to find a way to compute symbolically with pen and paper. However, when reproduced on the board, this new technique did not require mental trial and error computations nor complex carry memorization (unlike base 10 computations). He was so pleased by his discovery that he said in his preface:
Удвоение, удлинение, нечетные и четные числа
Нейпер перешел к остальным арифметическим операциям, а именно к умножению, делению и извлечению квадратного корня, используя счеты, что было распространено в его время. Однако, с развитием микропроцессорных компьютеров, было разработано или возрождено множество применимых алгоритмов, основанных на удвоении и делении пополам. Удвоение выполняется путем прибавления числа к самому себе, что означает удвоение каждой его цифры. Это приводит к расширенной форме, которую при необходимости нужно сократить. Эту операцию можно выполнить за один шаг, заменяя каждую цифру числа на следующую большую. Например, удвоенное значение a – это b, удвоенное значение b – это c, удвоенное значение ab – это bc, удвоенное значение acfg – это bdgh и так далее. Аналогично, умножение на степень двойки сводится к простому преобразованию его цифр. Умножение на c = 4, например, преобразует цифры a → c, b → d, c → e.
Деление пополам – это обратная операция удвоению: каждая цифра заменяется на следующую меньшую. Например, половина bdgh – это acfg. Сразу становится ясно, что это осуществимо только тогда, когда число, которое нужно разделить пополам, не содержит a (или, если число расширено, не содержит нечетное количество a). Другими словами, сокращенное число является нечетным, если оно содержит a, и четным, если не содержит. С помощью этих базовых операций (удвоения и деления пополам) мы можем адаптировать все двоичные алгоритмы, начиная с, но не ограничиваясь, методом бисекции и дихотомическим поиском.
Разделение, остаток
Деление можно выполнить, последовательно вычитая делитель из делимого. Частное – это количество раз, которое делитель можно вычесть из делимого, а остаток – это то, что остается после всех возможных вычитаний. Этот процесс, который может быть очень долгим, можно сделать более эффективным, если вместо делителя вычитать кратные делителя. Вычисления упрощаются, если использовать кратные, являющиеся степенями 2. Фактически, именно это и делается в методе деления в столбик.
Метод Нейпиера
Этот процесс требует добавления счетчиков на абакус (плату) для формирования квадратных фигур. На верхней части страницы 149 представлены схемы, объясняющие этот процесс. Начните с размещения одного счетчика на доске (фактически, он будет установлен на одном из пунктирных квадратов). Добавление трех других счетчиков, расположенных рядом (или с пустыми строками и столбцами между ними и первым размещенным), приведет к образованию другой квадратной фигуры на абакусе. Аналогично, добавление еще пяти счетчиков к этой фигуре (с пустыми строками и столбцами или без них) приведет к образованию еще большего квадрата. Возьмите число, квадратный корень которого необходимо найти, и разместите счетчики вдоль одного края, представляющие его значение. От наибольшего счетчика в этом значении следуйте по диагональным линиям (как ход слона в шахматах) по доске, пока не достигнете квадрата с точкой. Поместите счетчик на этот квадрат. Вычтите значение, представленное этим единственным счетчиком, из исходного числа на краю. Добавьте три (пять, семь – для последующих шагов), чтобы создать квадрат на доске, и вычтите значение добавленных счетчиков из числа на краю, пока число не станет слишком большим для вычитания или на доске не останется места. На доске должен остаться большой квадрат из счетчиков (возможно, с пустыми строками и столбцами между ними). Переместите один счетчик из каждого ряда квадрата на край, и позиции этих крайних счетчиков дадут квадратный корень числа. Непьер приводит пример определения квадратного корня из 1238. Наибольший счетчик находится в позиции 1024, поэтому первый счетчик помещается на точку, найденную при движении вниз по диагонали 1024 (в позиции 32,32). Вычитая это значение (1024) из исходного числа, получаем счетчики в позициях 128, 64, 16, 4 и 2 (= 214). Размещение трех счетчиков на доске для формирования квадрата с первым счетчиком, значение которого все еще можно вычесть из 214, приводит к счетчикам в позициях 32,2; 2,2; и 2,32 (чьи значения равны 64, 4 и 64, которые при вычитании из остатка 214 дают 82). Следующий квадрат, который можно построить из пяти счетчиков, при этом значения этих пяти счетчиков все еще можно вычесть из 82, приводит к счетчикам в позициях 32,1; 2,1; 1,1; 1,2; и 1,32. Сумма значений этих пяти счетчиков равна 69, и при вычитании из 82 остается 13. Поскольку на доске больше нет места, необходимо остановиться. Переместите один счетчик из каждого ряда на край (ряды 32, 2 и 1), и это значение (35) является требуемым квадратным корнем или, по крайней мере, его целой частью (фактическое значение 35.1852). Непьер приводит второй пример вычисления квадратного корня из 2209 (= 47).
added counters from the number in the margin until the number is either too large to be subtracted or there is no space left on the board. You should be left with a large square of counters (perhaps with blank rows and columns between them) on the board. Move one of the counters in each row of the square to the margin and the positions of these marginal counters will yield the square root of the number. Napier provides an example of determining the square root of 1238. The largest counter is in the 1024 position so the first counter is placed on the dot found by moving down the 1024 diagonal (at the 32,32 position). Subtracting this value (1024) from the original number leaves counters at 128,
64, 16, 4 and 2 (= 214). Placing three counters on the board to form a square with the first counter but whose value can still be subtracted from 214, results in counters at positions 32,2; 2,2; and 2,32 (whose values are 64, 4 and 64, which when subtracted
from the remainder of 214 = 82. The next square that can be constructed from five counters, yet the values of those five counters still being capable of being subtracted from 82 results in counters in positions 32,1; 2,1; 1,1; 1.2; and 1,32. The values of these five counters total 69 which when subtracted from 82 leave 13 as a remainder. As there is no more room on the board we have to stop. Move one counter from each row to the margin (rows 32, 2 and 1) and this value (35) is the square root required, or at least the integer part of it (the actual value is 35.1852 ). Napier provides a second example for calculating the square root of 2209 (= 47).