File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/P009-pVONBrSA.js.map
{"version":3,"file":"P009-pVONBrSA.js","sources":["../../src/exercices/profs/P009.js"],"sourcesContent":["import { repere } from '../../lib/2d/reperes.js'\nimport { traceBarre } from '../../lib/2d/diagrammes.js'\nimport { nombreAvecEspace, texNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu, randint, calculANePlusJamaisUtiliser } from '../../modules/outils.js'\nimport { fraction } from '../../modules/fractions.js'\n\nexport const titre = 'Simulation of random experiments'\nexport const ref = 'P009'\nexport const uuid = '691a7'\n\n/**\n * Reconnaître une fonction affine\n* @author Erwan Duplessy\n* 6C30-1\n* D'après le document \"Attendus en fin de 3eme\"\n* On donne les fréquences d\\'apparition de chaque face d\\'un dé pour 10000 lancers.\n* L\\'élève interprète les résultats en les comparant aux probabilités théoriques.\n*/\n\nexport default function SimulateurAleatoire () {\n Exercice.call(this)\n this.nbQuestions = 1 // Ici le nombre de questions\n this.nbQuestionsModifiable = true // Active le formulaire nombre de questions\n this.nbCols = 1 // Le nombre de colonnes dans l'énoncé LaTeX\n this.nbColsCorr = 1// Le nombre de colonne pour la correction LaTeX\n // See the Exercise Class for an exhaustive list of available properties.\n this.correctionDetailleeDisponible = true\n this.correctionDetaillee = true\n this.sup = 1 // situation 1=dés\n this.sup2 = 10000 // nbLancers\n this.sup3 = false // true = équiprobable, false = jeu truqué\n\n // this.consigne = '<center><a title=\"Diacritica, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons\" href=\"https ://commons.wikimedia.org/wiki/File:Dice_(typical_role_playing_game_dice).jpg\"><img width=\"128\" alt=\"Dice (typical role playing game dice)\" src=\"https://upload.wikimedia .org/wikipedia/commons/thumb/e/e5/Dice_%28typical_role_playing_game_dice%29.jpg/128px-Dice_%28typical_role_playing_game_dice%29.jpg\"></a></center>'\n\n // this is where the exercise code begins this function creates a copy of the exercise\n this.nouvelleVersion = function () {\n // the numeroExercice variable can be retrieved to allow two copies of the same exo to be differentiated\n // For example, to be sure not to have the same point names by calling this exo twice on the same page\n\n let texte = '' // Nous utilisons souvent cette variable pour construire le texte de la question.\n let texteCorr = ''\n let nbFaces = 2 * randint(1, 5) + 2 // nombre de faces du dé : 4, 6, 8, 10 ou 12\n const nbLancers = parseInt(this.sup2) // nombre de lancers\n const tabEff = []// tableau d'effectifs temporaires - une dimension [eff]\n let S = 0 // effectif total\n const tabRes = [] // tableau des fréqeunces observées - deux dimensions [val, freq]\n this.listeCorrections = []\n this.listeQuestions = []\n const tabcoul = ['red', 'green', 'blue', 'black']\n const tabNbBoules = [randint(2, 5), randint(2, 5), randint(2, 5), randint(2, 5)]\n let nbBoules = 0; let f; let choix\n let face\n for (let i = 0; i < 4; i++) {\n nbBoules += tabNbBoules[i]\n }\n\n switch (parseInt(this.sup)) { //\n case 1: // Tirages de dés\n f = fraction(1, nbFaces)\n texteCorr = `Each face has the same probability of coming out: $${f.texFraction}\\\\approx ${texNombre(f.pourcentage, 2)}\\\\%$.<br>`\n\n texte += `We roll a die with ${nbFaces} faces ${nombreAvecEspace(nbLancers)} times.<br>We study the frequencies of appearance of each face.<br>We obtain the following results: <br>`\n if (this.sup3) {\n for (let i = 0; i < nbFaces; i++) {\n tabEff.push(0)\n }\n for (let i = 0; i < nbLancers; i++) {\n tabEff[randint(1, nbFaces) - 1]++\n }\n for (let i = 0; i < nbFaces; i++) {\n tabRes[i] = [i, calculANePlusJamaisUtiliser(tabEff[i] / nbLancers)]\n }\n } else {\n face = randint(1, nbFaces) // on choisit une face au hasard. Elle aura une fréquence déséquilibrée.\n for (let i = 0; i < nbFaces; i++) {\n tabEff.push(0)\n }\n for (let i = 0; i < nbFaces; i++) {\n tabEff.push(0)\n }\n for (let i = 0; i < nbLancers; i++) {\n tabEff[randint(1, nbFaces) - 1]++\n }\n S = tabEff[face - 1] * 3 / 4\n tabEff[randint(1, nbFaces, face) - 1] += S\n tabEff[face - 1] -= S\n for (let i = 0; i < nbFaces; i++) {\n tabRes[i] = [i, calculANePlusJamaisUtiliser(tabEff[i] / nbLancers)]\n }\n texteCorr += 'Here, experience shows that there is something which seems to distort this equiprobability like a rigged die.<br>'\n texteCorr += `Indeed, the frequency of the face $${face}$ is much lower than $${texNombre(f.pourcentage, 2)}\\\\%$.`\n }\n\n break\n\n case 2: // Tirage dans une urne\n face = randint(1, 4)\n texte += 'Balls of different colors are placed in an urn.<br>'\n texte += `There are $${tabNbBoules[0]}$ ${tabcoul[0]}, $${tabNbBoules[1]}$ ${tabcoul[1]}, $${tabNbBoules[2]}$ ${tabcoul[2]} and $${tabNbBoules[3]}$ ${tabcoul[3]}.<br>`\n texte += `We carry out $${texNombre(nbLancers)}$ draws with discount.<br>`\n texte += 'We study the frequencies of appearance of each color.<br>We obtain the following results: <br>'\n f = fraction(tabNbBoules[face - 1], nbBoules)\n if (this.sup3) {\n nbFaces = 4\n for (let i = 0; i < nbFaces; i++) {\n tabEff.push(0)\n }\n for (let i = 0; i < nbLancers; i++) {\n choix = randint(1, nbBoules)\n if (choix <= tabNbBoules[0]) {\n tabEff[0]++\n } else if (choix <= tabNbBoules[0] + tabNbBoules[1]) {\n tabEff[1]++\n } else if (choix <= tabNbBoules[0] + tabNbBoules[1] + tabNbBoules[2]) {\n tabEff[2]++\n } else {\n tabEff[3]++\n }\n }\n for (let i = 0; i < nbFaces; i++) {\n tabRes[i] = [i, calculANePlusJamaisUtiliser(tabEff[i] / nbLancers)]\n }\n } else {\n nbFaces = 4\n for (let i = 0; i < nbFaces; i++) {\n tabEff.push(0)\n }\n for (let i = 0; i < nbLancers; i++) {\n choix = randint(0, nbBoules - 1)\n if (choix < tabNbBoules[0]) {\n tabEff[0]++\n } else if (choix < tabNbBoules[0] + tabNbBoules[1]) {\n tabEff[1]++\n } else if (choix < tabNbBoules[0] + tabNbBoules[1] + tabNbBoules[2]) {\n tabEff[2]++\n } else {\n tabEff[3]++\n }\n }\n S = tabEff[face - 1] * 3 / 4\n tabEff[randint(1, 4, face) - 1] += S\n tabEff[face - 1] -= S\n for (let i = 0; i < nbFaces; i++) {\n tabRes[i] = [i, calculANePlusJamaisUtiliser(tabEff[i] / nbLancers)]\n }\n texteCorr += 'Here, experience shows that there is something that seems to distort this equiprobability like balls discernible by touch.<br>'\n texteCorr += `Indeed, the frequency of ${tabcoul[face - 1]} balls is much lower than $${f.texFraction}\\\\approx ${texNombre(f.pourcentage, 2)}\\\\%$.`\n }\n break\n }\n switch (parseInt(this.sup)) {\n case 1:\n texte += '$\\\\begin{array}{|l|' + 'c|'.repeat(nbFaces) + '}\\not'\n texte += '\\\\hline\\n'\n texte += '\\\\text{Side number}'\n for (let i = 0; i < nbFaces; i++) {\n texte += ` & \\\\textbf{\\\\text{${i + 1}}}`\n }\n texte += '\\\\\\\\\\\\hline\\n'\n texte += '\\\\text{Appearance frequency}'\n for (let i = 0; i < nbFaces; i++) {\n texte += ` & ${texNombre(100 * tabRes[i][1], 1)} \\\\%`\n }\n texte += '\\\\\\\\\\\\hline\\n'\n texte += '\\\\end{array}\\n$'\n texte += '<br>'\n if (this.correctionDetaillee) {\n const coef = 10\n const r = repere({\n grilleX: false,\n grilleY: 'dots',\n xThickListe: false,\n xLabelListe: false,\n yUnite: 1 / coef,\n yThickDistance: 1 * coef,\n yMax: 40,\n xMin: 0,\n xMax: 10,\n yMin: 0,\n axeXStyle: '',\n yLegende: 'frequencies in %'\n })\n\n const lstElementGraph = []\n for (let i = 0; i < nbFaces; i++) {\n // lstElementGraph.push(traceBar(((r.xMax - r.xMin) / nbFaces) * (i + 0.5), tabRes[i][1] * 10, i + 1), { unit: 1 / coef } )\n lstElementGraph.push(traceBarre(((r.xMax - r.xMin) / nbFaces) * (i + 0.5), tabRes[i][1] * 10, i + 1))\n }\n texte += mathalea2d({ xmin: -1, xmax: 11, ymin: -4, ymax: 5.5, pixelsParCm: 30, scale: 1 }, r, lstElementGraph)\n }\n break\n case 2:\n texte += '$\\\\begin{array}{|l|' + 'c|'.repeat(nbFaces) + '}\\not'\n texte += '\\\\hline\\n'\n texte += '\\\\text{Color of the ball}'\n for (let i = 0; i < nbFaces; i++) {\n texte += ` & \\\\textbf{\\\\text{${tabcoul[i].substring(0, tabcoul[i].length - 1)}}}`\n }\n texte += '\\\\\\\\\\\\hline\\n'\n texte += '\\\\text{Appearance frequency}'\n for (let i = 0; i < nbFaces; i++) {\n texte += ` & ${texNombre(100 * tabRes[i][1], 1)} \\\\%`\n }\n texte += '\\\\\\\\\\\\hline\\n'\n texte += '\\\\end{array}\\n$'\n texte += '<br>'\n if (this.correctionDetaillee) {\n const coef = 10\n const r = repere({\n grilleX: false,\n grilleY: 'dots',\n xThickListe: false,\n xLabelListe: false,\n yUnite: 1 / coef,\n yThickDistance: 1 * coef,\n yMax: 55,\n xMin: 0,\n xMax: 10,\n yMin: 0,\n axeXStyle: '',\n yLegende: 'frequencies in %'\n })\n\n const lstElementGraph = []\n for (let i = 0; i < nbFaces; i++) {\n // lstElementGraph.push(traceBar(((r.xMax - r.xMin) / nbFaces) * (i + 0.5), tabRes[i][1] * 10, tabcoul[i]), { unit: 1 / coef })\n lstElementGraph.push(traceBarre(((r.xMax - r.xMin) / nbFaces) * (i + 0.5), tabRes[i][1] * 10, tabcoul[i]))\n }\n texte += mathalea2d({ xmin: -1, xmax: 12, ymin: -4, ymax: 7, pixelsParCm: 30, scale: 1 }, r, lstElementGraph)\n }\n break\n }\n\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n }\n // If the following variables are defined, they cause the corresponding parameter forms to be displayed\n // They can be of 3 types: _numeric, _checkbox_or _text.\n // They are associated respectively with the sup, sup2 and sup3 parameters.\n\n this.besoinFormulaireNumerique = ['Type of experience', 2, '1: Drawing of dice\\n 2: Drawing from an urn']\n this.besoinFormulaire2Texte = ['Number of prints', `Type an integer: ${10000} for example`]\n this.besoinFormulaire3CaseACocher = ['Equiprobability', true]\n} // Fin de l'exercice.\n"],"names":["titre","ref","uuid","SimulateurAleatoire","Exercice","texte","texteCorr","nbFaces","randint","nbLancers","tabEff","S","tabRes","tabcoul","tabNbBoules","nbBoules","f","choix","face","i","fraction","texNombre","nombreAvecEspace","calculANePlusJamaisUtiliser","r","repere","lstElementGraph","traceBarre","mathalea2d","listeQuestionsToContenu"],"mappings":"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"}