Multiplication and Division Number Patterns with GeoGebra
Loading the math board and drawing, please wait…
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
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}PixelsToPoint((xMin, yMin), (xMax, yMax), (PXwidth, PXheight), (31, 350)) → lineStartTake(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsIf(typeMultiplication, 1 + floor((currentRandomSeeds(1) * 5)), If[typeAddition, 1, 100] + floor((currentRandomSeeds(1) * If[typeAddition, 100, 200]))) → numStartIf(typeAddition ∨ typeMultiplication, 1, -1) → numSignIf(typeMultiplication, Sequence[(numStart * numInc^(k)), k, 0, 7], Sequence[numStart + ((numSign * numInc) * k), k, 0, 7]) → numSequenceSequence(numSequence(k), k, 1, numShown + 1) → numsUsed, {1, 2, 4, 8}If(typeMultiplication, 0, Max[Min[numsUsed] - numInc, 0]) → minNumIf(typeAddition ∨ typeSubtraction, Max[numsUsed] + numInc, (ceil(Max[numsUsed] / 50) * 50)) → maxNumIf(smallHops, -0.04, 0) → shiftLabelsSequence(lineStart + ((k * unitLength), 0), k, 0, maxNum - minNum) → linePointsSequence(Sum[hopLengths, k] + x(hopStart), k, 0, Length[hopLengths]) → listFunStart, {45.8, 60.599999999999994, 90.2, 149.4, NaN, NaN}Sequence(hopStart + (((k * numSign) * hopLength), 0), k, 0, numShown) → hopPointsMin({animateSolutionIndex, numShown}) → solutionLabelIndexElement({textNumbers3, textNumbers4, textNumbers5}, numShown - 2) → textNumbersTextfield(input1) → InputBox1Textfield(input2) → InputBox2Corner(5) → layoutAppSizeonboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffsetIf(typeAddition, "\text{ \plus }", "\text{ \minus }") → textSignTake(numsUsed, 1, numShown) → labelNumsTake(hopPoints, 1, numShown) → labelLocationsAddSubIf(¬typeMultiplication, hopPoints(Length[hopPoints] - 1), (listFunStart(numShown), 0)) → finalPointIf(typeAddition, x(hopStart), x(hopStart) - (hopLength * (numShown - 1))) → funcStartIf(typeAddition, x(hopStart + (hopLength * (numShown - 1))), x(hopStart)) → funcEndSequence(startTopPoint + (numSign * ((hopLength * k), 0)), k, 0, numShown - 1) → topPointsIf(typeMultiplication, hopStart + (Sum[hopLengths, numShown], 0), hopPoints(numShown + 1)) → SolutionPointZip(Text[(("" * topLabel) * ""), B, true, true, 0, 1], B, Take[topPoints, 1, animateHopIndex]) → topLabelsZip(Segment[A + (0, (tickHeight * 1.5)), A - (0, (tickHeight * 1.5))], A, labelLocationsAddSub) → labelTicksPoint(linePoints) → studentPointMin({x(studentPoint), x(finalPoint)}) → studentStartMax({x(studentPoint), x(finalPoint)}) → studentEndSequence(Segment[lineStart + ((k * unitLength), tickHeight), lineStart + ((k * unitLength), (-tickHeight))], k, 0, maxNum - minNum) → ticksAddSubTake(listFunStart, 2, Length[listFunStart]) → listFunEndSequence(hopStart + (Sum[hopLengths, k], 0), k, 0, numShown - 1) → labelLocationsMultiplicationSequence(numsUsed(k + 1) - numsUsed(k), k, 1, numShown) → hopLengthNum, {1, 2, 4}Zip(startTopPoint + If[smallHops, (-0.04, 0), (0, 0)] + (((-hopLength1)) / 2 + Sum[hopLengths, k - 1] + hopLengths(k) / 2, shiftLabels), k, Sequence[numShown]) → topPointsMultZip(hopStart + (Sum[hopLengths, k - 1], 0), k, Sequence[numShown]) → hopPointsMultZip(Text[(("" * A) * ""), B, true, true, 0, -1], A, Take[numsUsed, 1, solutionLabelIndex], B, Zip[k - (0, hintLabelShift), k, Take[labelLocationsMultiplication, 1, solutionLabelIndex]]) → solutionLabelsMultiplicationText((("" * numCorrect) * ""), SolutionPoint - (0, hintLabelShift), true, true, 0, -1) → solutionLabelTake(hopPointsMult, 1, Min[animateSolutionIndex, numShown]) → hopPointsMultSolutionSegment(studentPoint - (0, (2 * hintLabelShift)), studentPoint - (0, (4 * hintLabelShift))) → studentArrowText((("" * studentPointValue) * ""), studentPoint - (0, (If[lowerLabel, 4, 1] * hintLabelShift)), true, true, 0, -1) → studentPointLabelSequence(Segment[lineStart + ((before10 * unitLength) + ((k * 10) * unitLength), (2 * tickHeight)), lineStart + ((before10 * unitLength) + ((k * 10) * unitLength), (-2 * tickHeight))], k, 0, floor((maxNum - minNum) / 10) - 1) → ticksLargeAddSubTake(hopPoints, 1, numShown) → hopPointsAddSubTake(hopPointsAddSub, 1, Min[animateSolutionIndex, numShown]) → hopPointsAddSubSolutionexpandCircle(studentPoint, 8 + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingCircleIf(smallHops, "\footnotesize", "") → textSizeZip(Text[(((("" * textSize) * "\text{") * topLabelMult) * "}"), B, true, true, 0, 1], K, hopLengthNum, B, Take[topPointsMult, 1, animateHopIndex]) → topLabelsMultSequence(linePoints(A + 1), A, labelNums(2), Length[linePoints], labelNums(2)) → tickMultiplyLocationsZip(Segment[A + (0, (-tickHeight)), A + (0, tickHeight)], A, tickMultiplyLocations) → ticksMultiplicationSequence(Segment[tickMultiplyLocations(A) + (0, (-2 * tickHeight)), tickMultiplyLocations(A) + (0, (tickHeight * 2))], A, numInc, 200, numInc) → ticksMultiplicationLargeZip(If[k < x < j, (jumpHeight * abs(sin((pi / L * (x - k))))) + y(lineStart)], k, listFunStart, j, listFunEnd, L, Take[hopLengths, 1, numShown - 1]) → hopCurveMultTake(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) → hopCurveMultSolutionZip(Text[(("" * A) * ""), B, true, true, 0, -1], A, labelNums, B, Zip[k - (0, hintLabelShift), k, If[typeMultiplication, labelLocationsMultiplication, labelLocationsAddSub]]) → labelsZip(Text[(("" * A) * ""), B, true, true, 0, -1], A, Take[numsUsed, 1, solutionLabelIndex], B, Zip[k - (0, hintLabelShift), k, Take[hopPoints, 1, solutionLabelIndex]]) → solutionLabelsAddSubZip(Text[K, J, true, true, 0, 1], K, {minNum, maxNum}, J, {lineStart, lineEnd} + (0, hintLabelShift)) → endLabelsZip(Segment[A, A + (0, (3 * tickHeight))], A, {lineStart, lineEnd}) → endTicksSegment(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.