Алгоритм сложения
Сложение однозначных чисел можно выполнить, основываясь на определении этого действия, но чтобы всякий раз не обращаться к определению, все суммы, которые получаются при сложении однозначных чисел, записывают в особую таблицу, называемую таблицей сложения однозначных чисел, и запоминают. Естественно, смысл сложения сохраняется и для многозначных чисел, но практическое выполнение сложения происходит по особым правилам. Сумму многозначных чисел обычно находят, выполняя сложение столбиком. Например, + 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. Замечание. В этом алгоритме (как и в некоторых других) для краткости употребляется термин «цифра» вместо «однозначное число, изображаемое цифрой».
|