因式分解的可视化演示
几何画板及绘图内容加载中,请稍等……
①本范例通过输入一个整数,根据其质因数分解,可视化展示如何用成对的因数相乘得到该整数;②涉及核心数学概念包括因数、质因数分解、最大公约数与最小公倍数;③作图要点:使用了GeoGebra命令如Factors(因数计算)、Join(连接)、Sequence(序列)、Element(元素)、Textfield(文本框)、Min(最小值)、Corner(角落)、Max(最大值)、If(条件判断)、Text(文本);对象包括b7, b6, b1, b2, b3, b4, b5, bools, t, ts, d, n, fm, factors, list1, rows, prows, points, MX, inputBox1, bt1, bt2, bt3, bt4, list2, cols, pcols, minTrue, minFalse, RT, rt, ct, CT, GV, ratio, maxFalse, maxTrue, text3, netW, innerW;④适合初中及以上数学学习者,用于理解因数分解与乘法关系的直观演示。
GeoGebra 命令及参数
Factors(n) → fmJoin(Sequence[Sequence[Element[Element[fm, i], 1], j, 1, Element[Element[fm, i], 2]], i, 1, Length[fm]]) → factorsSequence(If[Element[bools, i] ∧ (Length[factors] ≥ i), Element[factors, i], 1], i, 1, Length[bools]) → list1Sequence(((floor(i / prows) * d), (Mod[i, prows] * d)) + (ts * Vector[((floor(i / prows) * d), (Mod[i, prows] * d)), (((floor(i / rows) * d), Mod[i, rows]) * d)]), i, 0, n - 1) → pointsElement(points, n) → MXTextfield(n) → inputBox1Sequence(If[(¬Element[bools, i]) ∧ (Length[factors] ≥ i), Element[factors, i], 1], i, 1, Length[bools]) → list2Min(Sequence[If[Element[bools, i], i, 10000], i, 1, Length[bools]]) → minTrueMin(Sequence[If[¬Element[bools, i], i, 10000], i, 1, Length[bools]]) → minFalseSequence(If[(i ≤ Length[factors]) ∧ Element[bools, i], If[i > minTrue, "\times", ""] + (Element[list1, i]), ""], i, 1, Length[bools]) → rtSequence(If[(i ≤ Length[factors]) ∧ (¬Element[bools, i]), If[i > minFalse, "\times", ""] + (Element[list2, i]), ""], i, 1, Length[bools]) → ctCorner(5) → GVMax(Sequence[If[¬Element[bools, i], i, 0], i, 1, Min[Length[bools], Length[factors]]]) → maxFalseMax(Sequence[If[Element[bools, i], i, 0], i, 1, Min[Length[bools], Length[factors]]]) → maxTrueSequence(Circle[Element[points, i], (0.3 * d)], i, 1, n) → list3If(MXratio > ratio, innerW / ratio, innerH) → finHIf(MXratio > ratio, innerW, (innerH * ratio)) → finWText(If[rows ≟ 1, "1", Element[rt, 1] + (Element[rt, 2]) + (Element[rt, 3]) + (Element[rt, 4]) + (Element[rt, 5]) + (Element[rt, 6]) + (Element[rt, 7]) + (If[minTrue ≟ maxTrue, "", "=" + rows])], RT, false, true) → text1Text(If[cols ≟ 1, "1", Element[ct, 1] + (Element[ct, 2]) + (Element[ct, 3]) + (Element[ct, 4]) + (Element[ct, 5]) + (Element[ct, 6]) + (Element[ct, 7]) + (If[minFalse ≟ maxFalse, "", "=" + cols])], CT, false, true) → text2Sequence(If[Element[bools, i], "darkgreen", "red"], i, 1, Length[bools]) → colors