Алгоритм сложения

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

Естественно, смысл сложения сохраняется и для многозначных чисел, но практическое выполнение сложения происходит по особым правилам. Сумму многозначных чисел обычно находят, выполняя сложение столбиком.

Например,

+ 7238

Выясним, каким образом возникает этот алгоритм, какие теоретические положения лежат в его основе.

Представим слагаемые 341 и 7238 в виде суммы степенейдесяти с коэффициентами: 341 + 7238 = (3·102 + 4·10 + 1) + (7·103 + 2·102 + 3·10 + 8).

Раскроем скобки в полученном выражении, поменяем местами и сгруппируем слагаемые так, чтобы единицы оказались рядом с единиц десятки с десятками и т.д. Все эти преобразования можно выполи на основании соответствующих свойств сложения. Свойство ассоциативности разрешает записать выражение без скобок: 3·102 + 4 ·10 + 1 + 7·103 + 2·102 + 3 ·10 + 8.

На основании свойства коммутативности поменяем местами слагаемые: 7·103 + 3·102 + 2·102 + 4·10 + 3·10 + 1 + 8. Согласно свойству ассоциативности, произведем группировку: 7·103 + (3·102 + 2·102) + (4·10 + 3·10) + (1 + 8). Вынесем за скобки в первой выдела группе число 102, а во второй - 10. Это можно сделать в соответствии со свойством дистрибутивности умножения относительно сложения:

7·103 + (3 + 2) ·102 + (4 + 3) ·10 + (1 + 8).

Итак, сложение данных чисел 341 и 7238 свелось к сложению однозначных чисел, изображенных цифрами соответствующих разрядов. Эти суммы находим по таблице сложения: 7·103 + 5·102 + 7·10 + 9. Полученное выражение есть десятичная запись числа 7579.

Видим, что в основе алгоритма сложения многозначных чисел лежат следующие теоретические факты:

- способ записи чисел в десятичной системе счисления;

- свойства коммутативности и ассоциативности сложения;

- дистрибутивность умножения относительно сложения;

- таблица сложения однозначных чисел.

Нетрудно убедиться в том, что в случае сложения чисел «с переходом через десяток» теоретические основы алгоритма сложения будут теми же. Рассмотрим, например, сумму 748 + 436.

Представим слагаемые в виде суммы степеней десяти с соответствующими коэффициентами: (7·102 + 4·10 + 8) + (4·102 + 3·10 +6). Воспользуемся свойствами сложения и дистрибутивностью умножения относительно сложения и преобразуем полученное выражение к такому виду: (7 + 4) · 102 + (4 + 3) · 10 + (8 + 6). Видим, что в этом случае сложение данных чисел также свелось к сложению однозначных чисел, но сумма 7 + 4, 8 + 6 превышают 10 и поэтому последнее выражение не является десятичной записью числа. Необходимо сделать так, чтобы коэффициенты перед степенями 10 оказались меньше 10. Для этого выполним ряд преобразований. Сначала сумму 8+6 представим в виде 1·10 + 4: (7 + 4) ·102 +(4+3) ·10 +(1·10 + 4).

Затем воспользуемся свойствами сложения и умножения и приведем полученное выражение к виду: (7 + 4) ·102 + (4 + 3 + 1) ·10 + 4. Суть последнего преобразования такова: десяток, который получился при сложении единиц, прибавим к десяткам данных чисел. И наконец, записав сумму 7 + 4 в виде 1·10 + 1, получаем: (1 · 10 + 1) ·102 + 8·10 + 4. Последнее выражение есть десятичная запись числа 1184. Следовательно, 748+436=1184.

Выведем алгоритм сложения многозначных чисел в общем виде.

Пусть даны числа: х = аn × 10n + а n – 1 × 10 n – 1 + …+ а1 × 10 + а0 и у = bn × 10n + b n – 1 × 10n – 1 + …+ b1 × 10 + b0, т.е. рассмотрим случай, когда количество цифр в записи чисел х и у одинаково, х + у = (аn × 10n + а n – 1 × 10n – 1 + …+ а1 × 10 + а0) + (bn × 10n + b n – 1 × 10 n – 1 + …+ b1 × 10 + b0) = (аn + bn) × 10n +( а n – 1 + b n – 1 )× 10n – 1 + …( а0 + b0) - преобразо­вания выполнены на основе свойств ассоциативности и коммутативности сложения, а также дистрибутивности умножения относительно сложения. Сумму (аn + bn) × 10n +( а n – 1 + b n – 1 )× 10 n – 1 + …( а0 +b0), вообще говоря, нельзя рассматривать как десятичную запись числа х + у, так как коэффициенты перед степенями 10 могут быть больше 9. Лишь в случае, когда все суммы аk + bk, не превосходят 9, операцию сложения можно считать законченной. В противном случае выбираем наименьшее k, для которого аk + bk ³ 10. Если аk + bk ³ 10, то из того, что 0 £ аk £ 9 и 0 £ bk £ 9, следует неравенство 0 £ аk + bk £ 18 и поэтому аk + bk можно представить в виде аk + bk = 10 + сk, где 0 £ сk £ 9. Но тогда (аk + bk)× 10k = (10 + сk)× 10k = 10k +1 + сk × 10 k. В силу свойств сложения и умножения в (аn + bn) × 10n +(а n – 1 + b n – 1 )× 10n – 1 + …( а0 +b0) слагаемые (а k + 1+ b k+1) × 10k +1+ (аk + bk)× 10k могут быть заменены на (а k + 1+ b k+1 + 1)× 10k +1 + сk × 10k. После этого рассматриваем коэффициенты аn + bn, а n – 1 + b n – 1 , + … а k + 1+ b k+1 + 1, выбираем наименьшее s, при котором коэффициент больше 9, и повторяем описанную процедуру. Через n шагов придем к выражению вида: х + у = (сп + 10) × 10n + …+ с0, где сп¹ 0, или х + у =10n + 1 + сп × 10n + … + с0, и где для всех п выполняется равенство 0 £ сп < 10. Тем самым получена десятичная запись числа х + у.

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

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

1. Записывают второе слагаемое под первым так, чтобы соответст­вующие разряды находилось друг под другом.

2. Складывают единицы первого разряда. Если сумма меньше десяти записывают ее в разряд единиц ответа и переходят к следующему разряду (десятков).

3. Если сумма единиц больше или равна десяти, то представляют ее в виде а0 + b0 = 1 ·10 + с0, где с0 - однозначное число; записываютс0, в разряд единиц ответа и прибавляют 1 к десяткампервого слагаемого, после чего переходят к разряду десятков.

4. Повторяют те же действия с десятками, потом с сотнями и процесс заканчивается, когда оказываются сложенными цифры старших разрядов. При этом, если их сумма больше или равна десяти, то приписываем впереди обоих слагаемых нули, увеличиваем нуль перед первым слагаемым на 1 и выполняем сложение 1 + 0 = 1.

Замечание. В этом алгоритме (как и в некоторых других) для краткости употребляется термин «цифра» вместо «однозначное число, изображаемое цифрой».