격자법 곱하기
Grid method multiplication![]() | 이 글의 사례와 관점은 주로 미국을 다루며, 주제에 대한 세계적인 관점을 나타내지 않는다. 이 하거나 를 할 수 .(2017년 2월) (이 메시지를 하는 과 시기 |
곱셈의 격자법(box method라고도 한다)은 10보다 큰 숫자를 포함하는 다자리 곱셈 계산에 대한 입문 접근법이다.초등학교나 초등학교 수준의 수학 교육에서 자주 가르치기 때문에 이 알고리즘을 문법학교법이라고 부르기도 한다.[1]
전통적인 긴 곱셈에 비해 격자 방식은 곱셈과 덧셈을 두 단계로 명확히 구분하고, 장소 가치에 덜 의존한다는 점에서 차이가 있다.
전통적인 방법보다 효율성은 떨어지지만, 격자 곱셈은 아이들이 실수를 덜 한다는 점에서 더 신뢰할 수 있는 것으로 간주된다.대부분의 학생들은 일단 그리드 방법에 익숙해지면 전통적인 방법을 배우러 갈 것이다. 그러나 그리드 방법에 대한 지식은 혼동 시 유용한 "낙하산"으로 남아 있다.또한 오늘날 많은 곱셈을 하는 사람은 누구나 포켓 계산기를 사용하기 때문에, 그 자체를 위한 효율성은 덜 중요하다고 주장한다. 마찬가지로, 이것은 대부분의 아이들이 곱셈 알고리즘을 덜 자주 사용하게 된다는 것을 의미하기 때문에, 더 노골적인 방법(따라서 더 기억에 남는 방법)에 익숙해지는 것이 그들에게 유용하다.
그리드 방법의 사용은 1990년대 "수치 시간"과 함께 국가 수치화 전략의 도입 이후 영국과 웨일스의 초등학교 수학 교육에서 표준으로 사용되어 왔다.다른 곳에서도 다양한 커리큘럼에 포함시킬 수 있다.본질적으로, 명시적 그리드 배열이 아닌 동일한 계산 접근법을 부분 제품 알고리즘 또는 부분 제품 방법이라고도 한다.
계산
입문 동기
격자법은 초콜릿 바의 스퀘어 수, 예를 들어 초콜릿의 정사각형 수를 어떻게 합칠 것인가를 생각해봄으로써 도입될 수 있다.계산의 크기가 커질수록 십 단위로 계산을 시작하기가 쉬워지고, 여러 개의 점을 그리기보다는 하위분할이 가능한 박스로 계산을 나타내게 된다.[2][3]
가장 간단한 수준에서 학생들은 3 × 17과 같은 계산에 이 방법을 적용하도록 요청받을 수 있다.(10 + 7) 17을 (10 + 7)로 분할하면, 이 생소한 곱셈은 다음과 같은 두 가지 단순한 곱셈의 합으로 풀 수 있다.
10 7 3 30 21
그래서 3 × 17 = 30 + 21 = 51.
이것은 곱셈법에 이름을 붙이는 "그리드" 또는 "박스" 구조다.
34 × 13과 같이 약간 더 큰 곱셈에 직면했을 때, 처음에 학생들은 이것을 10으로 나누도록 권장될 수 있다.따라서 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 + 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을 계산하기 위해, 학생은 6개의 쉬운 배수로 그리드를 구성할 수 있다.
300 40 5 20 6000 800 100 8 2400 320 40
6900 + 2760 = 9660.
그러나 이 단계까지(적어도 현재 영국의 표준 교수 실습에서) 학생들은 그리드를 작성할 필요 없이 전통적인 긴 곱셈 형식을 사용하여 그러한 계산을 하도록 장려되기 시작할 수 있다.
전통적인 긴 곱셈은 숫자 중 하나만 10으로 분할되고 단위 부분은 별도로 곱하는 격자 곱셈과 관련될 수 있다.
345 20 6900 8 2760
전통적인 방법은 궁극적으로 더 빠르고 훨씬 더 콤팩트하다; 그러나 그것은 처음에 학생들이 어려움을[citation needed] 겪을 수 있는 훨씬 더 어려운 두 배 이상의 배수를 요구한다.격자법에 비해 전통적인 긴 곱셈은 또한 더 추상적이고[citation needed] 덜 뚜렷하게[citation needed] 보일 수 있기 때문에, 일부 학생들은 각 단계에서 무엇을 해야 하는지 그리고[citation needed] 왜 해야 하는지를 기억하기가 더 어려워한다.따라서 학생들은 체크와 폴백으로 보다 효율적인 전통적인 긴 곱셈 방법과 함께 더 단순한 격자 방식을 사용하도록 꽤 오랫동안 장려될 수 있다.
기타 응용 프로그램
분수
일반적으로 분수를 곱하기 위한 표준적인 방법으로는 가르치지 않지만, 격자법은 제품을 분해하여 찾기 쉬운 간단한 경우에 쉽게 적용할 수 있다.
예를 들어 계산 21/2 × 11/2는 격자법을 사용하여 설정할 수 있다.
2 1/2 1 2 1/2 1/2 1 1/4
결과물이 2 + 1/2 + 1 + 1/4 = 33/4인 것을 발견하기 위해
대수학
그리드 방법은 (a + 3)(b + 2)와 같은 이항생물의 곱셈을 설명하는데 사용될 수 있다. (보통 중등학교까지는 충족되지 않지만) 초등 대수학의 표준 주제인 것이다.
a 3 b AB 3b 2 2a 6
따라서 (a + 3)(b + 2) = ab + 3b + 2a + 6.
컴퓨팅
32비트 CPU는 일반적으로 두 개의 64비트 정수를 곱하는 명령이 부족하다.그러나 대부분의 CPU는 32비트 피연산자 2명을 잡아 곱하고 32비트 결과를 하나의 레지스터에, 오버플로를 다른 레지스터에 넣어 캐리어를 만드는 '오버플로 멀티플라이(multiple with overflow)' 명령을 지원한다.예를 들어, 여기에는 다음이 포함된다.umull
ARMv4t 명령 집합 또는 에 추가된 명령pmuludq
SSE2에 추가된 지침으로, 두 개의 64비트 레인을 포함하는 SIMD 레지스터의 하위 32비트에서 작동한다.
이러한 지침을 지원하는 플랫폼에서는 약간 수정된 버전의 그리드 방법이 사용된다.차이점은 다음과 같다.
- 10의 배수로 동작하는 대신 32비트 정수로 동작한다.
- 높은 비트에 10을 곱하는 대신, 비트에 10을 곱한다.
0x100000000
이 작업은 보통 32비트가 왼쪽으로 이동하거나 더 높은 32비트를 나타내는 특정 레지스터에 값을 넣음으로써 이루어진다. - 64비트 위에 있는 모든 값은 잘린다.즉, 결과가 64비트 범위 밖으로 이동하기 때문에 가장 높은 비트를 곱할 필요가 없다.이것은 또한 더 높은 배수에 32비트 곱셈만 필요하다는 것을 의미한다.
b a d - 광고를 내다 c bc ac
C:의 루틴이 될 것이다.
#include <stdint.h> uint64_t 곱셈을 하다(uint64_t AB, uint64_t cd) { /* 이러한 이동 및 마스크는 일반적으로 64비트 정수로 암시된다. *는 종종 2개의 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 높은 = ac >> 32; /* 오버플로 */ uint32_t 낮은 = ac & 0xFFFFFFFF; /* 32비트 곱하기 및 하이비트에 추가 */ 높은 += (a * d); /* 광고 추가 */ 높은 += (b * c); /* BC 추가 */ /* 좌측 시프트를 통해 0x1000000을 곱하고 2진수 또는 2진수로 낮은 비트에 추가한다.*/ 돌아오다 ((uint64_t)높은 << 32) 낮은; }
ARM 어셈블리의 루틴은 다음과 같다.
곱하기: @ a = r0 @ b = r1 @ c = r2 @ d = r3 밀다 {r4, lr} @ 지원하다 r4 그리고 lr 로 그 쌓다 우멀 r12년, lr, r2, r0 @ 곱셈을 하다 r2 그리고 r0, 저장하다 그 결과 에 r12년 그리고 그 넘치다 에 lr 멜라 r4, r2, r1, lr @ 곱셈을 하다 r2 그리고 r1, 덧셈을 lr, 그리고 저장하다 에 r4 멜라 r1, r3, r0, r4 @ 곱셈을 하다 r3 그리고 r0, 덧셈을 r4, 그리고 저장하다 에 r1 @ 그 가치를 매기다 이다 이동했다 남겨진 암암리에 때문에 그 @ 높은 조각들 의 a 64-물다 정수의 이다 돌아온 에 r1. 영화를 찍다 r0, r12년 @ 세트 그 낮은 조각들 의 그 돌아오다 가치를 매기다 로 r12년 (ac) 펑펑 터지다 {r4, lr} @ 회복시키다 r4 그리고 lr 로부터 그 쌓다 bx lr @ 돌아오다 그 낮은 그리고 높은 조각들 에 r0 그리고 r1 각각
수학
수학적으로 이런 식으로 곱셈을 분해할 수 있는 능력을 분배 법칙이라고 하는데, 이것은 대수학적으로 a(b+c) = ab + ac인 속성으로서 표현할 수 있다.그리드 방식은 제품을 확장하기 위해 두 번, 수평 인자에 한 번, 수직 인자에 한 번, 분배 속성을 사용한다.
역사적으로 격자 계산(약간 비틀림)은 중세 아랍어와 힌두 수학에서 발달한 다자리 곱셈의 표준법이었던 격자 곱셈법(lattice gapty)의 기초였다.격자 곱셈은 13세기 초에 피보나찌에 의해 아라비아 숫자와 함께 유럽에 소개되었다. 그러나 역시 숫자처럼, 그가 그들과 함께 계산하자고 제안한 방법은 처음에는 더디게 잡혔다.Napier의 뼈는 1617년 Scott John Napier가 격자-방법 계산을 돕기 위해 도입한 계산적 도움이었다.
참고 항목
참조
- Rob Eastaway와 Mike Askew, Maths for Mums and Dads, Square Peg, 2010. ISBN978-0-224-08635-6. 페이지 140-153.