- Русско крестьянский способ умножения чисел
- «Русский» способ умножения
- Умножение по методу русских крестьян
- Алгоритм
- Доказательство
- Русский крестьянский способ умножения и двоичная система счисления
- В недавней своей статье об алгоритмах деления и действий вообще я упомянул, что школьные алгоритмы — лишь немногие из кучи, и, в частности, задел русский крестьянский способ умножения. Способ на самом деле уникальный, очень быстрый и точный, особенно, если понимать его суть. Сначала я приведу сам способ, а потом разъясню, на чём он основан. Самое интересное, как всегда, в конце.
- Алгоритм умножения
- Пример
- Преимущества
- Описание работы алгоритма
- Немного об оптимизации
- Классический столбик в двоичной системе счисления
- Старинные способы умножения
- Презентация к уроку
Русско крестьянский способ умножения чисел
«Русский» способ умножения
Вы не можете выполнить умножение многозначных чисел, хотя бы даже двузначных, если не помните наизусть всех результатов умножения однозначных чисел, то-есть того, что называется таблицей умножения. В старинной «Арифметике» Магницкого, о которой мы уже упоминали, необходимость твердого знания таблицы умножения воспета в таких — чуждых для современного слуха — стихах:
Автор этих стихов, очевидно, не знал или упустил из виду, что существует способ перемножать числа и без знания таблицы умножения. Способ этот, не похожий на наши школьные приемы, употребителен в обиходе великорусских крестьян и унаследован ими от глубокой древности. Сущность его в том, что умножение любых двух чисел сводится к ряду последовательных делений одного числа пополам при одновременном удвоении другого числа.
Деление пополам продолжают до тех пор, пока в частном не получится 1, параллельно удваивая другое число. Последнее удвоенное число и дает искомый результат. Нетрудно понять, на чем этот способ основан: произведение не изменяется, если один множитель уменьшить вдвое, а другой вдвое же увеличить. Ясно поэтому, что в результате многократного повторения зтой операции получается искомое произведение:
Однако как поступить, если при этом приходится делить пополам число нечетное?
Народный способ легко выводит из этого затруднения. Надо — гласит правило — в случае нечетного числа откинуть единицу и делить остаток пополам; но зато к последнему числу правого столбца нужно будет прибавить все те числа этого столбца, которые стоят против нечетных чисел левого столбца; сумма и будет искомым произведением. Практически это делают так, что все строки с четными левыми числами зачеркивают; остаются только те, которые содержат налево нечетное число. Приведем пример (звездочки указывают, что данную строку надо зачеркнуть):
Сложив незачеркнутые числа, получаем вполне правильный результат:
На чем основан этот прием?
Обоснованность приема станет ясна, если принять во внимание, что
Ясно, что числа 17, 34 и т. п., утрачиваемые при делении нечетного числа пополам, необходимо прибавить к результату последнего умножения, чтобы получить произведение.
Источник
Умножение по методу русских крестьян
Иногда этот метод называют «крестьянское умножение», иногда «древнеегипетское», иногда «эфиопское», иногда «умножение через удвоение и деление пополам». Некоторым он хорошо известен, некоторым – непонятен, но при этом он достаточно полезен и может использоваться не только для умножения, но и для возведения в степень и расчётов матриц.
Алгоритм
Запишем два перемножаемых числа рядом – они станут заголовками двух столбцов. Третий столбец будет содержать нарастающую сумму.
Если число в левом столбце нечётное, мы добавляем число из правого столбца в нарастающую сумму. Изначально она будет равна нулю.
Затем в левом столбце ниже мы записываем число из заголовка, делённое пополам (с отбрасыванием остатка). 13 / 2 = 6. А во втором столбце мы пишем число, равное удвоению заголовка столбца, 19*2 = 38.
Поскольку число в левом столбце чётное, мы не увеличиваем нарастающую сумму.
Потом мы повторяем процесс деления на два и удвоения. В левом столбце будет 3, это число нечётное, поэтому мы добавляем к 19 76 и получаем 95.
Повторяя процедуру, мы получаем в результате 247.
Среднее между 13 и 19 будет 16
16 ^ 2 = 256
16 – 13 = 3
3 ^ 2 = 9
256 – 9 = 247
Если не закончить работу алгоритма, то в левом столбце будут сплошные нули, и поскольку 0 – чётное число, к нарастающей сумме добавлять ничего не будет нужно. Поэтому, как только мы получаем в левом столбце единицу, в третьем столбце появляется ответ.
Доказательство
Почему это работает? Можно сказать, что это обычное двоичное длинное умножение. Но мы приведём более длинное объяснение, которое будет заодно и более общим.
Обозначим число в левом столбце A, во втором – B, нарастающую сумму – R, а ответ – P. Следовательно
Тогда, если A чётное, то есть k, для которого A=2k. Перепишем уравнение:
Или, что то же самое:
Если мы заменим A половиной его значения, а B – удвоенным значением, и назовём их A’ и B’, то:
То есть, если A чётное, мы уполовиним первое число и удвоим второе, и наше уравнение верно. А если нечётное? Тогда A=2k+1
И опять мы обозначили половину A через A’ и удвоенное B через B’.
Наше уравнение верно, если мы:
- добавили число из второго столбца к нарастающей сумме
- уполовинили первый столбец
- удвоили второй
Видно, что наше уравнение остаётся сбалансированным при выполнении шагов нашего алгоритма.
Когда мы доходим до нуля, то имеем:
Или R=P. Наша нарастающая сумма равна нужному результату.
Обобщение 1: возведение в степень
Попробуем подсчитать 2 13 . При возведении в степень мы перемножаем числа, а не складываем, поэтому мы усовершенствуем наш алгоритм:
заменим сложение умножением
заменим удвоение возведением в квадрат
Нарастающее произведение начинается с 1. 13 – нечётное, поэтому умножаем второй столбец на нарастающее произведение, получая 2. Теперь мы уполовиним 13 и возведём 2 в квадрат.
6 – чётное, не умножаем нарастающее произведение. Уполовиним 6 и возведём в квадрат 4, получим 16.
3 – нечётное, умножаем 16 на наше нарастающее произведение, получим 32. Уполовиним первый столбец и возведём в квадрат второй.
Последний шаг: 1 – нечётное, умножаем 256 на 32, получаем 8192, что и является ответом.
Доказательство этого алгоритма такое же, как и у прошлого, просто теперь наше уравнение выглядит так:
Обобщение 2: матрицы
Но этот алгоритм можно использовать не только для возведения чисел в степень – он работает и для матриц. Наше нарастающее произведение начинается с единичной матрицы, а во второй столбец пишется матрица, чью степень нам надо получить. И всё работает.
Далее идёт функция, написанная на языке Python. Она работает для любой неотрицательной степени, и «базы» любого типа, поддерживающего ассоциативное умножение. Иными словами, она работает для любой коллекции с умножением, являющейся моноидом.
Этого даже не нужно понимать, достаточно знать, что она работает для матриц.
Источник
Русский крестьянский способ умножения и двоичная система счисления
В недавней своей статье об алгоритмах деления и действий вообще я упомянул, что школьные алгоритмы — лишь немногие из кучи, и, в частности, задел русский крестьянский способ умножения. Способ на самом деле уникальный, очень быстрый и точный, особенно, если понимать его суть. Сначала я приведу сам способ, а потом разъясню, на чём он основан. Самое интересное, как всегда, в конце.
Алгоритм умножения
- Первый множитель целочисленно делится на 2 (отбрасывается остаток или дробная часть)
- одновременно с ним второй множитель умножается на 2
- оба результата записываются рядом.
- Если в п.1. получилось число, больше единицы, то снова выполняется п.1. с последней записанной парой.
- Исключаются (вычёркиваются) все пары результатов, где в п.1. получился чётный результат
- суммируются оставшиеся результаты п.2.
Пример
Я покажу только конечную запись:
37 делили на 2, получая последовательно 18 (остаток 1 отбросили), 9, 4 (снова остаток отбросили), 2 и 1. 26 умножали на 2, получая каждый раз: 52, 10, 208, 416, 832. Вычеркнули строки с чётными 18, 4 и 2. Сложили оставшееся
Преимущества
Алгоритм не требует математических навыков кроме сложения. Я уже отмечал, что человек может выполнять только одно действие — сложение.
Алгоритм куда быстрее классического умножения по определению: здесь требуется выполнить всего 5 сложений числа самого с собой, 5 подборов на такое же сложение и 2 сложения «крупных» чисел в конце. Тогда как действую я по определению умножения, мы должны будем 37 складывать 26 раз.
Описание работы алгоритма
В то время, как привычный нам алгоритм умножения «столбиком» основан на разрядном умножении (если назреет необходимость, я более подробно его опишу) в десятичной системе счисления, то крестьянский метод использует закономерности двоичной системы счисления.
Давайте сейчас выполним то же самое, но запись будет в двоичной системе:
Посмотрите, насколько это легко! Целочисленное деление на 2 — это всего лишь «стирание» правой цифры у числа. А умножение на 2 — это всего лишь «дописываение» нуля справа от числа. В самом низу я записал результат сложения всех ярких чисел в правом столбике.
Теперь можно и догадаться, как эта «магия» работает. Посмотрите, оставлены только те строки, в которых первый множитель заканчивается на «1». То есть, если мы начнём разбирать двоичную запись первого множителя по цифрам, то увидим, что каждая единица в этой записи соответствует слагаемому в правом столбике. Умножение — суть многократное сложение. Как я ни пытался этого объяснить в других статьях, получал лишь минусы и гневные комментарии. Можно складывать штуками, можно складывать десятками штук, можно — сотнями. На этом построен алгоритм умножения «столбиком» в школьной (десятичной) математике. А здесь складываются штуками, двойками, четвёрками, восьмёрками и т.д.
Для данного умножения, нам надо число 26 (11010 в двоичной) взять 1 раз, потом ещё четыре раза и затем ещё 32 раза — количество «разов» соответствует разрядам, в которых стоят единицы в первом множителе.
Для любителей строгой математики покажу, как это работает в алгебраической форме:
И ещё два слова о коммутативности. Так как умножение коммутативно, в общем-то, не важно, что и на что мы умножаем. Но в начальной школе мы умножаем пельмени на тарелки, а не тарелки на пельмени (количество предметов на количество раз). В крестьянском методе получилось, что количество раз идёт впереди, именно первый множитель отвечает за количество раз, которое берётся второй. Проблема решается либо применением коммутативности (чаще), либо изменением порядка: делить будем второй множитель, а умножать — первый.
Немного об оптимизации
Сейчас, зная о «двоичной» природе этого алгоритма, мы можем дать рекомендации по оптимизации умножения. Например, вместо умножения длинного на короткий (при использовании определения умножения или «десятичного» метода именно это давало выигрыш в скорости), мы возьмём первым тот множитель, у которого в двоичной записи будет меньше единиц, и сэкономим на финальном сложении.
Вообще, довольно лихо для малограмотных крестьян (читали далеко не все) разработать метод умножения, основанный на двоичной системе счисления, который позволяет обходиться минималистичной записью, а то и исполнением в уме (потому что и писать-то не каждый умел). Такие ли они «малограмотные»? На Руси крестьяне, кстати сказать, неплохо управлялись именно с двоичной системой счисления: практически все действия так или иначе сводились к половинам, четвертинам и т.д. И эти алгоритмы отлично реализовывались на практике и были куда быстрее западных и даже восточных аналогов. Если бы русскому человеку не приходилось выживать в наших климатических условиях и тратить на это все силы, то, возможно, вычислительная техника появилась бы у нас гораздо гораздо раньше, чем Тьюринг что-то там накопировал у Маркова.
А теперь, как и обещал. Интересное:
Классический столбик в двоичной системе счисления
Запишу то же умножение (37*26) классическим «столбиком», но в двоичной системе счисления. И ещё для наглядности махну местами множители, чтобы, раз 37 в методе отвечает за разы, то в «столбике» оно тоже шло вторым:
Умножение в двоичной — всего лишь битовый сдвиг и сложение. Удивлены?
Источник
Старинные способы умножения
Презентация к уроку
Загрузить презентацию (411 кБ)
“Счёт и вычисления – основа порядка в голове”.
Песталоцци
Цель:
- Познакомиться со старинными приемами умножения.
- Расширить знания по различным приемам умножения.
- Научиться выполнять действия с натуральными числами, используя старинные способы умножения .
Содержание.
- Старинный способ умножение на 9 на пальцах
- Умножение методом Ферроля.
- Японский способ умножения.
- Итальянский способ умножения (“Сеткой”)
- Русский способ умножения.
- Индийский способ умножения.
Ход занятия
Актуальность использования приемов быстрого счета.
В современной жизни каждому человеку часто приходится выполнять огромное количество расчётов и вычислений. Поэтому цель моей работы – показать лёгкие, быстрые и точные методы счёта, которые не только помогут вам во время каких-либо расчётах, но вызовут немалое удивление у знакомых и товарищей, ведь свободное выполнение счётных операций в значительной степени может свидетельствовать о незаурядности вашего интеллекта. Основополагающим элементом вычислительной культуры являются сознательные и прочные вычислительные навыки. Проблема формирования вычислительной культуры актуальна для всего школьного курса математики, начиная с начальных классов, и требует не простого овладения вычислительными навыками, а использования их в различных ситуациях. Владение вычислительными умениями и навыками имеет большое значение для усвоения изучаемого материала, позволяет воспитывать ценные трудовые качества: ответственное отношение к своей работе, умение обнаруживать и исправлять допущенные в работе ошибки, аккуратное исполнение задания, творческое отношение к труду. Однако, в последнее время уровень вычислительных навыков, преобразований выражений имеет ярко выраженную тенденцию к снижению, учащиеся допускают массу ошибок при подсчетах, все чаще используют калькулятор, не мыслят рационально, что отрицательно сказывается на качестве обучения и уровне математических знаний учащихся в целом. Одной из составляющих вычислительной культуры является устный счёт, который имеет большое значение. Умение быстро и правильно произвести несложные вычисления “в уме” необходимо для каждого человека.
Старинные способы умножения чисел.
1. Старинный способ умножение на 9 на пальцах
Это просто. Чтобы умножить любое число от 1 до 9 на 9, посмотрите на руки. Загните палец, который соответствует умножаемому числу (например 9 x 3 – загните третий палец), посчитайте пальцы до загнутого пальца (в случае 9 x 3 – это 2), затем посчитайте после загнутого пальца (в нашем случае – 7). Ответ – 27.
2. Умножение методом Ферроля.
Для умножения единиц произведения переумножения перемножают единицы множителей, для получения десятков, умножают десятки одного на единицы другого и наоборот и результаты складывают, для получения сотен перемножают десятки. Методом Ферроля легко перемножать устно двухзначные числа от 10 до 20.
б) 1х4+2х1=6, пишем 6
3. Японский способ умножения
Такой прием напоминает умножение столбиком, но проводится довольно долго.
Использование приема. Допустим, нам надо умножить 13 на 24. Начертим следующий рисунок:
Этот рисунок состоит из 10 линий (количество может быть любым)
- Эти линии обозначают число 24 (2 линии, отступ, 4 линии)
- А эти линии обозначают число 13 (1 линия, отступ, 3 линии)
Теперь нужно сосчитать пересечения линий на всех четырех концах следующим способом:
(пересечения на рисунке указаны точками)
Количество пересечений:
- Верхний левый край: 2
- Нижний левый край: 6
- Верхний правый: 4
- Нижний правый: 12
1) Пересечения в верхнем левом крае (2) – первое число ответа
2) Сумма пересечений нижнего левого и верхнего правого краев (6+4) – второе число ответа
3) Пересечения в нижнем правом крае (12) – третье число ответа.
Получается: 2; 10; 12.
Т.к. два последних числа – двузначные и мы не можем их записать, то записываем только единицы, а десятки прибавляем к предыдущему.
4. Итальянский способ умножения (“Сеткой”)
В Италии, а также во многих странах Востока, этот способ приобрел большую известность.
Например, умножим 6827 на 345.
1. Вычерчиваем квадратную сетку и пишем одно из чисел над колонками, а второе по высоте.
2. Умножаем число каждого ряда последовательно на числа каждой колонки.
т.е.
- 6*3 = 18. Записываем 1 и 8
- 8*3 = 24. Записываем 2 и 4
Если при умножении получается однозначное число, записываем вверху 0, а внизу это число.
(Как у нас в примере при умножении 2 на 3 получилось 6. Вверху мы записали 0, а внизу 6)
3. Заполняем всю сетку и складываем числа, следуя диагональным полосам. Начинаем складывать справа налево. Если сумма одной диагонали содержит десятки, то прибавляем их к единицам следующей диагонали.
5. Русский способ умножения.
Этот прием умножения использовался русскими крестьянами примерно 2-4 века назад, а разработан был еще в глубокой древности. Суть этого способа та:“На сколько мы делим первый множитель, на столько умножаем второй”.Вот пример: Нам нужно 32 умножить на 13. Вот как бы решили этот пример 3-4 века назад наши предки:
- 32 * 13 (32 делим на 2, а 13 умножаем на 2)
- 16 * 26 (16 делим на 2, а 26 умножаем на 2)
- 8 * 52 (и т.д.)
- 4 * 104
- 2 * 208
- 1 * 416 =416
Деление пополам продолжают до тех пор, пока в частном не получится 1, параллельно удваивая другое число. Последнее удвоенное число и дает искомый результат. Нетрудно понять, на чем этот способ основан: произведение не изменяется, если один множитель уменьшить вдвое, а другой вдвое же увеличить. Ясно поэтому, что в результате многократного повторения этой операции получается искомое произведение
Однако как поступить, если при этом приходится делить пополам число нечетное? Народный способ легко выходит из этого затруднения. Надо, — гласит правило, — в случае нечётного числа откинуть единицу и делить остаток пополам; но зато к последнему числу правого столбца нужно будет прибавить все те числа этого столбца, которые стоят против нечетных чисел левого столбца: сумма и будет искомым произведением. Практически это делают так, что все строки с четными левыми числами зачеркивают; остаются только те, которые содержат налево нечетное число. Приведем пример (звездочки указывают, что данную строку надо зачеркнуть):
- 19*17
- 9*34
- 4 *68*
- 2 *136*
- 1 *272
Сложив незачеркнутые числа, получаем вполне правильный результат:
- 17 + 34 + 272 = 323.
6. Индийский способ умножения.
Такой способ умножения использовали в Древней Индии.
Для умножения, например, 793 на 92 напишем одно число как множимое и под ним другое как множитель. Чтобы легче ориентироваться, можно использовать сетку (А) как образец.
Теперь умножаем левую цифру множителя на каждую цифру множимого, то есть, 9х7, 9х9 и 9х3. Полученные произведения пишем в сетку (Б), имея в виду следующие правила:
- Правило 1. Единицы первого произведения следует писать в той же колонке, что и множитель, то есть в данном случае под 9.
- Правило 2. Последующее произведения надо писать таким образом, чтобы единицы помещались в колонке непосредственно справа от предыдущего произведения.
Повторим весь процесс с другими цифрами множителя, следуя тем же правилам (С).
Затем складываем цифры в колонках и получаем ответ: 72956.
Как можно видеть, мы получаем большой список произведений. Индийцы, имевшие большую практику, писали каждую цифру не в соответствующую колонку, а сверху, насколько это было возможно. Затем они складывали цифры в колонках и получали результат.
Заключение
Мы вступили в новое тысячелетие! Грандиозные открытия и достижения человечества. Мы много знаем, многое умеем. Кажется чем-то сверхъестественным, что с помощью чисел и формул можно рассчитать полёт космического корабля, “экономическую — ситуацию” в стране, погоду на “завтра”, описать звучание нот в мелодии. Нам известно высказывание древнегреческого математика, философа, жившего в 4 веке д. н.э.- Пифагора — “Всё есть число!”.
Согласно философскому воззрению этого учёного и его последователей, числа управляют не только мерой и весом, но также всеми явлениями, происходящими в природе, и являются сущностью гармонии, царствующей в мире, душой космоса.
Описывая старинные способы вычислений и современные приёмы быстрого счёта, я попытался показать, что как в прошлом, так и в будущем, без математики, науки созданной разумом человека, не обойтись.
“Кто с детских лет занимается математикой, тот развивает внимание, тренирует мозг, свою волю, воспитывает настойчивость и упорство в достижении цели”. (А.Маркушевич)
Источник