乘除法数列模式探索:通过几何图形发现规律

乘除法数列模式探索:通过几何图形发现规律
几何画板及绘图内容加载中,请稍等……
2023-08-29 03:19
本范例通过GeoGebra动态演示乘除法数列的生成规律,帮助学生理解数列的递推关系。核心数学概念包括数列定义、等比/等差数列、序列生成方法。作图要点涉及使用RandomUniform生成随机数、Sequence构建数列、Min和Max确定数列范围、Textfield标注关键数值。适合小学高年级学生用于课堂练习或课后拓展,适用于数学教学辅助工具。

GeoGebra 命令及参数

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.07942720936536823, 0.0857247944443241, 0.10471896353332831, 0.24574403378735687, 0.9173134022142732, 0.8452816261487427, 0.5215417489990848, 0.6923150342259613, 0.4446114463620126, 0.43719955743491634, 0.7985806814625942, 0.7377323140411584, 0.5500484904396661, 0.2690585668568699, 0.9290345453862375, 0.7019510359664392, 0.5633470927159558, 0.5698424922958462, 0.7745344029547644, 0.7736416394742986, 0.2978762117494556, 0.6459579630883499, 0.4313577629443137, 0.5217529784981291, 0.40220923385149326, 0.9137058925085683, 0.6623860294075294, 0.36252135726423007, 0.6347765263871351, 0.11903133271459064, 0.8963903431408228, 0.49698492188461485, 0.9152048672736423, 0.09782939022272834, 0.7586044805317359, 0.778232701100436, 0.168777933595431, 0.8934727381943108, 0.037353547303336454, 0.5677253369822002, 0.6967307327768075, 0.9225531255038791, 0.020755760914515246, 0.6960690990752169, 0.6848086853174538, 0.2750925605762394, 0.6151997814169858, 0.3556076381462363, 0.4356752864069918, 0.5416812515817155, 0.20342309509653442, 0.7101153233298403, 0.5773447351049681, 0.7871377188400523, 0.20457783398122115, 0.9507338073660268, 0.16984508683156857, 0.49836325017085814, 0.6916680651279948, 0.45708835107009843, 0.40578413952620934, 0.8830756850983272, 0.663178540725129, 0.6682527347297316, 0.32739468628670726, 0.236059885529672, 0.5255873047001497, 0.5399014530555872, 0.0029775592929627013, 0.2904593695794872, 0.4617661180970541, 0.06159571517695414, 0.9594401398588953, 0.3234614114745719, 0.5970194404064968, 0.9016940325012368, 0.47484468804045415, 0.8084902037862874, 0.5996994964990339, 0.04686127964604203, 0.7455356457069117, 0.29972476412633015, 0.23695700388013985, 0.41856947547896217, 0.9165060273214509, 0.4593964883737454, 0.6282484009847827, 0.010341424393970197, 0.5711930685530312, 0.05389737673405972, 0.4797179537289495, 0.7467828792873039, 0.7078599316370938, 0.9212442234999432, 0.1615090340930462, 0.04868160099770905, 0.884123881178039, 0.03989432722516707, 0.7974316269039894, 0.8776212960567468, 0.6790345559720262, 0.8972976873476224, 0.7122239093810402, 0.8486664496781219, 0.10338344589855396, 0.8258965654680681, 0.10589358877312002, 0.7807180703916653, 0.6436443124851278, 0.7945467961681323, 0.9573104469193279, 0.9011237048399668, 0.6130971486330167, 0.7445368202548387, 0.22034425316776787, 0.09404425499210099, 0.9452806974817352, 0.7715185631781731, 0.5654032554926653, 0.890938233340826, 0.409948167389419, 0.5577408813580723, 0.2872258818201939, 0.8363183806372553, 0.07016677814744295, 0.20298984455846777, 0.24621452836629687, 0.6026684647328134, 0.20110652792655284, 0.5375910705752833, 0.6654726795616782, 0.595077645610722, 0.42640567961422693, 0.916718431722183, 0.779017543746905, 0.6587575649218503, 0.5567789850113872, 0.3620792799439119, 0.32838861682717946, 0.5111520148555156, 0.9777521184285154, 0.9648098772562564, 0.06505745338722857, 0.8648313100692937, 0.599059831964911, 0.5921167377157862, 0.8146677769737093, 0.15778390300695402, 0.21733705007718482, 0.5898369293015789, 0.36619482990841373, 0.05407484253098381, 0.05626178598709025, 0.7836677401286751, 0.30461179357330476, 0.17013527826696637, 0.5442749560859643, 0.7133292346899544, 0.5195857211006999, 0.5901808041119582, 0.8194071183379477, 0.4263743546662178, 0.2550991235553191, 0.06842461785741843, 0.4035835654314608, 0.26175004545836944, 0.63570371865688, 0.14586071126068303, 0.42505839077158364, 0.23753938447638542, 0.7443608172478833, 0.7454357659221936, 0.3973455874138094, 0.872577271887275, 0.5045083133004453, 0.15141180931842876, 0.8261685616160317, 0.597835020076026, 0.5251176270822311, 0.5466409992223508, 0.3225422433550902, 0.05060621414547222, 0.9020641217535063, 0.16533179414895263, 0.6201303761013784, 0.10260381154099107, 0.2121327545820783, 0.8486802998615738, 0.9684882111508872, 0.622090924756341, 0.40741615001145015, 0.1364733358450485, 0.5307043101320291, 0.42011980774565616, 0.34773552734230706, 0.6594392805316553, 0.0042976741511585505, 0.2318416593612742, 0.3870252284288633, 0.10473078546105198}
  2. PixelsToPoint((xMin, yMin), (xMax, yMax), (PXwidth, PXheight), (31, 350)) → lineStart
  3. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  4. If(typeMultiplication, 1 + floor((currentRandomSeeds(1) * 5)), If[typeAddition, 1, 100] + floor((currentRandomSeeds(1) * If[typeAddition, 100, 200]))) → numStart
  5. If(typeAddition ∨ typeMultiplication, 1, -1) → numSign
  6. If(typeMultiplication, Sequence[(numStart * numInc^(k)), k, 0, 7], Sequence[numStart + ((numSign * numInc) * k), k, 0, 7]) → numSequence
  7. Sequence(numSequence(k), k, 1, numShown + 1) → numsUsed, {1, 2, 4, 8}
  8. If(typeMultiplication, 0, Max[Min[numsUsed] - numInc, 0]) → minNum
  9. If(typeAddition ∨ typeSubtraction, Max[numsUsed] + numInc, (ceil(Max[numsUsed] / 50) * 50)) → maxNum
  10. If(smallHops, -0.04, 0) → shiftLabels
  11. Sequence(lineStart + ((k * unitLength), 0), k, 0, maxNum - minNum) → linePoints
  12. Sequence(Sum[hopLengths, k] + x(hopStart), k, 0, Length[hopLengths]) → listFunStart, {45.8, 60.599999999999994, 90.2, 149.4, NaN, NaN}
  13. Sequence(hopStart + (((k * numSign) * hopLength), 0), k, 0, numShown) → hopPoints
  14. Min({animateSolutionIndex, numShown}) → solutionLabelIndex
  15. Element({textNumbers3, textNumbers4, textNumbers5}, numShown - 2) → textNumbers
  16. Textfield(input1) → InputBox1
  17. Textfield(input2) → InputBox2
  18. Corner(5) → layoutAppSize
  19. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  20. If(typeAddition, "\text{ \plus }", "\text{ \minus }") → textSign
  21. Take(numsUsed, 1, numShown) → labelNums
  22. Take(hopPoints, 1, numShown) → labelLocationsAddSub
  23. If(¬typeMultiplication, hopPoints(Length[hopPoints] - 1), (listFunStart(numShown), 0)) → finalPoint
  24. If(typeAddition, x(hopStart), x(hopStart) - (hopLength * (numShown - 1))) → funcStart
  25. If(typeAddition, x(hopStart + (hopLength * (numShown - 1))), x(hopStart)) → funcEnd
  26. Sequence(startTopPoint + (numSign * ((hopLength * k), 0)), k, 0, numShown - 1) → topPoints
  27. If(typeMultiplication, hopStart + (Sum[hopLengths, numShown], 0), hopPoints(numShown + 1)) → SolutionPoint
  28. Zip(Text[(("" * topLabel) * ""), B, true, true, 0, 1], B, Take[topPoints, 1, animateHopIndex]) → topLabels
  29. Zip(Segment[A + (0, (tickHeight * 1.5)), A - (0, (tickHeight * 1.5))], A, labelLocationsAddSub) → labelTicks
  30. Point(linePoints) → studentPoint
  31. Min({x(studentPoint), x(finalPoint)}) → studentStart
  32. Max({x(studentPoint), x(finalPoint)}) → studentEnd
  33. Sequence(Segment[lineStart + ((k * unitLength), tickHeight), lineStart + ((k * unitLength), (-tickHeight))], k, 0, maxNum - minNum) → ticksAddSub
  34. Take(listFunStart, 2, Length[listFunStart]) → listFunEnd
  35. Sequence(hopStart + (Sum[hopLengths, k], 0), k, 0, numShown - 1) → labelLocationsMultiplication
  36. Sequence(numsUsed(k + 1) - numsUsed(k), k, 1, numShown) → hopLengthNum, {1, 2, 4}
  37. Zip(startTopPoint + If[smallHops, (-0.04, 0), (0, 0)] + (((-hopLength1)) / 2 + Sum[hopLengths, k - 1] + hopLengths(k) / 2, shiftLabels), k, Sequence[numShown]) → topPointsMult
  38. Zip(hopStart + (Sum[hopLengths, k - 1], 0), k, Sequence[numShown]) → hopPointsMult
  39. Zip(Text[(("" * A) * ""), B, true, true, 0, -1], A, Take[numsUsed, 1, solutionLabelIndex], B, Zip[k - (0, hintLabelShift), k, Take[labelLocationsMultiplication, 1, solutionLabelIndex]]) → solutionLabelsMultiplication
  40. Text((("" * numCorrect) * ""), SolutionPoint - (0, hintLabelShift), true, true, 0, -1) → solutionLabel
  41. Take(hopPointsMult, 1, Min[animateSolutionIndex, numShown]) → hopPointsMultSolution
  42. Segment(studentPoint - (0, (2 * hintLabelShift)), studentPoint - (0, (4 * hintLabelShift))) → studentArrow
  43. Text((("" * studentPointValue) * ""), studentPoint - (0, (If[lowerLabel, 4, 1] * hintLabelShift)), true, true, 0, -1) → studentPointLabel
  44. Sequence(Segment[lineStart + ((before10 * unitLength) + ((k * 10) * unitLength), (2 * tickHeight)), lineStart + ((before10 * unitLength) + ((k * 10) * unitLength), (-2 * tickHeight))], k, 0, floor((maxNum - minNum) / 10) - 1) → ticksLargeAddSub
  45. Take(hopPoints, 1, numShown) → hopPointsAddSub
  46. Take(hopPointsAddSub, 1, Min[animateSolutionIndex, numShown]) → hopPointsAddSubSolution
  47. expandCircle(studentPoint, 8 + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingCircle
  48. If(smallHops, "\footnotesize", "") → textSize
  49. Zip(Text[(((("" * textSize) * "\text{") * topLabelMult) * "}"), B, true, true, 0, 1], K, hopLengthNum, B, Take[topPointsMult, 1, animateHopIndex]) → topLabelsMult
  50. Sequence(linePoints(A + 1), A, labelNums(2), Length[linePoints], labelNums(2)) → tickMultiplyLocations
  51. Zip(Segment[A + (0, (-tickHeight)), A + (0, tickHeight)], A, tickMultiplyLocations) → ticksMultiplication
  52. Sequence(Segment[tickMultiplyLocations(A) + (0, (-2 * tickHeight)), tickMultiplyLocations(A) + (0, (tickHeight * 2))], A, numInc, 200, numInc) → ticksMultiplicationLarge
  53. Zip(If[k < x < j, (jumpHeight * abs(sin((pi / L * (x - k))))) + y(lineStart)], k, listFunStart, j, listFunEnd, L, Take[hopLengths, 1, numShown - 1]) → hopCurveMult
  54. Take(Zip[If[k < x < j, (jumpHeight * abs(sin((pi / L * (x - k))))) + y(lineStart)], k, listFunStart, j, listFunEnd, L, Take[hopLengths, 1, numShown]], 1, animateSolutionIndex - 1) → hopCurveMultSolution
  55. Zip(Text[(("" * A) * ""), B, true, true, 0, -1], A, labelNums, B, Zip[k - (0, hintLabelShift), k, If[typeMultiplication, labelLocationsMultiplication, labelLocationsAddSub]]) → labels
  56. Zip(Text[(("" * A) * ""), B, true, true, 0, -1], A, Take[numsUsed, 1, solutionLabelIndex], B, Zip[k - (0, hintLabelShift), k, Take[hopPoints, 1, solutionLabelIndex]]) → solutionLabelsAddSub
  57. Zip(Text[K, J, true, true, 0, 1], K, {minNum, maxNum}, J, {lineStart, lineEnd} + (0, hintLabelShift)) → endLabels
  58. Zip(Segment[A, A + (0, (3 * tickHeight))], A, {lineStart, lineEnd}) → endTicks
  59. Segment(lineStart - ((15 * windowWidth / PXwidth), 0), lineEnd + ((15 * windowWidth / PXwidth), 0)) → numberLine

AI 绘图提示语参考

绘制一条水平数轴,轴上均匀分布刻度线,每十个单位有更长的刻度。数轴上标出若干连续整数点,并用彩色箭头或跳跃线段表示从起点开始按固定步长(如加、减、乘)依次到达后续数字的过程。每个跳跃上方标注对应的数字或运算符号,起点和终点处有标签显示数值。整体布局清晰,适合展示数列规律。
以上提示语为根据原始绘图命令整理而来,仅供参考。