Умножение метода сетки
Примеры и перспективы в этой статье касаются главным образом Соединенных Штатов и не отражают мировую точку зрения на этот вопрос . ( февраль 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 multiply(uint64_t ab, uint64_t cd)
{
/* These shifts and masks are usually implicit, as 64-bit integers
* are often passed as 2 32-bit registers. */
uint32_t b = ab >> 32, a = ab & 0xFFFFFFFF;
uint32_t d = cd >> 32, c = cd & 0xFFFFFFFF;
/* multiply with overflow */
uint64_t ac = (uint64_t)a * (uint64_t)c;
uint32_t high = ac >> 32; /* overflow */
uint32_t low = ac & 0xFFFFFFFF;
/* 32-bit multiply and add to high bits */
high += (a * d); /* add ad */
high += (b * c); /* add bc */
/* multiply by 0x100000000 (via left shift) and add to the low bits with a binary or. */
return ((uint64_t)high << 32) | low;
}
Это будет процедура сборки ARM:
multiply:
@ a = r0
@ b = r1
@ c = r2
@ d = r3
push {r4, lr} @ backup r4 and lr to the stack
umull r12, lr, r2, r0 @ multiply r2 and r0, store the result in r12 and the overflow in lr
mla r4, r2, r1, lr @ multiply r2 and r1, add lr, and store in r4
mla r1, r3, r0, r4 @ multiply r3 and r0, add r4, and store in r1
@ The value is shifted left implicitly because the
@ high bits of a 64-bit integer are returned in r1.
mov r0, r12 @ Set the low bits of the return value to r12 (ac)
pop {r4, lr} @ restore r4 and lr from the stack
bx lr @ return the low and high bits in r0 and r1 respectively
Математика
[ редактировать ]Математически способность разбивать умножение таким способом известна как распределительный закон , который можно выразить в алгебре как свойство, что a ( b + c ) = ab + ac . Метод сетки использует свойство распределения дважды для расширения продукта: один раз для горизонтального фактора и один раз для вертикального фактора.
Исторически расчет сетки (немного измененный) был основой метода, называемого решеточным умножением , который был стандартным методом многозначного умножения, разработанным в средневековой арабской и индуистской математике. Решетчатое умножение было введено в Европу Фибоначчи в начале тринадцатого века вместе с самими арабскими цифрами; хотя, как и в случае с цифрами, предложенные им способы вычислений поначалу не прижились. Кости Непера были вспомогательным средством для расчетов, введенным шотландцем Джоном Непером в 1617 году для облегчения расчетов методом решетки.
См. также
[ редактировать ]Ссылки
[ редактировать ]- Роб Истауэй и Майк Аскью, «Математика для мам и пап» , Square Peg, 2010. ISBN 978-0-224-08635-6 . стр. 140–153.
Внешние ссылки
[ редактировать ]- Длинное умножение — Метод Box , Математика онлайн .
- Длинное умножение и деление , BBC GCSE Bitesize