Non-transitive Spinners Probability Simulation and Comparison
Loading the math board and drawing, please wait…
In collections
Statistics Demonstrations
Statistics Demonstrations
Statistics Demonstrations
Statistics Demonstrations
Statistics Demonstrations
This GeoGebra example demonstrates the counterintuitive phenomenon of non-transitive spinners, where three spinners (red, green, blue) exhibit cyclic winning advantages across repeated trials, resembling rock-paper-scissors dynamics. Core mathematical concepts include probability and statistics, random experiments, expected value, proportional comparison, and non-transitive relations. The construction uses GeoGebra commands such as Textfield, Element, Circle, Sequence, Vector, Rotate, Segment, Polygon, and LaTeX, together with objects like rand, listr/listg/listb, inputBoxR/G/B, trials, θ_R/G/B, n_R/G/B, C_R/G/B, c_R/G/B, P_R/G/B to create spinner sectors, rotation angles, trial-count input boxes, and win-rate statistics lists. It is suitable for secondary-school probability and statistics units, classroom inquiry, after-class simulation experiments, and intuitive demonstrations of non-transitive dice or spinner principles.
GeoGebra Commands & Parameters
Textfield(listr) → inputBoxRTextfield(listg) → inputBoxGTextfield(listb) → inputBoxBTextfield(trials) → inputBox1Element(listr, round(θ_R / 60 + 0.5)) → n_RElement(listg, round(θ_G / 60 + 0.5)) → n_GElement(listb, round(θ_B / 60 + 0.5)) → n_BCircle(C_R, 2) → c_RCircle(C_G, 2) → c_GCircle(C_B, 2) → c_BSequence(Rotate[P_R, ((k * 60))°, C_R], k, 0, 5) → listrptSequence(CircleSector[C_R, Element[listrpt, Mod[k, 6] + 1], Element[listrpt, Mod[k + 1, 6] + 1]], k, 0, 5) → listrsegElement(listrseg, 1) → rseg1Element(listrseg, 2) → rseg_2Element(listrseg, 3) → rseg_3Element(listrseg, 4) → rseg_4Element(listrseg, 5) → rseg_5Element(listrseg, 6) → rseg_6Sequence(Rotate[P_G, ((k * 60))°, C_G], k, 0, 5) → listgptSequence(CircleSector[C_G, Element[listgpt, Mod[k, 6] + 1], Element[listgpt, Mod[k + 1, 6] + 1]], k, 0, 5) → listgsegElement(listgseg, 1) → gseg_1Element(listgseg, 2) → gseg_2Element(listgseg, 3) → gseg_3Element(listgseg, 4) → gseg_4Element(listgseg, 5) → gseg_5Element(listgseg, 6) → gseg_6Sequence(Rotate[P_B, ((k * 60))°, C_B], k, 0, 5) → listbptSequence(CircleSector[C_B, Element[listbpt, Mod[k, 6] + 1], Element[listbpt, Mod[k + 1, 6] + 1]], k, 0, 5) → listbsegElement(listbseg, 1) → bseg_1Element(listbseg, 2) → bseg_2Element(listbseg, 3) → bseg_3Element(listbseg, 4) → bseg_4Element(listbseg, 5) → bseg_5Element(listbseg, 6) → bseg_6Vector(C_R, C_R + (1.5, 0)) → v_RVector(C_G, C_G + (1.5, 0)) → v_GVector(C_B, C_B + (1.5, 0)) → v_BRotate(v_R, θ_R°, C_R) → arrow_RRotate(v_G, θ_G°, C_G) → arrow_GRotate(v_B, θ_B°, C_B) → arrow_BSegment((0, 0), (0, 5.5)) → yaxis_1Polygon(Xrb_5, Xrb_6, Xrb_6 + (0, (5 * ebr / count)), Xrb_5 + (0, (5 * ebr / count))) → polyebr, a, b, c, dLaTeX(bg, true, true) → text1LaTeX(br, true, true) → text2LaTeX(ebr, true, true) → text3LaTeX(egb, true, true) → text4LaTeX(erg, true, true) → text5LaTeX(gb, true, true) → text6LaTeX(gr, true, true) → text7LaTeX(rb, true, true) → text8LaTeX(rg, true, true) → text9Polygon(Xrb_1, Xrb_2, Xrb_2 + (0, (5 * rb / count)), Xrb_1 + (0, (5 * rb / count))) → polyrb, e, f, i, jPolygon(Xrb_3, Xrb_4, Xrb_4 + (0, (5 * br / count)), Xrb_3 + (0, (5 * br / count))) → polybr, g, h, k, lSegment((-8, 8), (-8, 13.5)) → yaxis_2Segment((8, 8), (13, 8)) → xaxis_3Segment((8, 8), (8, 13.5)) → yaxis_3Segment((-8, 8), (-3, 8)) → xaxis_2Segment((0, 0), (5, 0)) → xaxis_1Polygon(Xbg_5, Xbg_6, Xbg_6 + (0, (5 * egb / count)), Xbg_5 + (0, (5 * egb / count))) → polyegb, m, n, p, qPolygon(Xbg_1, Xbg_2, Xbg_2 + (0, (5 * bg / count)), Xbg_1 + (0, (5 * bg / count))) → polybg, xbg_1, xbg_2, r, sPolygon(Xbg_3, Xbg_4, Xbg_4 + (0, (5 * gb / count)), Xbg_3 + (0, (5 * gb / count))) → polygb, t, a_1, b_1, c_1Polygon(Xgr_5, Xgr_6, Xgr_6 + (0, (5 * erg / count)), Xgr_5 + (0, (5 * erg / count))) → polyerg, xgr_5, xgr_6, d_1, e_1Polygon(Xgr_1, Xgr_2, Xgr_2 + (0, (5 * gr / count)), Xgr_1 + (0, (5 * gr / count))) → polygr, xgr_1, xgr_2, f_1, g_1Polygon(Xgr_3, Xgr_4, Xgr_4 + (0, (5 * rg / count)), Xgr_3 + (0, (5 * rg / count))) → polyrg, xgr_3, xgr_4, h_1, i_1