矩形网格上路径长度的动态探究
几何画板及绘图内容加载中,请稍等……
本范例通过GeoGebra动态演示在矩形网格上随机生成路径并计算其总长度的过程。核心数学概念包括矩形网格的坐标表示、路径的逐段累加求和、随机实验以及有理数与无理数的长度对比。作图要点是利用Sequence命令生成一系列随机点,通过Insert、Join和Polygon命令构建路径,并使用Sum命令累加各段长度;对象包括width、length、list0以及A1至A25等点,最终通过texte1显示长度结果。该范例适合中学数学或大学预科阶段,用于理解路径长度计算、随机过程模拟以及几何与代数的结合,也可作为探究勾股定理在网格中应用的拓展材料。
GeoGebra 命令及参数
Sequence(1, i, 1, length + (a * 0)) → list0Insert(0, A1, Random[1, Length[A1] + 1]) → A2Insert(0, A2, Random[1, Length[A2 + 1]]) → A3Insert(0, A3, Random[1, Length[A3 + 1]]) → A4Insert(0, A4, Random[1, Length[A4 + 1]]) → A5Insert(0, A5, Random[1, Length[A5 + 1]]) → A6Insert(0, A6, Random[1, Length[A6 + 1]]) → A7Insert(0, A7, Random[1, Length[A7 + 1]]) → A8Insert(0, A8, Random[1, Length[A8 + 1]]) → A9Insert(0, A9, Random[1, Length[A9 + 1]]) → A10Insert(0, A10, Random[1, Length[A10 + 1]]) → A11Insert(0, A11, Random[1, Length[A11 + 1]]) → A12Insert(0, A12, Random[1, Length[A12 + 1]]) → A13Insert(0, A13, Random[1, Length[A13 + 1]]) → A14Insert(0, A14, Random[1, Length[A14 + 1]]) → A15Insert(0, A15, Random[1, Length[A15 + 1]]) → A16Insert(0, A16, Random[1, Length[A16 + 1]]) → A17Insert(0, A17, Random[1, Length[A17 + 1]]) → A18Insert(0, A18, Random[1, Length[A18 + 1]]) → A19Insert(0, A19, Random[1, Length[A19 + 1]]) → A20Insert(0, A20, Random[1, Length[A20 + 1]]) → A21Insert(0, A21, Random[1, Length[A21 + 1]]) → A22Insert(0, A22, Random[1, Length[A22 + 1]]) → A23Insert(0, A23, Random[1, Length[A23 + 1]]) → A24Insert(0, A24, Random[1, Length[A24 + 1]]) → A25Element(L_1, width + 1) → list1Sequence(Sum[Take[list1, 1, i]], i, 1, length + width) → list2Sequence((0, 0) + (Element[list2, i] * (1, 0)) + ((i - Element[list2, i]) * (0, 1)), i, 1, length + width) → list3Join({{(0, 0)}, list3}) → list4Sequence(Vector[Element[list4, i], Element[list4, i + 1]], i, 1, length + width) → list5Sequence(Segment[(i, 0), (i, width)], i, 0, length) → list6Sequence(Segment[(0, i), (length, i)], i, 0, width) → list7Polygon(C, B, D, A) → poly1, c, b_1, d, a_1Sequence(Segment[Element[list4, i], Element[list4, i + 1]], i, 1, length + width) → liste1Sum(liste1) → eSequence(If[y(Element[list4, i]) ≟ y(Element[list4, i + 1]), Segment[Element[list4, i], Element[list4, i + 1]], 0], i, 1, Length[list4]) → l2RemoveUndefined(l2) → l1Sequence(Midpoint[Element[l1, i]], i, 1, Length[l1]) → l3Sequence((x(Element[l3, i]), 0), i, 1, Length[l3]) → l3bSequence(Vector[Element[l3, i], Element[l3b, i]], i, 1, Length[l3]) → l4Sequence(Translate[Element[l1, i], Vector[(g / 10 * Element[l4, i])]], i, 1, Length[l1]) → l1bSequence(If[x(Element[list4, i]) ≟ x(Element[list4, i + 1]), Segment[Element[list4, i], Element[list4, i + 1]], 0], i, 1, Length[list4]) → verti1RemoveUndefined(verti1) → verSequence(Midpoint[Element[ver, i]], i, 1, Length[ver]) → milverSequence((length, y(Element[milver, i])), i, 1, Length[l3]) → verbSequence(Vector[Element[milver, i], Element[verb, i]], i, 1, Length[l3]) → l5Sequence(Translate[Element[ver, i], Vector[(g / 10 * Element[l5, i])]], i, 1, Length[ver]) → l6