五乘五
几何画板及绘图内容加载中,请稍等……
①本范例演示一个五行五列的交互式数学模型,通过动态元素展示加法、乘法等运算规律;②涉及核心数学概念包括加法、乘法、中位线、数列与级数、条件概率、坐标几何、三角函数;③作图要点运用了Reverse, Sequence, Zip, RandomElement, Polygon, Text, Flatten等GeoGebra命令与对象,实现数据的动态生成与可视化;④适合高中阶段数学教学,用于辅助概率统计、解析几何及三角函数的教学演示。
GeoGebra 命令及参数
Reverse({{leftNumber11, leftNumber21, leftNumber31, leftNumber41, leftNumber51}, {leftNumber12, leftNumber22, leftNumber32, leftNumber42, leftNumber52}, {leftNumber13, leftNumber23, leftNumber33, leftNumber43, leftNumber53}, {leftNumber14, leftNumber24, leftNumber34, leftNumber44, leftNumber54}, {leftNumber15, leftNumber25, leftNumber35, leftNumber45, leftNumber55}}) → leftRowsSequence(Sequence[If[Element[leftRows, i, j] ≟ Element[leftRows, i, j + 1], Element[leftRows, i, j], 0], j, 1, 4], i, 1, 5) → leftRowMatchesZip(RemoveUndefined[Sequence[If[Element[AAA, i] ≠ Element[AAA, i + 1] ∧ Element[AAA, i] > 0, Element[AAA, i]], i, 1, 4]], AAA, leftRowMatches) → leftRowUniquesZip(Append[0, Append[RemoveUndefined[Sequence[If[Element[AAA, i] ≟ 0, i], i, 1, 4]], 5]], AAA, leftRowMatches) → leftRowZerosZip(Remove[Sequence[Element[AAA, i] - Element[AAA, i - 1], i, 2, Length[AAA]], {1, 1, 1, 1, 1}], AAA, leftRowZeros) → leftRowGapsRandomElement({"heads", "tails"}) → coinTossPolygon((1, 1), (2, 1), 4) → right11Polygon((1, 2), (2, 2), 4) → right12Polygon((1, 3), (2, 3), 4) → right13Polygon((1, 4), (2, 4), 4) → right14Polygon((1, 5), (2, 5), 4) → right15Polygon((2, 1), (3, 1), 4) → right21Polygon((2, 2), (3, 2), 4) → right22Polygon((2, 3), (3, 3), 4) → right23Polygon((2, 4), (3, 4), 4) → right24Polygon((2, 5), (3, 5), 4) → right25Polygon((3.0300525920360633, 1), (4.030052592036063, 1), 4) → right31Polygon((3, 2), (4, 2), 4) → right32Polygon((3, 3), (4, 3), 4) → right33Polygon((3, 4), (4, 4), 4) → right34Polygon((3, 5), (4, 5), 4) → right35Polygon((4, 1), (5, 1), 4) → right41Polygon((4, 1.9849737039819684), (5, 1.9849737039819684), 4) → right42Polygon((4, 3), (5, 3), 4) → right43Polygon((4, 4), (5, 4), 4) → right44Polygon((4, 5), (5, 5), 4) → right45Polygon((5, 1), (6, 1), 4) → right51Polygon((5, 2), (6, 2), 4) → right52Polygon((5, 3), (6, 3), 4) → right53Polygon((5, 4), (6, 4), 4) → right54Polygon((5, 5), (6, 5), 4) → right55Polygon((-6, 1), (-5, 1), 4) → left11Polygon((-6, 2), (-5, 2), 4) → left12Polygon((-6, 3), (-5, 3), 4) → left13Polygon((-6, 4), (-5, 4), 4) → left14Polygon((-5, 1), (-4, 1), 4) → left21Polygon((-5, 2), (-4, 2), 4) → left22Polygon((-5, 3), (-4, 3), 4) → left23Polygon((-5, 4), (-4, 4), 4) → left24Polygon((-5, 5), (-4, 5), 4) → left25Polygon((-6, 5), (-5, 5), 4) → left15Polygon((-4, 1), (-3, 1), 4) → left31Polygon((-4, 2), (-3, 2), 4) → left32Polygon((-4, 3), (-3, 3), 4) → left33Polygon((-4, 4), (-3, 4), 4) → left34Polygon((-4, 5), (-3, 5), 4) → left35Polygon((-3, 1), (-2, 1), 4) → left41Polygon((-3, 2), (-2, 2), 4) → left42Polygon((-3, 3), (-2, 3), 4) → left43Polygon((-3, 4), (-2, 4), 4) → left44Polygon((-3, 5), (-2, 5), 4) → left45Polygon((-2, 1), (-1, 1), 4) → left51Polygon((-2, 2), (-1, 2), 4) → left52Polygon((-2, 3), (-1, 3), 4) → left53Polygon((-2, 4), (-1, 4), 4) → left54Polygon((-2, 5), (-1, 5), 4) → left55Text(leftNumber51, Centroid[left51] + textAdjuster) → leftText51Text(leftNumber52, Centroid[left52] + textAdjuster) → leftText52Text(leftNumber53, Centroid[left53] + textAdjuster) → leftText53Text(leftNumber54, Centroid[left54] + textAdjuster) → leftText54Text(leftNumber55, Centroid[left55] + textAdjuster) → leftText55Text(leftNumber41, Centroid[left41] + textAdjuster) → leftText41Text(leftNumber42, Centroid[left42] + textAdjuster) → leftText42Text(leftNumber43, Centroid[left43] + textAdjuster) → leftText43Text(leftNumber44, Centroid[left44] + textAdjuster) → leftText44Text(leftNumber45, Centroid[left45] + textAdjuster) → leftText45Text(leftNumber31, Centroid[left31] + textAdjuster) → leftText31Text(leftNumber32, Centroid[left32] + textAdjuster) → leftText32Text(leftNumber33, Centroid[left33] + textAdjuster) → leftText33Text(leftNumber34, Centroid[left34] + textAdjuster) → leftText34Text(leftNumber35, Centroid[left35] + textAdjuster) → leftText35Text(leftNumber21, Centroid[left21] + textAdjuster) → leftText21Text(leftNumber22, Centroid[left22] + textAdjuster) → leftText22Text(leftNumber23, Centroid[left23] + textAdjuster) → leftText23Text(leftNumber24, Centroid[left24] + textAdjuster) → leftText24Text(leftNumber25, Centroid[left25] + textAdjuster) → leftText25Text(leftNumber11, Centroid[left11] + textAdjuster) → leftText11Text(leftNumber12, Centroid[left12] + textAdjuster) → leftText12Text(leftNumber13, Centroid[left13] + textAdjuster) → leftText13Text(leftNumber14, Centroid[left14] + textAdjuster) → leftText14Text(leftNumber15, Centroid[left15] + textAdjuster) → leftText15Text(rightNumber11, Centroid[right11] + textAdjuster) → rightText11Text(rightNumber12, Centroid[right12] + textAdjuster) → rightText12Text(rightNumber13, Centroid[right13] + textAdjuster) → rightText13Text(rightNumber14, Centroid[right14] + textAdjuster) → rightText14Text(rightNumber15, Centroid[right15] + textAdjuster) → rightText15Text(rightNumber21, Centroid[right21] + textAdjuster) → rightText21Text(rightNumber22, Centroid[right22] + textAdjuster) → rightText22Text(rightNumber23, Centroid[right23] + textAdjuster) → rightText23Text(rightNumber24, Centroid[right24] + textAdjuster) → rightText24Text(rightNumber25, Centroid[right25] + textAdjuster) → rightText25Text(rightNumber31, Centroid[right31] + textAdjuster) → rightText31Text(rightNumber32, Centroid[right32] + textAdjuster) → rightText32Text(rightNumber33, Centroid[right33] + textAdjuster) → rightText33Text(rightNumber34, Centroid[right34] + textAdjuster) → rightText34Text(rightNumber35, Centroid[right35] + textAdjuster) → rightText35Text(rightNumber41, Centroid[right41] + textAdjuster) → rightText41Text(rightNumber42, Centroid[right42] + textAdjuster) → rightText42Text(rightNumber43, Centroid[right43] + textAdjuster) → rightText43Text(rightNumber44, Centroid[right44] + textAdjuster) → rightText44Text(rightNumber45, Centroid[right45] + textAdjuster) → rightText45Text(rightNumber51, Centroid[right51] + textAdjuster) → rightText51Text(rightNumber52, Centroid[right52] + textAdjuster) → rightText52Text(rightNumber53, Centroid[right53] + textAdjuster) → rightText53Text(rightNumber54, Centroid[right54] + textAdjuster) → rightText54Text(rightNumber55, Centroid[right55] + textAdjuster) → rightText55Flatten(Zip[{AAA, AAA}, AAA, randomNumbers]) → doubledNumbersReverse(Sequence[Sequence[Polygon[(i, j), (i + 1, j), 4], i, -6, -2], j, 1, 5]) → leftBackGroundsSequence(Sequence[If[Element[leftColumns, i, j] ≟ Element[leftColumns, i, j + 1], Element[leftColumns, i, j], 0], j, 1, 4], i, 1, 5) → leftColumnMatchesZip(Sum[Sequence[If[c, (Element[AAA, i] * Element[BBB, i]), Element[AAA, i]^(Element[BBB, i])], i, 1, Length[AAA]]], AAA, leftRowUniques, BBB, leftRowGaps) → leftRowSumsPolygon((-6.1, 0.9), (-0.9, 0.9), 4) → leftOutlinePolygon((0.9, 0.9), (6.1, 0.9), 4) → rightOutlineZip(RemoveUndefined[Sequence[If[Element[AAA, i] ≠ Element[AAA, i + 1] ∧ Element[AAA, i] > 0, Element[AAA, i]], i, 1, 4]], AAA, leftColumnMatches) → leftColumnUniquesReverse({{rightNumber11, rightNumber21, rightNumber31, rightNumber41, rightNumber51}, {rightNumber12, rightNumber22, rightNumber32, rightNumber42, rightNumber52}, {rightNumber13, rightNumber23, rightNumber33, rightNumber43, rightNumber53}, {rightNumber14, rightNumber24, rightNumber34, rightNumber44, rightNumber54}, {rightNumber15, rightNumber25, rightNumber35, rightNumber45, rightNumber55}}) → rightRowsSequence(Sequence[If[Element[rightColumns, i, j] ≟ Element[rightColumns, i, j + 1], Element[rightColumns, i, j], 0], j, 1, 4], i, 1, 5) → rightColumnMatchesSequence(Sequence[If[Element[rightRows, i, j] ≟ Element[rightRows, i, j + 1], Element[rightRows, i, j], 0], j, 1, 4], i, 1, 5) → rightRowMatchesZip(Append[0, Append[RemoveUndefined[Sequence[If[Element[AAA, i] ≟ 0, i], i, 1, 4]], 5]], AAA, rightColumnMatches) → rightColumnZerosZip(Append[0, Append[RemoveUndefined[Sequence[If[Element[AAA, i] ≟ 0, i], i, 1, 4]], 5]], AAA, leftColumnMatches) → leftColumnZerosZip(Append[0, Append[RemoveUndefined[Sequence[If[Element[AAA, i] ≟ 0, i], i, 1, 4]], 5]], AAA, rightRowMatches) → rightRowZerosZip(RemoveUndefined[Sequence[If[Element[AAA, i] ≠ Element[AAA, i + 1] ∧ Element[AAA, i] > 0, Element[AAA, i]], i, 1, 4]], AAA, rightColumnMatches) → rightColumnUniquesZip(RemoveUndefined[Sequence[If[Element[AAA, i] ≠ Element[AAA, i + 1] ∧ Element[AAA, i] > 0, Element[AAA, i]], i, 1, 4]], AAA, rightRowMatches) → rightRowUniquesZip(Remove[Sequence[Element[AAA, i] - Element[AAA, i - 1], i, 2, Length[AAA]], {1, 1, 1, 1, 1}], AAA, leftColumnZeros) → leftColumnGapsZip(Remove[Sequence[Element[AAA, i] - Element[AAA, i - 1], i, 2, Length[AAA]], {1, 1, 1, 1, 1}], AAA, rightColumnZeros) → rightColumnGapsZip(Remove[Sequence[Element[AAA, i] - Element[AAA, i - 1], i, 2, Length[AAA]], {1, 1, 1, 1, 1}], AAA, rightRowZeros) → rightRowGapsZip(Sum[Sequence[If[c, (Element[AAA, i] * Element[BBB, i]), Element[AAA, i]^(Element[BBB, i])], i, 1, Length[AAA]]], AAA, leftColumnUniques, BBB, leftColumnGaps) → leftColumnSumsZip(Sum[Sequence[If[c, (Element[AAA, i] * Element[BBB, i]), Element[AAA, i]^(Element[BBB, i])], i, 1, Length[AAA]]], AAA, rightColumnUniques, BBB, rightColumnGaps) → rightColumnSumsZip(Sum[Sequence[If[c, (Element[AAA, i] * Element[BBB, i]), Element[AAA, i]^(Element[BBB, i])], i, 1, Length[AAA]]], AAA, rightRowUniques, BBB, rightRowGaps) → rightRowSumsZip(Sequence[If[Element[AAA, i] ≟ Element[AAA, i + i], Segment[Centroid[Element[BBB, i]] + (x(textAdjuster) + 0.15, 0), Centroid[Element[BBB, i + 1]] + (x(textAdjuster) + 0.15, 0)]], i, 1, 4], AAA, leftRows, BBB, leftBackGrounds) → leftRowLinesStepReverse(Sequence[Sequence[Polygon[(i, j), (i + 1, j), 4], i, 1, 5], j, 1, 5]) → rightBackGroundsSequence(Sequence[If[Element[leftRows, j, i] ≟ Element[leftRows, j, i + 1] ∧ Element[leftRows, j, i] > 0, Segment[Centroid[Element[leftBackGrounds, j, i]] + segmentAdjuster, Centroid[Element[leftBackGrounds, j, i + 1]] + segmentAdjuster]], j, 1, 5], i, 1, 4) → leftRowLinesSequence(Sequence[If[Element[rightRows, j, i] ≟ Element[rightRows, j, i + 1] ∧ Element[rightRows, j, i] > 0, Segment[Centroid[Element[rightBackGrounds, j, i]] + segmentAdjuster, Centroid[Element[rightBackGrounds, j, i + 1]] + segmentAdjuster]], j, 1, 5], i, 1, 4) → rightRowLinesSequence(Sequence[If[Element[leftRows, j + 1, i] ≟ Element[leftRows, j, i] ∧ Element[leftRows, j, i] > 0, Segment[Centroid[Element[leftBackGrounds, j, i]] + segmentAdjuster, Centroid[Element[leftBackGrounds, j + 1, i]] + segmentAdjuster]], j, 1, 4], i, 1, 5) → leftColumnLinesSequence(Sequence[If[Element[rightRows, j + 1, i] ≟ Element[rightRows, j, i] ∧ Element[rightRows, j, i] > 0, Segment[Centroid[Element[rightBackGrounds, j, i]] + segmentAdjuster, Centroid[Element[rightBackGrounds, j + 1, i]] + segmentAdjuster]], j, 1, 4], i, 1, 5) → rightColumnLinesPolygon((-1, 0), (1, 0), (1, 0.25), (-1, 0.25)) → timerOutline, f, g, h, iPolygon((-1, 0), (1 - (2 * timer), 0), (1 - (2 * timer), 0.25), (-1, 0.25)) → timerFill, j, k, l, m