Умножение метода сетки
![]() | Примеры и перспективы в этой статье касаются главным образом Соединенных Штатов и не отражают мировую точку зрения на этот вопрос . ( февраль 2017 г. ) |
Метод сетки (также известный как метод коробки ) умножения — это вводный подход к вычислениям многозначного умножения, в которых используются числа больше десяти. Поскольку его часто преподают в математическом образовании на уровне начальной или начальной школы , этот алгоритм иногда называют методом начальной школы. [1]
По сравнению с традиционным длинным умножением , метод сетки отличается четким разбиением умножения и сложения на два этапа и меньшей зависимостью от разряда.
Хотя умножение по сетке менее эффективно , чем традиционный метод, оно считается более надежным , поскольку дети с меньшей вероятностью совершают ошибки. Большинство учеников продолжат изучать традиционный метод, как только освоят метод сетки; но знание метода сетки остается полезным «запасным вариантом» на случай путаницы. Также утверждается, что, поскольку в наши дни любой, кто много умножает, будет использовать карманный калькулятор, эффективность сама по себе менее важна; в равной степени, поскольку это означает, что большинство детей будут реже пользоваться алгоритмом умножения, им полезно ознакомиться с более явным (и, следовательно, более запоминающимся) методом.
Использование метода сетки стало стандартом в математическом образовании в начальных школах Англии и Уэльса с момента введения Национальной стратегии по математике с ее «часом счета» в 1990-х годах. Его также можно найти в различных учебных программах в других местах. По сути, тот же подход к расчетам, но без явного расположения сетки, также известен как алгоритм частичных произведений или метод частичных произведений .
Расчеты [ править ]
Вводная мотивация [ править ]
Метод сетки можно использовать, подумав о том, как сложить количество точек в регулярном массиве, например, количество квадратов шоколада в плитке шоколада. По мере того, как размер вычислений становится больше, становится легче начать считать десятками; и представить расчет в виде прямоугольника, который можно разделить, а не рисовать множество точек. [2] [3]
На самом простом уровне учащихся можно попросить применить этот метод к вычислению, например, 3 × 17. Разбив («разделив») 17 на (10 + 7), это незнакомое умножение можно представить как сумму двух простых умножения:
× 10 7 3 30 21
итак 3×17 = 30 + 21 = 51.
Это структура «сетка» или «ящики», которая дала название методу умножения.
Столкнувшись с немного большим умножением, например 34 × 13, ученикам можно сначала предложить также разбить его на десятки. Итак, разложив 34 как 10 + 10 + 10 + 4 и 13 как 10 + 3, можно представить произведение 34 × 13:
× 10 10 10 4 10 100 100 100 40 3 30 30 30 12
Суммируя содержимое каждой строки, становится очевидным, что окончательный результат расчета равен (100 + 100 + 100 + 40) + (30 + 30 + 30 + 12) = 340 + 102 = 442.
Стандартные блоки [ править ]
Как только учащиеся освоятся с идеей разделения всего произведения на вклады из отдельных ячеек, естественным шагом станет группировка десятков вместе, так что вычисление 34 × 13 становится
× 30 4 10 300 40 3 90 12
давая дополнение
300 40 90 + 12 ———— 442
поэтому 34 × 13 = 442.
Это наиболее распространенная форма расчета сетки. В таких странах, как Великобритания, где преподавание метода сетки является обычным, ученики могут тратить значительный период времени, регулярно проводя расчеты, подобные приведенным выше, пока метод не станет полностью удобным и знакомым.
Большие числа [ править ]
Метод сетки напрямую распространяется на вычисления, включающие большие числа.
Например, чтобы вычислить 345 × 28, ученик мог построить сетку с помощью шести простых умножений.
× 300 40 5 20 6000 800 100 8 2400 320 40
чтобы найти ответ 6900+2760=9660.
Однако на этом этапе (по крайней мере, в стандартной современной педагогической практике Великобритании) ученикам может начать предлагаться производить такие вычисления, используя традиционную форму длинного умножения, без необходимости составлять сетку.
Традиционное длинное умножение может быть связано с умножением по сетке, в котором только одно из чисел разбивается на десятки и части единиц, которые умножаются отдельно:
× 345 20 6900 8 2760
Традиционный метод в конечном итоге быстрее и гораздо компактнее; но для этого требуются два значительно более сложных умножения, с которыми учащиеся поначалу могут столкнуться с трудностями. [ нужна цитата ] . По сравнению с методом сетки традиционное длинное умножение может быть более абстрактным. [ нужна цитата ] и менее явно ясно [ нужна цитата ] , поэтому некоторым ученикам труднее запомнить, что нужно делать на каждом этапе и почему. [ нужна цитата ] . Поэтому ученикам можно на протяжении определенного периода времени предлагать использовать более простой метод сетки наряду с более эффективным традиционным методом длинного умножения в качестве проверки и запасного варианта.
Другие приложения [ править ]
Дроби [ править ]
Хотя метод сетки обычно не преподается как стандартный метод умножения дробей , его можно легко применить в простых случаях, когда легче найти продукт, разбив его на части.
Например, расчет 2 1 / 2 × 1 1/2 можно сетки задать методом
× 2 1 / 2 1 2 1 / 2 1 / 2 1 1 / 4
найти, что полученное произведение равно 2 + 1 / 2 + 1 + 1 / 4 = 3 3 / 4
Алгебра [ править ]
Метод сетки также можно использовать для иллюстрации умножения произведения биномов , например ( a + 3)( b + 2), стандартной темы начальной алгебры (хотя ее обычно не встречали до средней школы ):
× а 3 б аб 3 б 2 22а 6
Таким образом ( а + 3)( b + 2) = ab + 3 b + 2 a + 6.
Вычисление [ править ]
В 32-битных процессорах обычно отсутствует инструкция для умножения двух 64-битных целых чисел. Однако большинство процессоров поддерживают инструкцию «умножить с переполнением», которая принимает два 32-битных операнда, умножает их и помещает 32-битный результат в один регистр, а результат переполнения — в другой, что приводит к переносу. Например, к ним относятся umull
инструкция, добавленная в набор инструкций ARMv4t или pmuludq
инструкция, добавленная в SSE2 , которая работает с младшими 32 битами регистра SIMD , содержащего две 64-битные полосы.
На платформах, поддерживающих эти инструкции, используется слегка модифицированная версия метода сетки. Отличия заключаются в следующем:
- Вместо того, чтобы работать с числами, кратными 10, они работают с 32-битными целыми числами.
- Вместо того, чтобы старшие биты умножались на десять, они умножаются на
0x100000000
. Обычно это делается либо сдвигом влево на 32, либо помещением значения в определенный регистр, который представляет старшие 32 бита. - Любые значения, лежащие выше 64-го бита, обрезаются. Это означает, что умножать старшие биты не требуется, поскольку результат будет смещен за пределы 64-битного диапазона. Это также означает, что для более высоких кратных требуется только 32-битное умножение.
× б а д - объявление с До нашей эры и
Это будет процедура в C:
#include <stdint.h>
uint64_t Multiple ( uint64_t ab , uint64_t cd )
{
/* Эти сдвиги и маски обычно неявны, поскольку 64-битные целые числа
* часто передаются как два 32-битных регистра. */
uint32_t b = ab >> 32 , a = ab & 0xFFFFFFFF ;
uint32_t d = cd >> 32 , c = cd & 0xFFFFFFFF ;
/* умножение с переполнением */
uint64_t ac = ( uint64_t ) a * ( uint64_t ) c ;
uint32_t high = ac >> 32 ; /* переполнение */
uint32_t low = ac & 0xFFFFFFFF ;
/* 32-битное умножение и сложение старших битов */
high += ( a * d ); /* добавить объявление */
high += ( b * c ); /* добавляем bc */
/* умножаем на 0x100000000 (с помощью сдвига влево) и добавляем к младшим битам двоичную или. */
return (( uint64_t ) high << 32 ) | низкий ;
}
Это будет процедура сборки ARM:
умножить
@ a = r0
@ b = r1
@ c = r2
@ d = r3
push { r4 , lr } @ резервное r4 и lr в стек ,
umull r12 , lr , r2 : r0 @ умножить r2 и r0 , сохранить результат в копирование r12 и переполнение в lr
mla r4 , r2 , r1 , lr @ умножаем r2 и r1 , добавляем lr и r0 сохраняем в r4
mla r1 , r3 , r0 , r4 @ умножаем r3 и , и добавляем r4 The сохраняем в r1
@ значение смещается , влево неявно поскольку старшие
@ биты битного числа 64 - целого возвращаются в r1 .
mov r0 , r12 @ Устанавливаем младшие биты возвращаемого значения r12 в из ( ac )
pop { r4 , lr } @ восстанавливаем r4 и lr соответственно стека
bx lr @ возвращаем младшие старшие и биты в r0 и r1
Математика [ править ]
Математически способность разбивать умножение таким способом известна как распределительный закон , который можно выразить в алгебре как свойство, что a ( b + c ) = ab + ac . Метод сетки использует свойство распределения дважды для расширения продукта: один раз для горизонтального фактора и один раз для вертикального фактора.
Исторически расчет сетки (немного измененный) был основой метода, называемого решеточным умножением , который был стандартным методом многозначного умножения, разработанным в средневековой арабской и индуистской математике. Решетчатое умножение было введено в Европу Фибоначчи в начале тринадцатого века вместе с самими арабскими цифрами; хотя, как и в случае с цифрами, предложенные им способы вычислений поначалу не прижились. Кости Непера были вспомогательным средством для расчетов, введенным шотландцем Джоном Непером в 1617 году для облегчения расчетов методом решетки.
См. также [ править ]
Ссылки [ править ]
- Роб Истауэй и Майк Аскью, «Математика для мам и пап» , Square Peg, 2010. ISBN 978-0-224-08635-6 . стр. 140–153.
Внешние ссылки [ править ]
- Длинное умножение — Метод Box , Математика онлайн .
- Длинное умножение и деление , BBC GCSE Bitesize