math-exercises 3.0.85 → 3.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/exercises/exercise.d.ts +7 -0
- package/lib/exercises/exercise.d.ts.map +1 -1
- package/lib/exercises/math/calcul/arithmetics/decimalBoundingOnLine.js +1 -1
- package/lib/exercises/math/calcul/arithmetics/divisorsList.js +1 -1
- package/lib/exercises/math/calcul/arithmetics/evalFractionExpression.js +1 -1
- package/lib/exercises/math/calcul/arithmetics/index.d.ts +0 -10
- package/lib/exercises/math/calcul/arithmetics/index.d.ts.map +1 -1
- package/lib/exercises/math/calcul/arithmetics/index.js +0 -10
- package/lib/exercises/math/calcul/arithmetics/primeNumbers.js +1 -1
- package/lib/exercises/math/calcul/fractions/evalFractionExpression.d.ts +9 -0
- package/lib/exercises/math/calcul/fractions/evalFractionExpression.d.ts.map +1 -0
- package/lib/exercises/math/calcul/fractions/evalFractionExpression.js +113 -0
- package/lib/exercises/math/calcul/fractions/fractionSquare.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionSquare.js +1 -0
- package/lib/exercises/math/calcul/fractions/index.d.ts +2 -0
- package/lib/exercises/math/calcul/fractions/index.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/index.js +2 -0
- package/lib/exercises/math/calcul/fractions/powerNotation.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/powerNotation.js +1 -0
- package/lib/exercises/math/calcul/fractions/simplifyFraction.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/simplifyFraction.js +1 -0
- package/lib/exercises/math/calcul/fractions/simplifyFractionWithPrimeFactorization.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/simplifyFractionWithPrimeFactorization.js +1 -0
- package/lib/exercises/math/calcul/fractions/simplifyToFraction.d.ts +9 -0
- package/lib/exercises/math/calcul/fractions/simplifyToFraction.d.ts.map +1 -0
- package/lib/exercises/math/calcul/fractions/simplifyToFraction.js +168 -0
- package/lib/exercises/math/calcul/ordering/framing.js +3 -3
- package/lib/exercises/math/calcul/sign/absoluteNumber.d.ts.map +1 -1
- package/lib/exercises/math/calcul/sign/absoluteNumber.js +1 -0
- package/lib/exercises/math/calculLitteral/inequations/index.d.ts +2 -0
- package/lib/exercises/math/calculLitteral/inequations/index.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/inequations/index.js +2 -0
- package/lib/exercises/math/calculLitteral/inequations/isInequalityTrue.d.ts +15 -0
- package/lib/exercises/math/calculLitteral/inequations/isInequalityTrue.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/inequations/isInequalityTrue.js +143 -0
- package/lib/exercises/math/calculLitteral/inequations/minNumberInequality.d.ts +13 -0
- package/lib/exercises/math/calculLitteral/inequations/minNumberInequality.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/inequations/minNumberInequality.js +192 -0
- package/lib/exercises/math/calculLitteral/systems/verifySystemSolution.js +1 -1
- package/lib/exercises/math/functions/absolute/calculateDistanceBetweenNumbers.d.ts +8 -0
- package/lib/exercises/math/functions/absolute/calculateDistanceBetweenNumbers.d.ts.map +1 -0
- package/lib/exercises/math/functions/absolute/calculateDistanceBetweenNumbers.js +102 -0
- package/lib/exercises/math/functions/absolute/calculateDistanceWithAbsoluteValue.d.ts +10 -0
- package/lib/exercises/math/functions/absolute/calculateDistanceWithAbsoluteValue.d.ts.map +1 -0
- package/lib/exercises/math/functions/absolute/calculateDistanceWithAbsoluteValue.js +112 -0
- package/lib/exercises/math/functions/absolute/calculateWithAbsoluteValue.d.ts +8 -0
- package/lib/exercises/math/functions/absolute/calculateWithAbsoluteValue.d.ts.map +1 -0
- package/lib/exercises/math/functions/absolute/calculateWithAbsoluteValue.js +124 -0
- package/lib/exercises/math/functions/absolute/index.d.ts +3 -0
- package/lib/exercises/math/functions/absolute/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/absolute/index.js +3 -0
- package/lib/exercises/math/functions/basics/index.d.ts +1 -0
- package/lib/exercises/math/functions/basics/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/index.js +1 -1
- package/lib/exercises/math/functions/basics/valueTableCompletion.d.ts +2 -1
- package/lib/exercises/math/functions/basics/valueTableCompletion.d.ts.map +1 -1
- package/lib/exercises/math/functions/basics/valueTableCompletion.js +103 -31
- package/lib/exercises/math/functions/sqrt/index.d.ts +2 -0
- package/lib/exercises/math/functions/sqrt/index.d.ts.map +1 -1
- package/lib/exercises/math/functions/sqrt/index.js +2 -0
- package/lib/exercises/math/functions/sqrt/sqrtInequality.d.ts +10 -0
- package/lib/exercises/math/functions/sqrt/sqrtInequality.d.ts.map +1 -0
- package/lib/exercises/math/functions/sqrt/sqrtInequality.js +160 -0
- package/lib/exercises/math/functions/sqrt/squareRootCalculation.d.ts +8 -0
- package/lib/exercises/math/functions/sqrt/squareRootCalculation.d.ts.map +1 -0
- package/lib/exercises/math/functions/sqrt/squareRootCalculation.js +108 -0
- package/lib/exercises/math/geometry/angles/recognizeAngleType.d.ts.map +1 -1
- package/lib/exercises/math/geometry/angles/recognizeAngleType.js +0 -1
- package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLine.d.ts.map +1 -1
- package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLine.js +1 -1
- package/lib/exercises/math/geometry/cartesian/cartesianFromTwoPoints.js +1 -1
- package/lib/exercises/math/geometry/cartesian/cartesianFromVectorAndPoint.js +1 -1
- package/lib/exercises/math/geometry/index.d.ts +0 -1
- package/lib/exercises/math/geometry/index.d.ts.map +1 -1
- package/lib/exercises/math/geometry/index.js +0 -1
- package/lib/exercises/math/geometry/lines/cartesianEquationToReduced.js +1 -1
- package/lib/exercises/math/geometry/lines/cartesianEquationsIntersection.js +1 -1
- package/lib/exercises/math/geometry/lines/findParallelLineFromCartesianEquation.d.ts.map +1 -1
- package/lib/exercises/math/geometry/lines/findParallelLineFromCartesianEquation.js +1 -1
- package/lib/exercises/math/geometry/lines/findParallelLineFromReductEquation.d.ts.map +1 -1
- package/lib/exercises/math/geometry/lines/findParallelLineFromReductEquation.js +1 -1
- package/lib/exercises/math/geometry/vectors/lineFromDirectorVector.js +1 -1
- package/lib/exercises/math/powers/calculateNegativePower.d.ts.map +1 -1
- package/lib/exercises/math/powers/calculateNegativePower.js +1 -0
- package/lib/exercises/math/powers/powersDivision.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersDivision.js +2 -0
- package/lib/exercises/math/powers/powersMixOperations.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersMixOperations.js +1 -0
- package/lib/exercises/math/powers/powersPower.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersPower.js +2 -0
- package/lib/exercises/math/powers/powersProduct.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersProduct.js +2 -0
- package/lib/exercises/math/probaStat/basicStats/index.d.ts +0 -1
- package/lib/exercises/math/probaStat/basicStats/index.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/basicStats/index.js +0 -1
- package/lib/exercises/math/probaStat/index.d.ts +0 -2
- package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/index.js +0 -2
- package/lib/exercises/math/probaStat/stats1var/choseReasoningForIndicator.js +2 -2
- package/lib/exercises/math/probaStat/stats1var/compareSeriesDispersion.js +2 -2
- package/lib/exercises/math/probaStat/stats1var/getQuartileProportionQuestion.d.ts +12 -0
- package/lib/exercises/math/probaStat/stats1var/getQuartileProportionQuestion.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/stats1var/getQuartileProportionQuestion.js +178 -0
- package/lib/exercises/math/probaStat/stats1var/index.d.ts +1 -0
- package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/stats1var/index.js +1 -0
- package/lib/exercises/math/sampling/getSampleCountAndSize.d.ts +12 -0
- package/lib/exercises/math/sampling/getSampleCountAndSize.d.ts.map +1 -0
- package/lib/exercises/math/sampling/getSampleCountAndSize.js +95 -0
- package/lib/exercises/math/sampling/index.d.ts +2 -0
- package/lib/exercises/math/sampling/index.d.ts.map +1 -1
- package/lib/exercises/math/sampling/index.js +2 -0
- package/lib/exercises/math/sampling/samplingFrequency.d.ts +7 -0
- package/lib/exercises/math/sampling/samplingFrequency.d.ts.map +1 -0
- package/lib/exercises/math/sampling/samplingFrequency.js +106 -0
- package/lib/exercises/math/sets/intervals/index.d.ts +2 -0
- package/lib/exercises/math/sets/intervals/index.d.ts.map +1 -1
- package/lib/exercises/math/sets/intervals/index.js +2 -0
- package/lib/exercises/math/sets/intervals/intervalOnGraph.d.ts +8 -0
- package/lib/exercises/math/sets/intervals/intervalOnGraph.d.ts.map +1 -0
- package/lib/exercises/math/sets/intervals/intervalOnGraph.js +156 -0
- package/lib/exercises/math/sets/intervals/isNumberInInterval.d.ts +9 -0
- package/lib/exercises/math/sets/intervals/isNumberInInterval.d.ts.map +1 -0
- package/lib/exercises/math/sets/intervals/isNumberInInterval.js +174 -0
- package/lib/exercises/math/squareRoots/simpifySquareRoot.d.ts.map +1 -1
- package/lib/exercises/math/squareRoots/simpifySquareRoot.js +1 -0
- package/lib/exercises/math/squareRoots/squareRootIdentities.d.ts.map +1 -1
- package/lib/exercises/math/squareRoots/squareRootIdentities.js +1 -0
- package/lib/exercises/math/squareRoots/squareRootsDistributivity.d.ts.map +1 -1
- package/lib/exercises/math/squareRoots/squareRootsDistributivity.js +1 -0
- package/lib/exercises/math/squareRoots/squareRootsFractions.d.ts.map +1 -1
- package/lib/exercises/math/squareRoots/squareRootsFractions.js +1 -0
- package/lib/exercises/math/squareRoots/squareRootsProducts.d.ts.map +1 -1
- package/lib/exercises/math/squareRoots/squareRootsProducts.js +1 -0
- package/lib/exercises/math/squareRoots/squareRootsSum.d.ts.map +1 -1
- package/lib/exercises/math/squareRoots/squareRootsSum.js +1 -0
- package/lib/index.d.ts +60 -55
- package/lib/index.d.ts.map +1 -1
- package/lib/math/geometry/line.d.ts.map +1 -1
- package/lib/math/geometry/line.js +0 -11
- package/lib/server.js +21 -0
- package/lib/tests/exoTest.d.ts.map +1 -1
- package/lib/tests/exoTest.js +9 -2
- package/lib/tests/questionTest.d.ts.map +1 -1
- package/lib/tests/questionTest.js +21 -2
- package/lib/tree/nodes/equations/equalNode.d.ts.map +1 -1
- package/lib/tree/nodes/equations/equalNode.js +0 -1
- package/lib/utils/markdown/mdTable.d.ts +1 -1
- package/lib/utils/markdown/mdTable.d.ts.map +1 -1
- package/lib/utils/markdown/mdTable.js +10 -5
- package/package.json +1 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { randint } from "../../../../math/utils/random/randint.js";
|
|
4
|
+
import { sqrt } from "../../../../tree/nodes/functions/sqrtNode.js";
|
|
5
|
+
import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
|
|
6
|
+
import { isNumberNode } from "../../../../tree/nodes/numbers/numberNode.js";
|
|
7
|
+
import { square } from "../../../../tree/nodes/operators/powerNode.js";
|
|
8
|
+
import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
|
|
9
|
+
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
10
|
+
import { random } from "../../../../utils/alea/random.js";
|
|
11
|
+
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
12
|
+
const getPropositions = (n, { answer }) => {
|
|
13
|
+
const propositions = [];
|
|
14
|
+
addValidProp(propositions, answer);
|
|
15
|
+
const correctValue = parseAlgebraic(answer).evaluate();
|
|
16
|
+
const used = new Set([correctValue]);
|
|
17
|
+
while (propositions.length < n) {
|
|
18
|
+
const delta = randint(1, 5);
|
|
19
|
+
const sign = coinFlip() ? -1 : 1;
|
|
20
|
+
const candidate = correctValue + delta * sign;
|
|
21
|
+
if (candidate < 0 || used.has(candidate))
|
|
22
|
+
continue;
|
|
23
|
+
used.add(candidate);
|
|
24
|
+
const candidateTex = candidate.toTree().toTex();
|
|
25
|
+
tryToAddWrongProp(propositions, candidateTex);
|
|
26
|
+
}
|
|
27
|
+
return shuffleProps(propositions, n);
|
|
28
|
+
};
|
|
29
|
+
const getAnswer = (identifiers) => {
|
|
30
|
+
const { x } = identifiers;
|
|
31
|
+
const sqrtExpression = sqrt(reifyAlgebraic(x));
|
|
32
|
+
const answer = sqrtExpression.simplify().toTex();
|
|
33
|
+
return `${answer}`;
|
|
34
|
+
};
|
|
35
|
+
const getInstruction = (identifiers) => {
|
|
36
|
+
const { x } = identifiers;
|
|
37
|
+
const sqrtExpression = sqrt(reifyAlgebraic(x));
|
|
38
|
+
return `Calculer : $${sqrtExpression.toTex()}$`;
|
|
39
|
+
};
|
|
40
|
+
const getHint = (identifiers) => {
|
|
41
|
+
const { x } = identifiers;
|
|
42
|
+
return `Quel est le nombre qui, multiplié par lui-même, donne $${reifyAlgebraic(x).toTex()}$ ?`;
|
|
43
|
+
};
|
|
44
|
+
const getCorrection = (identifiers) => {
|
|
45
|
+
const { x } = identifiers;
|
|
46
|
+
const aNode = reifyAlgebraic(x);
|
|
47
|
+
const tex = aNode.toTex();
|
|
48
|
+
const answer = getAnswer(identifiers);
|
|
49
|
+
return `On remarque que $${tex} = ${square(answer.toTree()).toTex()}$.
|
|
50
|
+
|
|
51
|
+
On a donc $\\sqrt{${tex}} = ${answer}$.`;
|
|
52
|
+
};
|
|
53
|
+
const getKeys = (identifiers) => {
|
|
54
|
+
return [];
|
|
55
|
+
};
|
|
56
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
57
|
+
try {
|
|
58
|
+
const ansNode = parseAlgebraic(ans).simplify();
|
|
59
|
+
const answerNode = parseAlgebraic(answer).simplify();
|
|
60
|
+
if (!isNumberNode(ansNode))
|
|
61
|
+
return false;
|
|
62
|
+
return ansNode.equals(answerNode);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
return handleVEAError(err);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const getSquareRootCalculationQuestion = (ops) => {
|
|
69
|
+
const x = randint(0, 13) ** 2;
|
|
70
|
+
const squareX = 100 * randint(1, 13) ** 2;
|
|
71
|
+
const xChoices = [
|
|
72
|
+
x.toTree().toIdentifiers(),
|
|
73
|
+
squareX.toTree().toIdentifiers(),
|
|
74
|
+
];
|
|
75
|
+
const chosenX = random(xChoices);
|
|
76
|
+
const identifiers = { x: chosenX };
|
|
77
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
78
|
+
};
|
|
79
|
+
const getQuestionFromIdentifiers = (identifiers) => {
|
|
80
|
+
return {
|
|
81
|
+
answer: getAnswer(identifiers),
|
|
82
|
+
instruction: getInstruction(identifiers),
|
|
83
|
+
keys: getKeys(identifiers),
|
|
84
|
+
answerFormat: "tex",
|
|
85
|
+
identifiers,
|
|
86
|
+
hint: getHint(identifiers),
|
|
87
|
+
correction: getCorrection(identifiers),
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
export const squareRootCalculation = {
|
|
91
|
+
id: "squareRootCalculation",
|
|
92
|
+
label: "Calculer une racine carrée",
|
|
93
|
+
isSingleStep: true,
|
|
94
|
+
generator: (nb, opts) => getDistinctQuestions(() => getSquareRootCalculationQuestion(opts), nb, 20),
|
|
95
|
+
qcmTimer: 60,
|
|
96
|
+
freeTimer: 60,
|
|
97
|
+
getPropositions,
|
|
98
|
+
isAnswerValid,
|
|
99
|
+
subject: "Mathématiques",
|
|
100
|
+
getInstruction,
|
|
101
|
+
getHint,
|
|
102
|
+
getCorrection,
|
|
103
|
+
getAnswer,
|
|
104
|
+
getQuestionFromIdentifiers,
|
|
105
|
+
hasHintAndCorrection: true,
|
|
106
|
+
maxAllowedQuestions: 20,
|
|
107
|
+
shouldHaveCalculator: false,
|
|
108
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recognizeAngleType.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/angles/recognizeAngleType.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AASrC,OAAO,EAGL,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAWtC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"recognizeAngleType.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/angles/recognizeAngleType.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAmBT,MAAM,6BAA6B,CAAC;AASrC,OAAO,EAGL,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAWtC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAwVF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAcpD,CAAC"}
|
|
@@ -182,7 +182,6 @@ const isAnswerValid = (ans, { answer, angleIndex, angleType, apexIndex, points }
|
|
|
182
182
|
break;
|
|
183
183
|
}
|
|
184
184
|
return validAngles.includes(formated);
|
|
185
|
-
// console.log(angleIndex, angleType, apexIndex);
|
|
186
185
|
// let formated = ans;
|
|
187
186
|
// if (ans.includes("widehat")) {
|
|
188
187
|
// formated = formated.replaceAll("\\widehat{", "").replaceAll("}", "");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cartesianEquationOfLine.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/cartesian/cartesianEquationOfLine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAqBrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAiOF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"cartesianEquationOfLine.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/cartesian/cartesianEquationOfLine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAqBrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAiOF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAezD,CAAC"}
|
|
@@ -177,7 +177,7 @@ const getFirstProposition = (x, y, aX, aY, bX, bY) => {
|
|
|
177
177
|
};
|
|
178
178
|
export const cartesianEquationOfLine = {
|
|
179
179
|
id: "cartesianEquationOfLine",
|
|
180
|
-
label: "Déterminer une équation
|
|
180
|
+
label: "Déterminer une équation cartésienne d'une droite par lecture graphique",
|
|
181
181
|
isSingleStep: true,
|
|
182
182
|
generator: (nb) => getDistinctQuestions(getCartesianEquationOfLineQuestion, nb),
|
|
183
183
|
qcmTimer: 60,
|
|
@@ -149,7 +149,7 @@ const getQuestionFromIdentifiers = (identifiers) => {
|
|
|
149
149
|
};
|
|
150
150
|
export const cartesianFromTwoPoints = {
|
|
151
151
|
id: "cartesianFromTwoPoints",
|
|
152
|
-
label: "Déterminer
|
|
152
|
+
label: "Déterminer une équation cartésienne d'une droite en connaissant deux points",
|
|
153
153
|
isSingleStep: true,
|
|
154
154
|
generator: (nb, opts) => getDistinctQuestions(() => getCartesianFromTwoPointsQuestion(opts), nb),
|
|
155
155
|
qcmTimer: 60,
|
|
@@ -144,7 +144,7 @@ const getQuestionFromIdentifiers = (identifiers) => {
|
|
|
144
144
|
};
|
|
145
145
|
export const cartesianFromVectorAndPoint = {
|
|
146
146
|
id: "cartesianFromVectorAndPoint",
|
|
147
|
-
label: "Déterminer
|
|
147
|
+
label: "Déterminer une équation cartésienne d'une droite en connaissant un point et un vecteur directeur",
|
|
148
148
|
isSingleStep: true,
|
|
149
149
|
generator: (nb, opts) => getDistinctQuestions(() => getCartesianFromVectorAndPointQuestion(opts), nb),
|
|
150
150
|
qcmTimer: 60,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -212,7 +212,7 @@ const getQuestionFromIdentifiers = (identifiers) => {
|
|
|
212
212
|
};
|
|
213
213
|
export const cartesianEquationToReduced = {
|
|
214
214
|
id: "cartesianEquationToReduced",
|
|
215
|
-
label: "Passer
|
|
215
|
+
label: "Passer de l'équation réduite d'une droite à une équation cartésienne, et inversement",
|
|
216
216
|
isSingleStep: true,
|
|
217
217
|
generator: (nb, opts) => getDistinctQuestions(() => getCartesianEquationToReducedQuestion(opts), nb),
|
|
218
218
|
qcmTimer: 60,
|
|
@@ -150,7 +150,7 @@ const getQuestionFromIdentifiers = (identifiers) => {
|
|
|
150
150
|
};
|
|
151
151
|
export const cartesianEquationsIntersection = {
|
|
152
152
|
id: "cartesianEquationsIntersection",
|
|
153
|
-
label: "Déterminer l'intersection de deux droites à partir de
|
|
153
|
+
label: "Déterminer l'intersection de deux droites à partir de leurs équations cartésiennes",
|
|
154
154
|
isSingleStep: true,
|
|
155
155
|
generator: (nb, opts) => getDistinctQuestions(() => getCartesianEquationsIntersectionQuestion(opts), nb),
|
|
156
156
|
qcmTimer: 60,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findParallelLineFromCartesianEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/findParallelLineFromCartesianEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAO7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,mBAAmB,EAAE,eAAe,CAAC;IACrC,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAgIF,eAAO,MAAM,qCAAqC,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"findParallelLineFromCartesianEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/findParallelLineFromCartesianEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAO7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,mBAAmB,EAAE,eAAe,CAAC;IACrC,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAgIF,eAAO,MAAM,qCAAqC,EAAE,QAAQ,CAAC,WAAW,CAoBvE,CAAC"}
|
|
@@ -114,7 +114,7 @@ const getQuestionFromIdentifiers = (identifiers) => {
|
|
|
114
114
|
};
|
|
115
115
|
export const findParallelLineFromCartesianEquation = {
|
|
116
116
|
id: "findParallelLineFromCartesianEquation",
|
|
117
|
-
label: "
|
|
117
|
+
label: "Étudier le parallélisme de deux droites à partir d'équations cartésiennes",
|
|
118
118
|
isSingleStep: true,
|
|
119
119
|
generator: (nb, opts) => getDistinctQuestions(() => getFindParallelLineFromCartesianEquationQuestion(opts), nb),
|
|
120
120
|
qcmTimer: 60,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findParallelLineFromReductEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/findParallelLineFromReductEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAK7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAqGF,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"findParallelLineFromReductEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/lines/findParallelLineFromReductEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAK7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAqGF,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,WAAW,CAoBpE,CAAC"}
|
|
@@ -93,7 +93,7 @@ const getQuestionFromIdentifiers = (identifiers) => {
|
|
|
93
93
|
};
|
|
94
94
|
export const findParallelLineFromReductEquation = {
|
|
95
95
|
id: "findParallelLineFromReductEquation",
|
|
96
|
-
label: "
|
|
96
|
+
label: "Étudier le parallélisme de deux droites à partir de leurs équations réduites",
|
|
97
97
|
isSingleStep: true,
|
|
98
98
|
generator: (nb, opts) => getDistinctQuestions(() => getFindParallelLineFromReductEquationQuestion(opts), nb),
|
|
99
99
|
qcmTimer: 60,
|
|
@@ -137,7 +137,7 @@ const isAnswerValid = (ans, { answer, uX, uY, aX, aY }) => {
|
|
|
137
137
|
};
|
|
138
138
|
export const lineFromDirectorVector = {
|
|
139
139
|
id: "lineFromDirectorVector",
|
|
140
|
-
label: "
|
|
140
|
+
label: "Déterminer l'équation réduite d'une droite en connaissant un point et un vecteur directeur",
|
|
141
141
|
isSingleStep: true,
|
|
142
142
|
generator: (nb) => getDistinctQuestions(getLineFromDirectorVectorQuestion, nb),
|
|
143
143
|
qcmTimer: 60,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculateNegativePower.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/calculateNegativePower.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAmBrC,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAkHF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"calculateNegativePower.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/calculateNegativePower.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAmBrC,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAkHF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAexD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersDivision.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersDivision.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,QAAQ,EAcT,MAAM,mBAAmB,CAAC;AAK3B,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AA6HF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"powersDivision.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersDivision.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,QAAQ,EAcT,MAAM,mBAAmB,CAAC;AAK3B,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AA6HF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAkBzD,CAAC;AACF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAkB9D,CAAC"}
|
|
@@ -125,6 +125,7 @@ export const powersDivision = {
|
|
|
125
125
|
subject: "Mathématiques",
|
|
126
126
|
hasHintAndCorrection: true,
|
|
127
127
|
getQuestionFromIdentifiers,
|
|
128
|
+
shouldHaveCalculator: false,
|
|
128
129
|
};
|
|
129
130
|
export const powersOfTenDivision = {
|
|
130
131
|
id: "powersOfTenDivision",
|
|
@@ -139,4 +140,5 @@ export const powersOfTenDivision = {
|
|
|
139
140
|
subject: "Mathématiques",
|
|
140
141
|
hasHintAndCorrection: true,
|
|
141
142
|
getQuestionFromIdentifiers,
|
|
143
|
+
shouldHaveCalculator: false,
|
|
142
144
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersMixOperations.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersMixOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAwBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvB,CAAC;AA0KF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"powersMixOperations.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersMixOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAwBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvB,CAAC;AA0KF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAerD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersPower.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersPower.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EACL,QAAQ,EAeT,MAAM,mBAAmB,CAAC;AAG3B,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AA6GF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"powersPower.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersPower.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EACL,QAAQ,EAeT,MAAM,mBAAmB,CAAC;AAG3B,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AA6GF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAkB3D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAkBtD,CAAC"}
|
|
@@ -114,6 +114,7 @@ export const powersOfTenPower = {
|
|
|
114
114
|
subject: "Mathématiques",
|
|
115
115
|
getQuestionFromIdentifiers,
|
|
116
116
|
hasHintAndCorrection: true,
|
|
117
|
+
shouldHaveCalculator: false,
|
|
117
118
|
};
|
|
118
119
|
export const powersPower = {
|
|
119
120
|
id: "powersPower",
|
|
@@ -128,4 +129,5 @@ export const powersPower = {
|
|
|
128
129
|
subject: "Mathématiques",
|
|
129
130
|
getQuestionFromIdentifiers,
|
|
130
131
|
hasHintAndCorrection: true,
|
|
132
|
+
shouldHaveCalculator: false,
|
|
131
133
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersProduct.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,QAAQ,EAiBT,MAAM,mBAAmB,CAAC;AAM3B,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AA6IF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"powersProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersProduct.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,QAAQ,EAiBT,MAAM,mBAAmB,CAAC;AAM3B,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AA6IF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAwB7D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqBxD,CAAC"}
|
|
@@ -134,6 +134,7 @@ export const powersOfTenProduct = {
|
|
|
134
134
|
getHint,
|
|
135
135
|
getCorrection,
|
|
136
136
|
getStartStatement,
|
|
137
|
+
shouldHaveCalculator: false,
|
|
137
138
|
};
|
|
138
139
|
export const powersProduct = {
|
|
139
140
|
id: "powersProduct",
|
|
@@ -151,4 +152,5 @@ export const powersProduct = {
|
|
|
151
152
|
hasHintAndCorrection: true,
|
|
152
153
|
options,
|
|
153
154
|
getQuestionFromIdentifiers,
|
|
155
|
+
shouldHaveCalculator: false,
|
|
154
156
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicStats/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicStats/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC"}
|
|
@@ -11,8 +11,6 @@ export * from "./basicStats/index.js";
|
|
|
11
11
|
export * from "./randomVariable/index.js";
|
|
12
12
|
export * from "./unionIntersectionProba.js";
|
|
13
13
|
export * from "./checkEquiprobability.js";
|
|
14
|
-
export * from "./getSampleCountAndSize.js";
|
|
15
14
|
export * from "./events/index.js";
|
|
16
15
|
export * from "./basicProbas/index.js";
|
|
17
|
-
export * from "./getQuartileProportionQuestion.js";
|
|
18
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
|
|
@@ -11,7 +11,5 @@ export * from "./basicStats/index.js";
|
|
|
11
11
|
export * from "./randomVariable/index.js";
|
|
12
12
|
export * from "./unionIntersectionProba.js";
|
|
13
13
|
export * from "./checkEquiprobability.js";
|
|
14
|
-
export * from "./getSampleCountAndSize.js";
|
|
15
14
|
export * from "./events/index.js";
|
|
16
15
|
export * from "./basicProbas/index.js";
|
|
17
|
-
export * from "./getQuartileProportionQuestion.js";
|
|
@@ -12,8 +12,8 @@ const options = [
|
|
|
12
12
|
label: "Indicateurs",
|
|
13
13
|
target: GeneratorOptionTarget.generation,
|
|
14
14
|
type: GeneratorOptionType.multiselect,
|
|
15
|
-
defaultValue: ["
|
|
16
|
-
values: ["
|
|
15
|
+
defaultValue: ["moyenne", "médiane"],
|
|
16
|
+
values: ["moyenne", "médiane"],
|
|
17
17
|
},
|
|
18
18
|
];
|
|
19
19
|
const getPropositions = (n, { answer, ...identifiers }) => {
|
|
@@ -8,8 +8,8 @@ import { average } from "../../../../utils/average.js";
|
|
|
8
8
|
const getPropositions = (n, { answer }) => {
|
|
9
9
|
const propositions = [];
|
|
10
10
|
addValidProp(propositions, answer, "raw");
|
|
11
|
-
tryToAddWrongProp(propositions, "Série
|
|
12
|
-
tryToAddWrongProp(propositions, "Série
|
|
11
|
+
tryToAddWrongProp(propositions, "Série A", "raw");
|
|
12
|
+
tryToAddWrongProp(propositions, "Série B", "raw");
|
|
13
13
|
tryToAddWrongProp(propositions, "On ne peut pas savoir", "raw");
|
|
14
14
|
return shuffleProps(propositions, n);
|
|
15
15
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Exercise } from "../../../../exercises/exercise.js";
|
|
2
|
+
type Identifiers = {
|
|
3
|
+
labels: string[];
|
|
4
|
+
serie1: number[];
|
|
5
|
+
serie2: number[];
|
|
6
|
+
a: number;
|
|
7
|
+
b: number;
|
|
8
|
+
isBetween: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const getQuartileProportionQuestion: Exercise<Identifiers>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=getQuartileProportionQuestion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getQuartileProportionQuestion.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/getQuartileProportionQuestion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAwMF,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,WAAW,CAqB/D,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
|
|
2
|
+
import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
|
|
3
|
+
import { randint } from "../../../../math/utils/random/randint.js";
|
|
4
|
+
import { coinFlip } from "../../../../utils/alea/coinFlip.js";
|
|
5
|
+
import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
|
|
6
|
+
import { dollarize } from "../../../../utils/latex/dollarize.js";
|
|
7
|
+
import { mdTable } from "../../../../utils/markdown/mdTable.js";
|
|
8
|
+
const getPropositions = (n, { answer }) => {
|
|
9
|
+
const propositions = [];
|
|
10
|
+
addValidProp(propositions, answer, "raw");
|
|
11
|
+
tryToAddWrongProp(propositions, "Série $1$", "raw");
|
|
12
|
+
tryToAddWrongProp(propositions, "Série $2$", "raw");
|
|
13
|
+
return shuffleProps(propositions, n);
|
|
14
|
+
};
|
|
15
|
+
const getAnswer = ({ serie1, serie2, a, b, isBetween, }) => {
|
|
16
|
+
const mainSeries = serie1.includes(b) ? serie1 : serie2;
|
|
17
|
+
const otherSeries = mainSeries === serie1 ? serie2 : serie1;
|
|
18
|
+
const indexOfB = mainSeries.indexOf(b);
|
|
19
|
+
const indexOfA = mainSeries.indexOf(a);
|
|
20
|
+
const diff = indexOfB - indexOfA + 1;
|
|
21
|
+
let count = 0;
|
|
22
|
+
for (let idx = 0; idx < otherSeries.length; idx++) {
|
|
23
|
+
const val = otherSeries[idx];
|
|
24
|
+
if (isBetween) {
|
|
25
|
+
if ((val >= a || otherSeries[idx + 1] > a) &&
|
|
26
|
+
(val <= b || otherSeries[idx - 1] < b)) {
|
|
27
|
+
count++;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if (val < b) {
|
|
32
|
+
count++;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const mainSeriesText = mainSeries === serie1 ? "Série $1$" : "Série $2$";
|
|
37
|
+
const otherSeriesText = mainSeries === serie1 ? "Série $2$" : "Série $1$";
|
|
38
|
+
const condition = isBetween ? diff >= count : indexOfB < count;
|
|
39
|
+
return condition ? mainSeriesText : otherSeriesText;
|
|
40
|
+
};
|
|
41
|
+
const getInstruction = ({ labels, serie1, serie2, a, b, isBetween, }) => {
|
|
42
|
+
const question = isBetween
|
|
43
|
+
? `Quelle série a la plus grande proportion de valeurs entre $${a}$ et $${b}$ ?`
|
|
44
|
+
: `Quelle série a la plus grande proportion de valeurs supérieures à $${b}$ ?`;
|
|
45
|
+
return (`${question}\n\n` +
|
|
46
|
+
mdTable([
|
|
47
|
+
["", ...labels.map((l, i) => (i === 1 || i === 3 ? dollarize(l) : l))],
|
|
48
|
+
["Série $1$", ...serie1.map((l) => dollarize(l))],
|
|
49
|
+
["Série $2$", ...serie2.map((l) => dollarize(l))],
|
|
50
|
+
]));
|
|
51
|
+
};
|
|
52
|
+
const getHint = (identifiers) => {
|
|
53
|
+
return `
|
|
54
|
+
Les quartiles permettent de découper une série en quatre parties égales :
|
|
55
|
+
|
|
56
|
+
- $Q_1$ (premier quartile) : au moins $25 \\%$ des valeurs sont inférieures ou égales à cette valeur.
|
|
57
|
+
- Médiane : au moins $50 \\%$ des valeurs sont inférieures ou égales à cette valeur.
|
|
58
|
+
- $Q_3$ (troisième quartile) : au moins $75 \\%$ des valeurs sont inférieures ou égales à cette valeur.
|
|
59
|
+
`;
|
|
60
|
+
};
|
|
61
|
+
const getCorrection = (identifiers) => {
|
|
62
|
+
const { labels, serie1, serie2, a, b, isBetween } = identifiers;
|
|
63
|
+
const isBInSerie1 = serie1.includes(b);
|
|
64
|
+
const mainSeries = isBInSerie1 ? serie1 : serie2;
|
|
65
|
+
const otherSeries = isBInSerie1 ? serie2 : serie1;
|
|
66
|
+
const mainSeriesLabel = isBInSerie1 ? "série $1$" : "série $2$";
|
|
67
|
+
const otherSeriesLabel = isBInSerie1 ? "série $2$" : "série $1$";
|
|
68
|
+
const indexOfA = mainSeries.indexOf(a);
|
|
69
|
+
const indexOfB = mainSeries.indexOf(b);
|
|
70
|
+
let i = 0;
|
|
71
|
+
for (let idx = 0; idx < otherSeries.length; idx++) {
|
|
72
|
+
const val = otherSeries[idx];
|
|
73
|
+
if (isBetween) {
|
|
74
|
+
if ((val >= a || otherSeries[idx + 1] > a) &&
|
|
75
|
+
(val <= b || otherSeries[idx - 1] < b)) {
|
|
76
|
+
i++;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
if (val < b) {
|
|
81
|
+
i++;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const quartilePercentages = [0, 25, 50, 75, 100];
|
|
86
|
+
const labelA = labels[indexOfA];
|
|
87
|
+
const labelB = labels[indexOfB];
|
|
88
|
+
const valueA = a;
|
|
89
|
+
const valueB = b;
|
|
90
|
+
const diff = indexOfB - indexOfA + 1;
|
|
91
|
+
const percentageBetween = quartilePercentages[diff - 1];
|
|
92
|
+
const percentageAbove = 100 - quartilePercentages[indexOfB];
|
|
93
|
+
const answer = getAnswer(identifiers);
|
|
94
|
+
const answerFormatted = answer === "Série $1$" ? "série $1$" : "série $2$";
|
|
95
|
+
const decideWord = answerFormatted === mainSeriesLabel ? "moins" : "plus";
|
|
96
|
+
const proportionB = isBetween
|
|
97
|
+
? `$${percentageBetween}\\%$ des valeurs sont entre $${valueA}$ et $${valueB}$.\n\n`
|
|
98
|
+
: `$${percentageAbove}\\%$ des valeurs sont supérieures à $${valueB}$.\n\n`;
|
|
99
|
+
const proportionOther = i === 0
|
|
100
|
+
? `Il n'y a aucune valeur dans l'intervalle $[${valueA}; ${valueB}]$.\n\n`
|
|
101
|
+
: isBetween
|
|
102
|
+
? `${decideWord} $${percentageBetween}\\%$ des valeurs sont entre $${valueA}$ et $${valueB}$.\n\n`
|
|
103
|
+
: `${otherSeries[indexOfB] > valueB ? "plus" : "moins"} de $${100 - quartilePercentages[i - 1]}\\%$ des valeurs sont supérieures à $${valueB}$.\n\n`;
|
|
104
|
+
const comparison = isBetween
|
|
105
|
+
? `La ${answer} a donc une proportion plus grande de valeurs dans l'intervalle.`
|
|
106
|
+
: `La ${answer} a donc une proportion plus grande de valeurs supérieures à $${valueB}$.`;
|
|
107
|
+
return isBetween
|
|
108
|
+
? `On peut estimer cette proportion en observant la position des valeurs $${valueA}$ et $${valueB}$ dans chaque série :
|
|
109
|
+
|
|
110
|
+
- Dans la ${mainSeriesLabel}, on a $${labelA} = ${valueA}$ et $${labelB} = ${valueB}$, donc ${proportionB}
|
|
111
|
+
- Dans la ${otherSeriesLabel}, on a $${labelA} = ${otherSeries[indexOfA]}$ et $${labelB} = ${otherSeries[indexOfB]}$, donc ${proportionOther}
|
|
112
|
+
|
|
113
|
+
${comparison}`
|
|
114
|
+
: `On peut estimer cette proportion en observant la position de la valeur $${valueB}$ dans chaque série :
|
|
115
|
+
|
|
116
|
+
- Dans la ${mainSeriesLabel}, on a $${labelB} = ${valueB}$, donc ${proportionB}
|
|
117
|
+
- Dans la ${otherSeriesLabel}, on a $${labelB} = ${otherSeries[indexOfB]}$, ${proportionOther}
|
|
118
|
+
|
|
119
|
+
${comparison}`;
|
|
120
|
+
};
|
|
121
|
+
const getKeys = () => [];
|
|
122
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
123
|
+
try {
|
|
124
|
+
throw Error("VEA not implemented");
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
return handleVEAError(err);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
const makeQuartileSeries = (min, exclude) => {
|
|
131
|
+
const serie = [min];
|
|
132
|
+
for (let i = 0; i < 4; i++) {
|
|
133
|
+
const prev = serie[serie.length - 1];
|
|
134
|
+
serie.push(randint(prev + 1, prev + 6, exclude));
|
|
135
|
+
}
|
|
136
|
+
return serie;
|
|
137
|
+
};
|
|
138
|
+
const getGetQuartileProportionQuestionQuestion = () => {
|
|
139
|
+
const labels = ["Min", "Q_1", "Méd", "Q_3", "Max"];
|
|
140
|
+
const min = randint(0, 10);
|
|
141
|
+
const serie1 = makeQuartileSeries(min);
|
|
142
|
+
const serie2 = makeQuartileSeries(min, serie1);
|
|
143
|
+
const isBetween = coinFlip();
|
|
144
|
+
const chosenSerie = coinFlip() ? serie1 : serie2;
|
|
145
|
+
const indexOfA = randint(0, serie1.length - (isBetween ? 1 : 2));
|
|
146
|
+
const a = chosenSerie[indexOfA];
|
|
147
|
+
const indexOfB = randint(indexOfA + 1, isBetween ? chosenSerie.length : chosenSerie.length - 1);
|
|
148
|
+
const b = chosenSerie[indexOfB];
|
|
149
|
+
const identifiers = { labels, serie1, serie2, a, b, isBetween };
|
|
150
|
+
return getQuestionFromIdentifiers(identifiers);
|
|
151
|
+
};
|
|
152
|
+
const getQuestionFromIdentifiers = (identifiers) => ({
|
|
153
|
+
answer: getAnswer(identifiers),
|
|
154
|
+
instruction: getInstruction(identifiers),
|
|
155
|
+
keys: getKeys(identifiers),
|
|
156
|
+
answerFormat: "raw",
|
|
157
|
+
identifiers,
|
|
158
|
+
hint: getHint(identifiers),
|
|
159
|
+
correction: getCorrection(identifiers),
|
|
160
|
+
});
|
|
161
|
+
export const getQuartileProportionQuestion = {
|
|
162
|
+
id: "getQuartileProportionQuestion",
|
|
163
|
+
label: "Comparer et interpréter les indicateurs de deux séries statistiques",
|
|
164
|
+
isSingleStep: true,
|
|
165
|
+
generator: (nb, opts) => getDistinctQuestions(() => getGetQuartileProportionQuestionQuestion(opts), nb),
|
|
166
|
+
qcmTimer: 60,
|
|
167
|
+
freeTimer: 60,
|
|
168
|
+
getPropositions,
|
|
169
|
+
isAnswerValid,
|
|
170
|
+
subject: "Mathématiques",
|
|
171
|
+
getInstruction,
|
|
172
|
+
getHint,
|
|
173
|
+
getCorrection,
|
|
174
|
+
getAnswer,
|
|
175
|
+
getQuestionFromIdentifiers,
|
|
176
|
+
hasHintAndCorrection: true,
|
|
177
|
+
answerType: "QCU",
|
|
178
|
+
};
|
|
@@ -17,4 +17,5 @@ export * from "./compareSeriesDispersion.js";
|
|
|
17
17
|
export * from "./averageLinearity.js";
|
|
18
18
|
export * from "./calculateMeanFromFrequencies.js";
|
|
19
19
|
export * from "./cumulativeSum.js";
|
|
20
|
+
export * from "./getQuartileProportionQuestion.js";
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Exercise } from "../../../exercises/exercise.js";
|
|
2
|
+
type Identifiers = {
|
|
3
|
+
expCount: number;
|
|
4
|
+
repCount: number;
|
|
5
|
+
isSize: boolean;
|
|
6
|
+
};
|
|
7
|
+
type Options = {
|
|
8
|
+
isSize?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const getSampleCountAndSize: Exercise<Identifiers, Options>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=getSampleCountAndSize.d.ts.map
|