Comparing Division Models: Equal Sharing, Repeated Subtraction, and Arrays
Loading the math board and drawing, please wait…
This example compares several representations of division by showing how different models produce the same quotient (and potential remainder): equal sharing, repeated subtraction, and rectangular (array) grouping. Students are prompted to connect division to multiplication by rewriting a division statement as a multiplication sentence and solving it. Key concepts include modeling division as repeated grouping, interpreting quotient and remainder, and using the relationship between division and multiplication (divisor × quotient = dividend − remainder). The construction uses randomized problem generation (RandomUniform with allRandomSeeds, currentDividend, currentDivisor, randIndex/caseNum), organizes data flow with sequence tools (Sequence, IndexOf/Element/Take/Zip), computes quotient and remainder via Div (currentQuotient, remainder, numWholeTally), and builds visual array structures using geometric primitives (Corner, Segment, Polygon, plus Flatten to combine) along with text/feedback elements (Text, hint groups, cEQUAL/cDIVIDE, student input). Best suited for grades 4–5 to strengthen division modeling, equation writing, and conceptual understanding through interactive comparison.
GeoGebra Commands & Parameters
RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.8423875051042135, 0.7526552070531833, 0.6110852451992259, 0.4099043155724901, 0.021509608753714, 0.06732719732233365, 0.04342350237929588, 0.2829575632854226, 0.9462462104710566, 0.2779995734953775, 0.7475007610400503, 0.8531659870443156, 0.6638096911051335, 0.75829698179575, 0.26929234051444634, 0.7358121475051854, 0.26052857233176885, 0.9858111556849061, 0.719875594772922, 0.14038651037955635, 0.38988961226886887, 0.08502502897005777, 0.6339080798624074, 0.2456443568380999, 0.1749587975379175, 0.8798543462988798, 0.21851534417684237, 0.49617891588002777, 0.9511170668230164, 0.8151776532222442, 0.04639049453699705, 0.20333343589726066, 0.0428888834788777, 0.28511445575696776, 0.30271821391693615, 0.9883835083273312, 0.6999200843294415, 0.19513739907294989, 0.3797841014687461, 0.2569644984490174, 0.09187955978157718, 0.9053680428881767, 0.4858154969323354, 0.6607022804870668, 0.33021245755284134, 0.6036069565943339, 0.17572344598443992, 0.7549253412798494, 0.05626508581051355, 0.8487873905508935, 0.050975434578909504, 0.5501932694080455, 0.8303307036805255, 0.11861833571896821, 0.733826930894824, 0.9201718650555176, 0.4346322260986038, 0.5991960636687792, 0.16757542821585805, 0.8191176753420408, 0.675162270303282, 0.8693144084060912, 0.48937340388780415, 0.9889044296450396, 0.6526426673726928, 0.5080931989363235, 0.6554471508008817, 0.3681312686084878, 0.5216447901186357, 0.03136985754883707, 0.36031694614092646, 0.9543977406087589, 0.5391290149024123, 0.33006311698113183, 0.3417991697552833, 0.6053129263578918, 0.15931595597144993, 0.842418988254286, 0.4221938040357015, 0.6842257903309064, 0.8808935064429438, 0.6816878103477814, 0.303122123860729, 0.44302172866938533, 0.4350937243042033, 0.08135722647378293, 0.19697651595559368, 0.48662447262414477, 0.05913958887645487, 0.6115796283217245, 0.6218805564998553, 0.5320756698423627, 0.34896663253806254, 0.7728840335301379, 0.23943003905099092, 0.4592340655093014, 0.847965857250423, 0.5666508194530249, 0.34529670616507324, 0.34024337743725674, 0.5547737097987645, 0.12615374434793902, 0.9720241092086732, 0.17096354452712592, 0.12285193335986061, 0.4872377469954148, 0.6810304819410277, 0.6395415482498733, 0.9877538771495491, 0.9739020800618146, 0.906957103801808, 0.475219031926396, 0.8045663072729657, 0.8311964750008354, 0.8220605487052456, 0.45433006173210483, 0.38804450114702876, 0.18591532225373888, 0.6013456035776169, 0.5902386612564284, 0.4714254755367403, 0.7145871198486826, 0.7905711849408456, 0.5396970153507289, 0.7868086059502695, 0.8382091397585135, 0.12913456183107458, 0.6597758750413981, 0.4203342003080856, 0.47406424765983113, 0.19814952073462747, 0.9571258710554313, 0.46917062170513774, 0.12678471175917497, 0.8707828304273976, 0.4548733834319995, 0.004536614078877677, 0.3635902034254978, 0.8770978999912357, 0.36193690571523335, 0.755640299827464, 0.3023288356923936, 0.8892785746418675, 0.9649701481873704, 0.723507883599412, 0.21558899897653047, 0.7951659818127885, 0.9044950883097932, 0.7112044590009037, 0.05972550878804619, 0.13853930425152008, 0.03408334696804246, 0.23791601752329844, 0.19415743171701816, 0.5735074947243917, 0.12467670212803178, 0.668766288402019, 0.29374618071218495, 0.317751296257717, 0.1753075126431198, 0.29008349449782256, 0.045451053871730075, 0.6151659857801569, 0.9665867831280271, 0.06111179083164283, 0.9597856276841269, 0.27270304078515556, 0.41437337055020895, 0.2878785396333206, 0.4378619665903485, 0.7588945298626673, 0.008019508308760479, 0.05308327666691498, 0.6760109627081038, 0.9626672863823164, 0.690508015205691, 0.03746565969091353, 0.3321056824781876, 0.7606139551166836, 0.3766540404360699, 0.9231393216633335, 0.060790665905520014, 0.5988866629444178, 0.07033914855788102, 0.7078450362638279, 0.40883418579393327, 0.1523143064195613, 0.04247755728928075, 0.23098109214513515, 0.14677100944284066, 0.40821720032126146, 0.9680851466739328, 0.28761063070211634, 0.05889250026877025, 0.23570425772674183, 0.4734279938990939, 0.03542459075876958, 0.330466915938727, 0.14298471345495983, 0.13277352205546858}IndexOf(true, onboardingRemaining) → onboardingCurrentElement({cornersGroup, cornersArray, cornersMultiply, cornersNumberLine}, onboardingCurrent) → cornersCurrentTake(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsElement(Remove[{3, 4, 5, 6, 7, 8, 9}, {currentQuotient}], 1 + floor((currentRandomSeeds(2) * 6))) → currentDivisorZip(If[A ≟ cDIVIDE, "\div", If[A ≟ cEQUAL, "=", ("" * A)]], A, studentInput) → studentCharsMidpoint(cornersArray(1), cornersArray(3)) → CenterArrayDiv(currentDivisor, 5) → numWholeTallyCorner(5) → layoutAppSizeSequence((A * lineStretchFactor), A, 0, lineLength, jumpSize) → numberPos, {0, 116.66666666666667, 233.33333333333334, 350, 466.6666666666667, 583.3333333333334, 700}Rotate(PolyLine[AnchorNumberLine + (-6, 10), AnchorNumberLine + (0, 4), AnchorNumberLine + (6, 10)], ((-2 * pi)) / 8, AnchorNumberLine + (0, 4)) → endArrowTemplateSequence(AnchorNumberLine + (((jumpSize * lineStretchFactor) * (A + 0.5)), (((-cos((2 * pi / 8))) * jumpSize) * lineStretchFactor / 2)), A, 0, currentQuotient - 1) → arcCenterSequence(Text[("" * (A * currentDivisor)), AnchorNumberLine + (numberPos(A + 1), 0), true, true, 0, -1], A, 0, currentQuotient) → xLblsReverse(Zip[CircleArc[A, AnchorNumberLine + (B, 0), AnchorNumberLine + (C, 0)], A, arcCenter, B, Take[numberPos, 2], C, numberPos]) → allArcsReverse(Zip[Text[("-" * currentDivisor), A + (0, (lineStretchFactor * ((0.5 * arcRadius) + 1.3))), true, true, 0, 0], A, arcCenter]) → textSubtractRemoveUndefined(Flatten[Sequence[Sequence[If[(groupColSize * j) + i ≤ currentQuotient, ((i * 20), ((-j) * 20))], i, 1, groupColSize], j, 0, groupRows - 1]]) → fullGroupTemplateSequence(AnchorGroups + ((i * 80), 0), i, 0, 8) → groupingAnchorsPixelsToPoint(Corner[1], Corner[3], Corner[5], (startButtonX + 160, startButtonY - 10)) → PxRightDisplayPixelsToPoint(Corner[1], Corner[3], Corner[5], (startButtonX + 10, startButtonY - 48)) → PxLeftDisplayPolygon({-5, 0}) → regionAnchorSegment(AnchorNumberLine + (-1, 0), AnchorNumberLine + ((lineLength * lineStretchFactor) + lineStretchFactor, 0)) → numberLineZip(Segment[AnchorNumberLine + (A, 5), AnchorNumberLine + (A, -5)], A, numberPos) → numberTicksSequence(allArcs(A), A, 1, animateNumberLine) → displayArcs, {}Reverse(Sequence[Translate[endArrowTemplate, (numberPos(A), 0)], A, 0, Length[numberPos] - 1]) → allArrowsSequence(allArrows(A), A, 1, animateNumberLine) → displayArrows, {}Sequence(Sequence[CenterArray + arrayOffset + ((30 * i), (20 * j)), i, 0, currentDivisor - 1], j, 0, currentQuotient - 1) → arrayAllPoints, {{(175.5, 235.5), (205.5, 235.5), (235.5, 235.5)}, {(175.5, 255.5), (205.5, 255.5), (235.5, 255.5)}, {(175.5, 275.5), (205.5, 275.5), (235.5, 275.5)}, {(175.5, 295.5), (205.5, 295.5), (235.5, 295.5)}, {(175.5, 315.5), (205.5, 315.5), (235.5, 315.5)}, {(175.5, 335.5), (205.5, 335.5), (235.5, 335.5)}}Flatten(Zip[Sequence[Translate[A, groupingAnchors(B)], B, 1, currentDivisor], A, fullGroupTemplate]) → groupedModelPolygon(cornersNumberLine) → boxNumberlinePolygon(cornersArray) → boxArrayPolygon(cornersGroup) → boxGroupPolygon(cornersMultiply) → boxMultiplyText("\textbf{Multiplication}", Midpoint[cornersMultiply(1), cornersMultiply(3)], true, true, 0, 0) → msgClickMultiplyTake(textSubtract, 1, animateNumberLine) → displayTextSubtractPolygon(cornersCurrent) → pulsingBoxTake(fullGroupTemplate, 1, animateGroup) → partialGroupTemplateZip(Translate[partialGroupTemplate, A], A, Take[groupingAnchors, 1, currentDivisor]) → displayGroupMidpoint(cornersArray(1), cornersMultiply(3)) → PCenterPolygon(cornersTitle) → boxTitleBackgroundPolygon(cornersTitle) → boxTitleText((((("\(" * currentDividend) * "\div") * currentDivisor) * "=\fbox{\phantom{2}}\)"), PCenter + (0, -15), true, true, 0, 0) → titleLine2Text("\text{Ways to Divide}", PCenter + (0, 35), true, true, 0, 0) → titleLine1Text((("\textbf{\(" * currentDivisor) * "\) Equal Groups}"), Midpoint[cornersGroup(1), cornersGroup(3)], true, true, 0, 0) → msgClickGroupText((("\textbf{Groups of \(" * currentDivisor) * "\)}"), Midpoint[cornersArray(1), cornersArray(3)], true, true, 0, 0) → msgClickArrayText("\textbf{Number line model}", Midpoint[cornersNumberLine(1), cornersNumberLine(3)], true, true, 0, 0) → msgClickNumberLineText((((((((("\(" * currentDividend) * "\div") * currentDivisor) * "=\Box\\\textsf\scalebox{0.85}{is the same as}\\") * currentDivisor) * "\times\Box=") * currentDividend) * "\)"), Midpoint[cornersMultiply(1), cornersMultiply(3)], true, true, 0, 0) → textMultiplyZip(A, A, Take[arrayAllPoints, 1, floor(animateArray)]) → displayArrayText((((((("\(" * (animateArray * currentDivisor)) * "\div") * currentDivisor) * "=") * animateArray) * "\)"), cornersArray(4), true, true, -1, 1) → arrayCounterText((((((("\(" * (animateGroup * currentDivisor)) * "\div") * currentDivisor) * "=") * animateGroup) * "\)"), cornersGroup(4), true, true, -1, 1) → groupCounter
AI Drawing Prompt Reference
Describe a graphic showing three division models: equal sharing, repeated subtraction, and array grouping. Include a number line with labels showing the quotient, an array of rectangles representing grouping, a rectangle representing repeated subtraction, and a multiplication model showing the relationship. Add text labels such as "Multiplication Model", "Equal Groups", "Array Groups", and "Number Line Model". Construction order: randomly generate a division problem, then draw the number line, array, rectangle, and multiplication model, followed by adding labels and text. The graphic helps students understand the connection between division and multiplication.
The prompt above was compiled from the original drawing commands and is for reference only.