Explore Number Patterns with Addition and Subtraction

Explore Number Patterns with Addition and Subtraction
Loading the math board and drawing, please wait…
2023-06-24 18:38
This example demonstrates the addition or subtraction pattern in a sequence of numbers, helping students discover the pattern and figure out how to continue the sequence. Using GeoGebra commands such as Sequence, Min, and Element, students can visually understand the concept of number sequences. Suitable for 4-5 grade students to learn about identifying or generating numerical patterns, correcting errors in patterns, or interpreting pattern features.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.5772282716165421, 0.7782178867143921, 0.1860809768849399, 0.8727684193678532, 0.32078461393601765, 0.6966950978452615, 0.5997337230698409, 0.06077452879160551, 0.20490292781736558, 0.8913982321541603, 0.6887637574705286, 0.678860719657529, 0.16433646917662523, 0.591572907540836, 0.32035571797491835, 0.11565662033151111, 0.946441649719177, 0.27053417686828185, 0.7487017163803429, 0.4384749182620633, 0.40019279063434615, 0.9188097475414247, 0.45509283546101575, 0.27472473020260835, 0.2658020374566143, 0.1285956284664711, 0.20514661010666127, 0.3419636204364093, 0.1266179090202311, 0.9420651191465486, 0.4454661047355585, 0.4317419981120512, 0.5673898647754426, 0.6943439411327604, 0.9355300417944526, 0.41550838642649285, 0.45508474348314665, 0.03742323696956816, 0.8288086442911913, 0.5361472515562876, 0.14022842236186306, 0.653928317927499, 0.7399794069403377, 0.13621089342121942, 0.40822078411636475, 0.26949587491518634, 0.9226860246333086, 0.24358519233915532, 0.3412338534010827, 0.9095324102515462, 0.2445393364079097, 0.32719325277881794, 0.3421529248311042, 0.13033738925710822, 0.4730027155809593, 0.4693952003230946, 0.5125572649472089, 0.5159695736975112, 0.5674345835371339, 0.9479809057940038, 0.8469619910317061, 0.590819804550891, 0.4588803012241707, 0.08908175171163885, 0.8854544171267202, 0.6236250809272714, 0.43020998126629095, 0.5229415397126279, 0.17645798724095446, 0.31161679594262404, 0.47489350336036273, 0.08729019045686079, 0.31064420894599043, 0.8236439647067858, 0.653083998754092, 0.2280535726535636, 0.43598696074274884, 0.6684448297882823, 0.2587499103990693, 0.9743111377568535, 0.6526166520839958, 0.25876262208772033, 0.461351235753515, 0.0637774057340328, 0.334480307236624, 0.9037099789731815, 0.3099993419165156, 0.32663709383505346, 0.2328513965431105, 0.27068281598652555, 0.967170126062371, 0.5293030574427937, 0.07445776124683352, 0.5942087707353476, 0.7528589450032857, 0.5255944948382602, 0.53440772819744, 0.6523865665781479, 0.7485717415077584, 0.690947710480758, 0.6411946981264767, 0.14203163501475213, 0.813739620663265, 0.3855748749341333, 0.1378469619661762, 0.6312901630709012, 0.3750255768574534, 0.6149762034035522, 0.7897647764932151, 0.1433171414825095, 0.5415601198175608, 0.05088841857324402, 0.5959481285231992, 0.11663594317725316, 0.30639830300436405, 0.5426184914826011, 0.22616892411687287, 0.7370058366824519, 0.7064344588041077, 0.27776330958599565, 0.6921779594072323, 0.9520200782231236, 0.5996412876802728, 0.3225569542216779, 0.8962616739672442, 0.3032417145416085, 0.02981864725114584, 0.23551459726790133, 0.3253761938370465, 0.24145497433007862, 0.2150431439597653, 0.8836573747914785, 0.5236854035018359, 0.05857008004948221, 0.03670285766014083, 0.18840555093512132, 0.8606167769076101, 0.7348646530062893, 0.8913828476479506, 0.8682168302468313, 0.5055239633467334, 0.5525800680209683, 0.34793462389222096, 0.8172254370099187, 0.913706392907939, 0.14641152242661692, 0.016819646932496417, 0.6035019416092835, 0.031886300082842635, 0.07814031858019009, 0.14825933803911828, 0.09710677125475492, 0.644280881308323, 0.726553028130966, 0.7298555783083527, 0.09685109885949159, 0.023130902820034573, 0.30487616716906907, 0.033163787770262985, 0.7756056630434714, 0.15996067673861555, 0.46622658704519426, 0.4122065244887696, 0.7571138960159866, 0.13594237899855477, 0.9330369318547271, 0.665108819235147, 0.162568680468092, 0.6515261229243265, 0.8190613304340925, 0.16291782746500363, 0.0027012069428718477, 0.05697080469835493, 0.062401648363462854, 0.8572368012279309, 0.5208096835199705, 0.2965735732438918, 0.7350148162802549, 0.8705603260436433, 0.8340194984906901, 0.7102448967330856, 0.3883716217092312, 0.9201401748474342, 0.3841199582548486, 0.9766134155407714, 0.5063335981260207, 0.25784274988712663, 0.28556277473264335, 0.2620698804677332, 0.7948983439983888, 0.5247768012398515, 0.6366351803173702, 0.5200705429217891, 0.5642356854790325, 0.5704765385404011, 0.12043550548993245, 0.8446211522691587, 0.6813952579197537, 0.38211807448612267, 0.035082651375737094}
  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, {215, 212, 209, 206, 203, 200}
  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, {665.2857142857143, 559.5714285714287, 453.8571428571429, 348.14285714285717, 242.42857142857144, 136.71428571428567}
  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, {-3, -3, -3, -3, -3}
  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 Drawing Prompt Reference

This is a line segment graph with numbered markers. The line has numbers arranged in an addition or multiplication pattern. Markers are at the ends of the line, and input boxes are used for entering starting numbers. The layout includes a title and input boxes, presenting a mathematical sequence visualization tool.
The prompt above was compiled from the original drawing commands and is for reference only.