Введение

Одним из трех устройств, облегчающих арифметические вычисления, описанных Джоном Нейпером в трактате, является локальная арифметика (лат. arithmeticae localis) – аддитивная (непозиционная) двоичная система счисления, которую Джон Нейпер исследовал как метод вычислений в своем трактате "Рабдология" (1617), как символически, так и на сетке, напоминающей шахматную доску. Терминология Нейпера, основанная на использовании положения счетных элементов на доске для представления чисел, может ввести в заблуждение, поскольку система счисления, по сути, является непозиционной в современной терминологии. Во времена Нейпера большинство вычислений производилось на досках с зарубками или жетонами. Таким образом, в отличие от того, как это может показаться современному читателю, его целью было не использование перемещения счетных элементов на доске для умножения, деления и извлечения квадратного корня, а скорее поиск способа символического вычисления с помощью пера и бумаги. Однако, при воспроизведении на доске, эта новая техника не требовала сложных мысленных проб и ошибок или запоминания переносов (в отличие от вычислений в десятичной системе). Он был так доволен своим открытием, что написал в предисловии:

Удвоение, удлинение, нечетные и четные числа

Нейпер перешел к остальным арифметическим операциям, а именно к умножению, делению и извлечению квадратного корня, используя счеты, что было распространено в его время. Однако, с развитием микропроцессорных компьютеров, было разработано или возрождено множество применимых алгоритмов, основанных на удвоении и делении пополам. Удвоение выполняется путем прибавления числа к самому себе, что означает удвоение каждой его цифры. Это приводит к расширенной форме, которую при необходимости нужно сократить. Эту операцию можно выполнить за один шаг, заменяя каждую цифру числа на следующую большую. Например, удвоенное значение 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).