Multiplication and Division Number Patterns with GeoGebra

Multiplication and Division Number Patterns with GeoGebra
Loading the math board and drawing, please wait…
2023-08-29 03:19
This example demonstrates how to generate and analyze number sequences using multiplication and division in GeoGebra. Key concepts include sequence generation, arithmetic and geometric progressions, and pattern recognition. Construction involves using RandomUniform for random seeds, Sequence to build sequences, Min and Max for range control, and Textfield for labeling. Suitable for middle school students in math education, providing interactive learning tools.

GeoGebra Commands & Parameters

  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 Drawing Prompt Reference

Draw a horizontal number line with evenly spaced tick marks, with longer ticks every ten units. Mark several consecutive integer points on the linecars, and use colored arrows or hop segments to show the progression from a starting number to subsequent numbers by a fixed step (addition, subtraction, or multiplication). Label each hop with the corresponding number or operation sign, and place labels at the start and end points showing their values. The layout should be clear for demonstrating number patterns.
The prompt above was compiled from the original drawing commands and is for reference only.