使用部分积法计算两位数乘法

使用部分积法计算两位数乘法
几何画板及绘图内容加载中,请稍等……
2023-07-13 12:00
本范例通过部分积法和面积模型演示如何计算两位数乘法。核心数学概念包括乘法分配律和位值原理。构造过程中使用了GeoGebra命令如Polygon、Sequence、TextToUnicode等,适合小学4-5年级学生学习和练习多位数乘法计算技能。

GeoGebra 命令及参数

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.7503656878819394, 0.0004729623462422494, 0.539298058181527, 0.2782562040714059, 0.8321401347652925, 0.26990949605957193, 0.28738387057841436, 0.005949363443781315, 0.3928397598718841, 0.9702990071364433, 0.5311205954959733, 0.7321101209769545, 0.3844208394565378, 0.08559794854659092, 0.5122452712006831, 0.35991192553475104, 0.5770048504170432, 0.8208443716975371, 0.355505362122732, 0.7666249863549118, 0.942067266964189, 0.3363461554926379, 0.11081755629665803, 0.6323672712289321, 0.9242867876314318, 0.7009771752031658, 0.818245977243218, 0.41274668690887534, 0.07336873181482233, 0.9774364292164603, 0.39416026883307104, 0.41556844437589785, 0.36023359411826583, 0.3703230212092609, 0.6117284334298269, 0.9102491734742542, 0.4559748181116564, 0.8043156090108166, 0.1096325369252614, 0.36048277810001733, 0.8469413598203696, 0.564617682748139, 0.609564459218853, 0.5560451618004912, 0.9551888441046799, 0.9051410039778418, 0.3656667009349776, 0.28840450609916424, 0.07036990332342886, 0.8616473081989791, 0.1876283962513365, 0.17702018953037196, 0.016897252211627158, 0.1972537715295773, 0.2236285965540857, 0.8188678449152557, 0.5589149986450558, 0.13633132899780864, 0.2397391882229774, 0.13281992000660528, 0.3652515632213622, 0.15988478906754017, 0.7187570297208371, 0.44304053553979383, 0.5871045235644962, 0.011002413065640905, 0.08373007096631842, 0.7015197611035214, 0.28272054024544135, 0.4828974604529671, 0.6696742010394653, 0.019277364336838198, 0.7757857417143565, 0.07443818032517957, 0.4511480403511964, 0.12860719866323278, 0.5576293560469848, 0.26887206484104437, 0.5534596966865901, 0.1850134524925631, 0.15767081632656849, 0.6206995626381937, 0.25132517837750035, 0.7072059791187759, 0.0018032249107586683, 0.8633366869528144, 0.28077978134697174, 0.19667691511065186, 0.27460783423863666, 0.19633028112350906, 0.7880642165653062, 0.8349721351994661, 0.2084326098548115, 0.6954490191868588, 0.7130646617946184, 0.026800612778008756, 0.4804443716677156, 0.24197227155519752, 0.6646803506317519, 0.7405914539936957, 0.8677771049199058, 0.4789339787554743, 0.20122549354216415, 0.8650127221133107, 0.5408510942647319, 0.6519516561941803, 0.5006415601664502, 0.32030800508459356, 0.865825287738955, 0.7405817621708056, 0.4429036147726486, 0.40708576698605886, 0.1389721795456278, 0.022889923103106415, 0.2005497054574224, 0.4424136304528408, 0.8385276790030811, 0.6211109335901384, 0.562743920122039, 0.3537237852861255, 0.9832700320837195, 0.7498953022296887, 0.47370444127317973, 0.5151277261951462, 0.13172005239398238, 0.21070141275628365, 0.14768488065484933, 0.2282673983247318, 0.6314315295008068, 0.5663884018462971, 0.7499922271290119, 0.2107974021545462, 0.17435419471884706, 0.019001951666182446, 0.5367571594815697, 0.37999625859283026, 0.06170258366607184, 0.8811175740758556, 0.7353425402277823, 0.6168474011435525, 0.7801533229371347, 0.33691658952384673, 0.8423830121890472, 0.6572090338897896, 0.7405187493374177, 0.14341802145931695, 0.2274936959965591, 0.33140972371089655, 0.8903094717216268, 0.5249752725728251, 0.27766884196879393, 0.2917599241034988, 0.842798583517458, 0.1152696633542018, 0.9703101242467668, 0.08906225899606743, 0.6673398148325986, 0.490592752184493, 0.7916830027253882, 0.8242320235523556, 0.528767347613389, 0.7062085486073274, 0.7123935132552605, 0.04960662578501083, 0.11771935934078916, 0.9240209551734322, 0.3022107848615356, 0.28642688659792054, 0.6886778958183767, 0.8546461620684066, 0.5732300902302702, 0.8603145021829632, 0.5584069243454953, 0.10029905035732137, 0.7229793482447618, 0.7653501299938429, 0.6042961278975207, 0.4166515810373641, 0.5376159267583095, 0.049572271837972026, 0.6398818948559907, 0.15200629469147814, 0.7798441608724861, 0.2403725403209593, 0.22351824072799165, 0.2507510726225172, 0.7166027368500125, 0.3073536708151907, 0.6658086698586704, 0.3251221116537969, 0.2879296266036269, 0.22274670437604266, 0.12198675109228983, 0.9047998741962991, 0.5207062258307156, 0.9154502114229756, 0.48694615509270234, 0.5177982270476015, 0.23921565962750893, 0.5841586087358764}
  2. TextToUnicode(" 0123456789") → validChars
  3. Zip(TextToUnicode[Text[n, false]], n, inputCurrent) → studentChars
  4. Flatten({Zip[If[n, k, NaN], n, validByRow, k, inputFilled], Sum[Zip[If[n, k, NaN], n, validByRow, k, inputFilled]]}) → inputFilledValid
  5. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  6. Zip(n ≟ p ∧ k, n, inputCurrent, p, correctInputs, k, validByRow) → correctByRow
  7. PixelsToPoint(Corner[1], Corner[3], Corner[5], PointQuestionPix) → PointQuestion
  8. Zip(If[Defined[n], Digitize[n], {}], n, inputFilledValid) → digitizedNumbers
  9. Max(Zip[Length[k], k, First[digitizedNumbers, If[validate ∧ correct, 5, 4]]]) → maxLengthDigits
  10. If(maxLengthDigits > 2, ((maxLengthDigits - 2) * ptDiff), 0) → xAdd
  11. Zip(Text[n, false] ≟ Text[k, false], n, inputCurrent, k, inputSaved) → matched
  12. Sequence(Sequence[If[Length[digitizedNumbers(n)] - maxLengthDigits + k ≤ 0, "", "" + (digitizedNumbers(n, Length[digitizedNumbers(n)] - maxLengthDigits + k))], k, 1, maxLengthDigits], n, 1, 5) → digitizedText, {{}, {}, {}, {}, {}}
  13. Zip(n ≟ p, n, inputCurrent, p, correctInputs) → boolCorrects
  14. Flatten({Zip[If[¬k, "#252525", n, "#006758", "#b00020"], n, correctByRowValidate, k, matched], "#006758"}) → boolColorsText
  15. Sequence(CountIf[n ≟ inputCurrent(k), n, First[inputCurrent, k]], k, 1, 4) → countOrderedOccurences
  16. Sort(inputCurrent) → userInputs
  17. Zip(IndexOf[n, userInputs], n, inputCurrent) → indicesInput
  18. Zip(CountIf[n ≟ k, n, correctInputs], k, correctInputs) → countCorrectOccurences
  19. Corner(5) → layoutAppSize
  20. Polygon({(-5, -6.5), (-5, 6.5), (6, 6.5), (6, -6.5)}) → viewbox
  21. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  22. Textfield(input1) → InputBox1
  23. Textfield(input2) → InputBox2
  24. Textfield(input3) → InputBox3
  25. Textfield(input4) → InputBox4
  26. Max(randNum1, randNum2) → maxLength
  27. Polygon({(x1, y1), (x2, y1), (x2, y2), (x1, y2)}) → quad1
  28. Polygon({(x2, y1), (x3, y1), (x3, y2), (x2, y2)}) → quad2
  29. Polygon({(x1, y2), (x2, y2), (x2, y3), (x1, y3)}) → quad3
  30. Polygon({(x2, y2), (x3, y2), (x3, y3), (x2, y3)}) → quad4
  31. PartitionPoint(PointTopStartTens, PointAnimate1, If[animationSlider < 2.4, 0, animationSlider < 2.9, animationSlider - 2.4, 0.5], 0.5) → AnimationPoint1a
  32. PartitionPoint(PointAnimate1, textBPoints(1), If[animationSlider < 3.2, 0, animationSlider < 4.2, animationSlider - 3.2, 1], 1) → AnimationPoint1b
  33. PartitionPoint(PointTopStartOnes, textBPoints(2), If[animationSlider < 1, animationSlider, 1], 1) → PointAnimateTopOnes
  34. PartitionPoint(PointBottomStartOnes, textBPoints(4), If[animationSlider < 1.2, 0, animationSlider < 2.2, animationSlider - 1.2, 1], 1) → PointAnimateBottomOnes
  35. If(animationSlider < 2.9, AnimationPoint1a, AnimationPoint1b) → PointAnimateText1
  36. PartitionPoint(PointBottomStartTens, PointAnimate1, If[animationSlider < 4.4, 0, animationSlider < 4.9, animationSlider - 4.4, 0.5], 0.5) → AnimationPoint2a
  37. PartitionPoint(PointAnimate1, textBPoints(3), If[animationSlider < 5.2, 0, animationSlider < 6.2, animationSlider - 5.2, 1], 1) → AnimationPoint2b
  38. If(animationSlider < 5.2, AnimationPoint2a, AnimationPoint2b) → PointAnimateBottomTens
  39. If(showStep1, quad4, showStep2, quad3, showStep3, quad2, showStep4, quad1) → highlightQuad
  40. If(animationSlider < 6.5, 1, 0.25) → animationSpeed
  41. Zip(CountIf[n ≟ k, n, userInputs], k, userInputs) → countInputOccurences
  42. If(showStep1, 1, showStep2, 2, showStep3, 3, 4) → boxNum
  43. Polygon({(x1, y3), (x3, y3), (x3, y1), (x1, y1)}) → quadOutline
  44. Zip(A + (0, 0.5), A, textPointsSteps) → textPoints
  45. If(maxLengthDigits > 2, Sum[Sequence["&", n, 1, maxLengthDigits - 2]] + "", "") → symbolAnd
  46. Sequence(Sum[Sequence["\color{" + (boolColorsText(n)) + "}{" + (digitizedText(n, k)) + "}" + (If[k < maxLengthDigits, "&", ""]), k, 1, maxLengthDigits]], n, 1, 5) → digitizedTextAnd
  47. Digitize(input1 + input2 + input3 + input4) → answerInput
  48. IndexOf(false, correctByRow) → boolFirstIncorrect
  49. Zip(Length[n] > 0, n, digitizedNumbers) → boolLens
  50. Zip(If[showsolution ∨ validate ∧ correct, If[¬showSteps, If[p, {0, 103, 88}, {176, 0, 32}], k < animationSlider ∨ animationSlider ≟ 11.1 ∨ validate ∧ correct, {0, 103, 88}, {117, 117, 117}], showhint1, If[p, {0, 103, 88}, {101, 87, 210}], {101, 87, 210}] / 255, p, correctByRowValidate, k, anMins, r, anMax) → colorList
  51. Zip(If[¬k, "#ffffff", n, "#d2e4e2", tries < 3, "#ffffff", "#f1d2d8"], n, correctByRow, k, matched) → boolColors
  52. Zip(k < animationSlider ∨ animationSlider ≟ 11.1 ∨ validate ∧ correct, k, anMins, r, anMax) → boolShading
  53. Zip(tries < 3 ∧ (¬(validate ∧ n)), n, correctByRowValidate) → enableInputByRow
  54. Zip(Text["?", n - (1 / 2 * dimQ(1)) - dimQ(2), true, true], n, Centroids) → textQs

AI 绘图提示语参考

一个展示两位数乘法部分乘积的面积模型图形。图中包含四个输入框,用于输入两位数的每一位数字;四个矩形代表部分乘积;一个更大的矩形表示总乘积。图形通过面积模型直观体现分配律和位值原理。构造顺序为:先绘制四个输入框,再绘制四个部分乘积矩形,最后绘制总乘积矩形。
以上提示语为根据原始绘图命令整理而来,仅供参考。