§ 1. Проверка вычислений

We use cookies. Read the Privacy and Cookie Policy

§ 1. Проверка вычислений

Как мы уже упоминали, создателем теории сравнений был немецкий математик Карл Фридрих Гаусс. Его знаменитая работа по теории чисел «Арифметические исследования» появилась в 1801 году, когда ему было 24 года. В первых главах этой книги рассказывается о теории сравнений. Однако здесь следует упомянуть, что следы теории сравнений можно обнаружить за несколько столетий до Гаусса. Некоторые из них присутствуют в древних правилах проверки арифметических вычислений. Они составляют существенную часть инструкции по арифметическим операциям эпохи Ренессанса. Некоторые из них используются до сих пор, а из всего того, что нам известно об их происхождении, можно сказать, что их корни лежат в античности.

Мы не знаем, каким образом эти правила были впервые введены, однако попытаемся указать один из возможных путей, на котором они могли быть открыты. Вернемся к временам счетных досок. На таком абаке каждая цифра в числах, которые участвовали в вычислениях, обычно выкладывалась с помощью фишек, камней, палочек или орехов, причем каждая группа отмечала количество единиц, десятков, сотен и т. д. в соответствии с местом их нахождения. В нашей десятичной системе число

N = an10n + an-110n-1 +… + a2102 + a110 + a0 = (an, an-1…, a2, a1, a0)10 (8.1.1)

потребовало бы для своей записи

SN = an + an-1 +… + а2 + а1 + а0 (8.1.2)

фишек. Это число мы называем суммой цифр числа N.

Теперь предположим, что мы хотим выполнить на доске простое действие, а именно: сложить два числа N и M. Тогда мы должны отметить на доске также второе число

M = (bm, bm-1, …, b2, b1, b0)10,

у которого на тех же линиях лежит

SM = bm + bm-1 + … + b2 + b1 + b0

складываемых фишек. На некоторых линиях может теперь лежать больше, чем по 9 фишек. Операция, необходимая для нахождения числа N + М, состоит в замене десяти фишек на одной линии одной фишкой на следующей линии. И так нужно продолжать до тех пор, пока такой процесс возможен. На каждом шаге заменяют десять фишек одной-единственной и таким образом происходит потеря девяти фишек на доске. Итак, мы видим, что если сложение выполнено правильно, то число фишек, остающихся на доске, должно удовлетворять условию

SN+M ? SN + SM (mod 9), (8.1.3)

т. е. количество фишек, находящихся на доске, должно отличаться от первоначального общего числа фишек на число, кратное 9. Эта проверка (8.1.3) до сих пор сохранила свое старое название «выбрасывание девяток».

После того как это правило было открыто, не составило труда заметить, что оно также применимо при сложении нескольких чисел, при вычитании и при умножении; в последнем случае, в соответствии с (8.1.3),

SM SNSMN (mod 9). (8.1.4)

Теоретическое доказательство этих правил является легкой задачей при использовании сравнений. Очевидно, что

1 ? 1, 10 ? 1, 102 ? 1, 103 ? 1… (mod 9); (8.1.5)

таким образом, из (8.1.1) и (8.1.2) мы делаем вывод, что

N ? SN (mod 9).    (8.1.6)

Поэтому из правил сравнений, которые мы установили в § 3 главы 7, ясно, что

SN ± SM ? N ± М ? SN ± M,

SN  SM = M ? SNM (mod 9).

Правило «выбрасывания девяток» чаще всего применяется к умножению. Возьмем в качестве примера числа

M = 3119, N = 3724 (8.1.7)

и их произведение

М  N = 11 614 156.

Это вычисление не может быть верным, так как если бы оно было верным, то мы имели бы, что

M ? SM ? 3 + 1 + 1 + 9 ? 5 (mod 9),

N ? SN ? 3 + 7 + 2 + 4 ? 7(mod 9)

и MN ? SMN ? 1 + 1 + 6 + 1 + 4 + 1 +5 + 6 ? 7 (mod 9).

Но 5 • 7 = 35 ? 7 (mod 9).

В действительности же это произведение равно MN = 11 615 156.

В средневековых школах ученики имели строгий наказ обязательно проводить проверку своих упражнений. Поэтому в рукописях, сохранившихся с тех времен, мы видим множество знаков, похожих на эмблему из скрещенных костей. Такой знак для нашего примера выглядит так, как на рис. 18.

Рис. 18.

Здесь числа 5 и 7, лежащие слева и справа, означают остатки чисел М и N (по модулю 9), а верхнее число 8 является остатком вычисленного произведения MN. Оно должно проверяться с помощью произведения остатков начальных чисел, записываемого в нижней части.

Здесь

5 • 7 = 35 ? 8 (mod 9).

Рис. 19.

Такая проверка «скрещенных костей» была совершенно обычной в ранних изданиях учебников арифметики (рис. 19), например, в английских учебниках семнадцатого и восемнадцатого веков. Конечно, существует возможность, что вычисления содержат ошибку, необнаруживаемую методом «выбрасывания девяток», но тогда мы знаем, что ошибка является «ошибкой по модулю 9».

Ясно, что и при другом основании системы счисления можно использовать простейшую проверку. Для числа

M = mnbn + mn-1bn-1 +… + m2b2 + m1b + m0,

записанного при основании b, как и в (8.1.5), мы имеем

1 ? 1, b ? 1, b2 ? 1… (mod (b — 1));

поэтому, как и раньше,

М ? SM = mn + mn-1 +… + m2 + m1 + m0 (mod (b — 1)),

и проверочное правило остается прежним.

Это, по-видимому, совершенно тривиальное замечание применимо даже в нашей обычной десятичной системе. Мы упоминали в § 5 главы 7, что если мы разобьем цифры десятичного числа на группы по три, то тогда эта группировка может рассматриваться как представление числа при основании b = 103 = 1000. Аналогично, если группировать цифры в пары, то это соответствует представлению числа при основании b = 102 = 100.

Рис. 20.

Взяв числа 3119 и 3724 вновь в качестве примера и записав

M = 31 19, N = 37 24, MN = 11 61 51 56,

мы находим

M ? 31 + 19 = 50 (mod 99), N ? 37 + 24 = 61 (mod 99),

MN ? 11 +61+ 51+56 = 179 ? 80 (mod 99).

Здесь наша проверка «скрещенных костей» будет такой, как на рис. 20, потому что, как легко видеть, 50 • 61 ? 80 (mod 99).

Эта проверка более эффективна, чем «выкидывание девяток», потому что модули в этом случае гораздо больше и вероятность, что ответ будет правильным, соответственно гораздо больше. Другими словами, «ошибка по модулю 99» менее вероятна, чем «ошибка по модулю 9».