math-exercises 2.2.59 → 2.2.61
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 +6 -0
- package/lib/exercises/exercise.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerDivision.d.ts +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerDivision.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerDivision.js +75 -37
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerProduct.d.ts +6 -2
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerProduct.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerProduct.js +88 -40
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerSum.d.ts +4 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerSum.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionAndIntegerSum.js +23 -5
- package/lib/exercises/math/calcul/fractions/fractionsDivision.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsDivision.js +24 -6
- package/lib/exercises/math/calcul/fractions/fractionsProduct.d.ts +4 -1
- package/lib/exercises/math/calcul/fractions/fractionsProduct.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsProduct.js +24 -6
- package/lib/exercises/math/calcul/fractions/fractionsSum.d.ts +2 -2
- package/lib/exercises/math/calcul/fractions/fractionsSum.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSum.js +20 -11
- package/lib/exercises/math/calcul/fractions/fractionsSumsMultiplesDenominators.js +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSumsPrimeDenominators.js +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.d.ts.map +1 -1
- package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.js +2 -2
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.d.ts +7 -2
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/findCoeffInProportionalTableNonIntegers.js +52 -44
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts +7 -2
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.d.ts.map +1 -1
- package/lib/exercises/math/calcul/proportionality/isTableProportionalNonInteger.js +55 -40
- package/lib/exercises/math/calculLitteral/systems/basicSystemResolution.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/systems/basicSystemResolution.js +5 -2
- package/lib/exercises/math/functions/affines/signFunction.js +1 -1
- package/lib/exercises/math/functions/trinoms/factorizedFormFromRoots.d.ts.map +1 -1
- package/lib/exercises/math/functions/trinoms/factorizedFormFromRoots.js +1 -0
- package/lib/exercises/math/geometry/thales/thalesCalcul.d.ts.map +1 -1
- package/lib/exercises/math/geometry/thales/thalesCalcul.js +6 -0
- package/lib/exercises/math/powers/powersDivision.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersDivision.js +19 -11
- package/lib/exercises/math/powers/powersPower.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersPower.js +19 -11
- package/lib/exercises/math/powers/powersProduct.d.ts +4 -1
- package/lib/exercises/math/powers/powersProduct.d.ts.map +1 -1
- package/lib/exercises/math/powers/powersProduct.js +84 -35
- package/lib/exercises/math/probaStat/binomial/binomialInequation.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/binomial/binomialInequation.js +6 -0
- package/lib/exercises/math/probaStat/probaFromTableNoContext.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/probaFromTableNoContext.js +5 -1
- package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/probaFromTableWithContext.js +19 -3
- package/lib/exercises/math/spaceGeometry/lineAndPlaneRelativePosition.d.ts +1 -0
- package/lib/exercises/math/spaceGeometry/lineAndPlaneRelativePosition.d.ts.map +1 -0
- package/lib/exercises/math/spaceGeometry/lineAndPlaneRelativePosition.js +84 -0
- package/lib/exercises/math/squareRoots/index.d.ts +2 -0
- package/lib/exercises/math/squareRoots/index.d.ts.map +1 -1
- package/lib/exercises/math/squareRoots/index.js +2 -0
- package/lib/exercises/math/squareRoots/squareRootsFractions.d.ts +10 -0
- package/lib/exercises/math/squareRoots/squareRootsFractions.d.ts.map +1 -0
- package/lib/exercises/math/squareRoots/squareRootsFractions.js +93 -0
- package/lib/exercises/math/squareRoots/squareRootsToSquare.d.ts +10 -0
- package/lib/exercises/math/squareRoots/squareRootsToSquare.d.ts.map +1 -0
- package/lib/exercises/math/squareRoots/squareRootsToSquare.js +116 -0
- package/lib/exercises/math/trigonometry/mainAngleMeasure.js +13 -13
- package/lib/index.d.ts +41 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/math/geometry/line.d.ts.map +1 -1
- package/lib/math/geometry/line.js +3 -1
- package/lib/math/geometry/vector.d.ts.map +1 -1
- package/lib/math/geometry/vector.js +1 -7
- package/lib/math/numbers/rationals/rational.d.ts +1 -1
- package/lib/math/numbers/rationals/rational.d.ts.map +1 -1
- package/lib/math/numbers/rationals/rational.js +18 -6
- package/lib/math/numbers/reals/extendedRingElement.d.ts +1 -1
- package/lib/playground.d.ts.map +1 -1
- package/lib/playground.js +6 -1
- package/lib/tree/nodes/functions/absNode.d.ts +1 -1
- package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/absNode.js +9 -1
- package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/sqrtNode.js +9 -0
- package/lib/tree/nodes/operators/operatorNode.d.ts +2 -1
- package/lib/tree/nodes/operators/operatorNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/operatorNode.js +1 -0
- package/lib/tree/nodes/operators/powerNode.d.ts +2 -0
- package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/powerNode.js +21 -83
- package/lib/tree/parsers/powerParser.d.ts +2 -0
- package/lib/tree/parsers/powerParser.d.ts.map +1 -0
- package/lib/tree/parsers/powerParser.js +26 -0
- package/lib/tree/parsers/rationalParser.d.ts +1 -1
- package/lib/tree/parsers/rationalParser.d.ts.map +1 -1
- package/lib/tree/parsers/rationalParser.js +14 -9
- package/lib/tree/parsers/spacePointParser.d.ts.map +1 -1
- package/lib/tree/parsers/spaceVectorParser.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.powersOfTenDivision = exports.powersDivision = void 0;
|
|
7
7
|
const power_1 = require("../../../math/numbers/integer/power");
|
|
8
8
|
const randint_1 = require("../../../math/utils/random/randint");
|
|
9
|
-
const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
|
|
10
9
|
const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
|
|
11
10
|
const powerNode_1 = require("../../../tree/nodes/operators/powerNode");
|
|
12
11
|
const substractNode_1 = require("../../../tree/nodes/operators/substractNode");
|
|
@@ -14,15 +13,21 @@ const alignTex_1 = require("../../../utils/latex/alignTex");
|
|
|
14
13
|
const shuffle_1 = require("../../../utils/alea/shuffle");
|
|
15
14
|
const exercise_1 = require("../../exercise");
|
|
16
15
|
const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
|
|
16
|
+
const rationalParser_1 = require("../../../tree/parsers/rationalParser");
|
|
17
|
+
const powerParser_1 = require("../../../tree/parsers/powerParser");
|
|
17
18
|
const getPowersDivisionQuestion = (opts) => {
|
|
18
19
|
let a = opts.useOnlyPowersOfTen ? 10 : (0, randint_1.randint)(-11, 11, [0]);
|
|
19
20
|
const [b, c] = [1, 2].map((el) => (0, randint_1.randint)(-11, 11));
|
|
20
|
-
const statement =
|
|
21
|
-
const answerTree =
|
|
21
|
+
const statement = (0, fractionNode_1.frac)((0, powerNode_1.power)(a, b), (0, powerNode_1.power)(a, c));
|
|
22
|
+
const answerTree = (0, powerNode_1.power)(a, b - c).simplify();
|
|
22
23
|
const answer = answerTree.toTex();
|
|
23
24
|
const statementTex = statement.toTex();
|
|
24
25
|
const question = {
|
|
25
|
-
instruction: `Simplifier :
|
|
26
|
+
instruction: `Simplifier :
|
|
27
|
+
|
|
28
|
+
$$
|
|
29
|
+
${statementTex}
|
|
30
|
+
$$`,
|
|
26
31
|
startStatement: statementTex,
|
|
27
32
|
answer,
|
|
28
33
|
keys: [],
|
|
@@ -71,13 +76,16 @@ const getPropositions = (n, { answer, a, b, c }) => {
|
|
|
71
76
|
return (0, shuffle_1.shuffle)(propositions);
|
|
72
77
|
};
|
|
73
78
|
const isAnswerValid = (ans, { a, b, c }) => {
|
|
74
|
-
const
|
|
75
|
-
const answerTree =
|
|
76
|
-
const
|
|
77
|
-
const
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
const powerNode = (0, powerNode_1.power)(a, b - c);
|
|
80
|
+
const answerTree = powerNode.simplify();
|
|
81
|
+
const ev = answerTree.evaluate();
|
|
82
|
+
const parsed = (0, rationalParser_1.rationalParser)(ans);
|
|
83
|
+
if (parsed && Math.abs(parsed.evaluate() - ev) < 0.000001)
|
|
84
|
+
return true;
|
|
85
|
+
const powerParsed = (0, powerParser_1.powerParser)(ans);
|
|
86
|
+
if (powerParsed && Math.abs(powerParsed.evaluate() - ev) < 0.000001)
|
|
87
|
+
return true;
|
|
88
|
+
return false;
|
|
81
89
|
};
|
|
82
90
|
exports.powersDivision = {
|
|
83
91
|
id: "powersDivision",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersPower.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersPower.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"powersPower.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersPower.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EACL,QAAQ,EAST,MAAM,gBAAgB,CAAC;AAExB,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA8DF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CA6BlD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAiB7C,CAAC"}
|
|
@@ -6,19 +6,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.powersPower = exports.powersOfTenPower = void 0;
|
|
7
7
|
const power_1 = require("../../../math/numbers/integer/power");
|
|
8
8
|
const randint_1 = require("../../../math/utils/random/randint");
|
|
9
|
-
const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
|
|
10
9
|
const powerNode_1 = require("../../../tree/nodes/operators/powerNode");
|
|
10
|
+
const powerParser_1 = require("../../../tree/parsers/powerParser");
|
|
11
|
+
const rationalParser_1 = require("../../../tree/parsers/rationalParser");
|
|
11
12
|
const exercise_1 = require("../../exercise");
|
|
12
13
|
const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
|
|
13
14
|
const getPowersPowerQuestion = (opts) => {
|
|
14
15
|
const a = opts?.useOnlyPowersOfTen ? 10 : (0, randint_1.randint)(-11, 11, [0, 1]);
|
|
15
16
|
const [b, c] = [1, 2].map((el) => (0, randint_1.randint)(-11, 11));
|
|
16
|
-
const statement =
|
|
17
|
-
let answerTree =
|
|
17
|
+
const statement = (0, powerNode_1.power)((0, powerNode_1.power)(a, b), c);
|
|
18
|
+
let answerTree = (0, powerNode_1.power)(a, b * c).simplify();
|
|
18
19
|
const answer = answerTree.toTex();
|
|
19
20
|
const statementTex = statement.toTex();
|
|
20
21
|
const question = {
|
|
21
|
-
instruction: `Simplifier :
|
|
22
|
+
instruction: `Simplifier :
|
|
23
|
+
|
|
24
|
+
$$
|
|
25
|
+
${statementTex}
|
|
26
|
+
$$`,
|
|
22
27
|
startStatement: statementTex,
|
|
23
28
|
answer,
|
|
24
29
|
keys: [],
|
|
@@ -45,13 +50,16 @@ const getPropositions = (n, { answer, a, b, c }) => {
|
|
|
45
50
|
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
46
51
|
};
|
|
47
52
|
const isAnswerValid = (ans, { a, b, c }) => {
|
|
48
|
-
const
|
|
49
|
-
const answerTree =
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
const powerNode = (0, powerNode_1.power)(a, b * c);
|
|
54
|
+
const answerTree = powerNode.simplify();
|
|
55
|
+
const ev = answerTree.evaluate();
|
|
56
|
+
const parsed = (0, rationalParser_1.rationalParser)(ans);
|
|
57
|
+
if (parsed && Math.abs(parsed.evaluate() - ev) < 0.000001)
|
|
58
|
+
return true;
|
|
59
|
+
const powerParsed = (0, powerParser_1.powerParser)(ans);
|
|
60
|
+
if (powerParsed && Math.abs(powerParsed.evaluate() - ev) < 0.000001)
|
|
61
|
+
return true;
|
|
62
|
+
return false;
|
|
55
63
|
};
|
|
56
64
|
exports.powersOfTenPower = {
|
|
57
65
|
id: "powersOfTenPower",
|
|
@@ -7,7 +7,10 @@ type Identifiers = {
|
|
|
7
7
|
b: number;
|
|
8
8
|
c: number;
|
|
9
9
|
};
|
|
10
|
+
type Options = {
|
|
11
|
+
useOnlyPowersOfTen: boolean;
|
|
12
|
+
};
|
|
10
13
|
export declare const powersOfTenProduct: Exercise<Identifiers>;
|
|
11
|
-
export declare const powersProduct: Exercise<Identifiers>;
|
|
14
|
+
export declare const powersProduct: Exercise<Identifiers, Options>;
|
|
12
15
|
export {};
|
|
13
16
|
//# sourceMappingURL=powersProduct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powersProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersProduct.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"powersProduct.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powersProduct.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,QAAQ,EAaT,MAAM,gBAAgB,CAAC;AAMxB,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;AAoIF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CA8BpD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAuBxD,CAAC"}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.powersProduct = exports.powersOfTenProduct = void 0;
|
|
7
7
|
const power_1 = require("../../../math/numbers/integer/power");
|
|
8
8
|
const randint_1 = require("../../../math/utils/random/randint");
|
|
9
|
-
const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
|
|
10
9
|
const addNode_1 = require("../../../tree/nodes/operators/addNode");
|
|
11
10
|
const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
|
|
12
11
|
const powerNode_1 = require("../../../tree/nodes/operators/powerNode");
|
|
@@ -14,38 +13,72 @@ const alignTex_1 = require("../../../utils/latex/alignTex");
|
|
|
14
13
|
const shuffle_1 = require("../../../utils/alea/shuffle");
|
|
15
14
|
const exercise_1 = require("../../exercise");
|
|
16
15
|
const getDistinctQuestions_1 = require("../../utils/getDistinctQuestions");
|
|
16
|
+
const rationalParser_1 = require("../../../tree/parsers/rationalParser");
|
|
17
|
+
const powerParser_1 = require("../../../tree/parsers/powerParser");
|
|
18
|
+
const getInstruction = (identifiers, opts) => {
|
|
19
|
+
const { a, b, c } = identifiers;
|
|
20
|
+
const statement = (0, multiplyNode_1.multiply)((0, powerNode_1.power)(a, b), (0, powerNode_1.power)(a, c));
|
|
21
|
+
const statmentTex = statement.toTex();
|
|
22
|
+
return `Simplifier :
|
|
23
|
+
|
|
24
|
+
$$
|
|
25
|
+
${statmentTex}
|
|
26
|
+
$$`;
|
|
27
|
+
};
|
|
28
|
+
const getStartStatement = (identifiers, opts) => {
|
|
29
|
+
const { a, b, c } = identifiers;
|
|
30
|
+
const statement = (0, multiplyNode_1.multiply)((0, powerNode_1.power)(a, b), (0, powerNode_1.power)(a, c));
|
|
31
|
+
const statmentTex = statement.toTex();
|
|
32
|
+
return statmentTex;
|
|
33
|
+
};
|
|
34
|
+
const getHint = (identifiers, opts) => {
|
|
35
|
+
return `Utilise la propriété :
|
|
36
|
+
|
|
37
|
+
$$
|
|
38
|
+
${opts?.useOnlyPowersOfTen
|
|
39
|
+
? `10^n \\times 10^m = 10^{n+m}`
|
|
40
|
+
: `a^n \\times a^m = a^{n+m}`}
|
|
41
|
+
$$
|
|
42
|
+
`;
|
|
43
|
+
};
|
|
44
|
+
const getCorrection = (identifiers, opts) => {
|
|
45
|
+
const { a, b, c } = identifiers;
|
|
46
|
+
const addPower = (0, powerNode_1.power)(a, (0, addNode_1.add)(b, c));
|
|
47
|
+
return `On sait que :
|
|
48
|
+
|
|
49
|
+
$$
|
|
50
|
+
${opts?.useOnlyPowersOfTen
|
|
51
|
+
? `10^n \\times 10^m = 10^{n+m}`
|
|
52
|
+
: `a^n \\times a^m = a^{n+m}`}
|
|
53
|
+
$$
|
|
54
|
+
|
|
55
|
+
On a donc :
|
|
56
|
+
|
|
57
|
+
${(0, alignTex_1.alignTex)([
|
|
58
|
+
[(0, multiplyNode_1.multiply)((0, powerNode_1.power)(a, b), (0, powerNode_1.power)(a, c)).toTex(), "=", addPower.toTex()],
|
|
59
|
+
["", "=", addPower.simplify().toTex()],
|
|
60
|
+
])}
|
|
61
|
+
`;
|
|
62
|
+
};
|
|
63
|
+
const getAnswer = (identifiers) => {
|
|
64
|
+
const { a, b, c } = identifiers;
|
|
65
|
+
const answerTree = (0, powerNode_1.power)(a, b + c, { allowPowerOne: false }).simplify();
|
|
66
|
+
const answer = answerTree.toTex();
|
|
67
|
+
return answer;
|
|
68
|
+
};
|
|
17
69
|
const getPowersProductQuestion = (opts) => {
|
|
18
70
|
const a = opts?.useOnlyPowersOfTen ? 10 : (0, randint_1.randint)(-11, 11, [0]);
|
|
19
71
|
const [b, c] = [1, 2].map((el) => (0, randint_1.randint)(-11, 11));
|
|
20
|
-
const
|
|
21
|
-
const answerTree = new power_1.Power(a, b + c).simplify();
|
|
22
|
-
const answer = answerTree.toTex();
|
|
23
|
-
const statmentTex = statement.toTex();
|
|
72
|
+
const identifiers = { a, b, c };
|
|
24
73
|
const question = {
|
|
25
|
-
instruction:
|
|
26
|
-
startStatement:
|
|
27
|
-
answer,
|
|
74
|
+
instruction: getInstruction(identifiers, opts),
|
|
75
|
+
startStatement: getStartStatement(identifiers, opts),
|
|
76
|
+
answer: getAnswer(identifiers),
|
|
28
77
|
keys: [],
|
|
29
78
|
answerFormat: "tex",
|
|
30
|
-
identifiers
|
|
31
|
-
hint:
|
|
32
|
-
|
|
33
|
-
: `$a^n \\times a^m = a^{n+m}$`}`,
|
|
34
|
-
correction: `On sait que ${opts?.useOnlyPowersOfTen
|
|
35
|
-
? `$10^n \\times 10^m = 10^{n+m}$`
|
|
36
|
-
: `$a^n \\times a^m = a^{n+m}$`}.
|
|
37
|
-
|
|
38
|
-
On a donc :
|
|
39
|
-
|
|
40
|
-
${(0, alignTex_1.alignTex)([
|
|
41
|
-
[
|
|
42
|
-
statmentTex,
|
|
43
|
-
"=",
|
|
44
|
-
new powerNode_1.PowerNode(a.toTree(), new addNode_1.AddNode(b.toTree(), c.toTree())).toTex(),
|
|
45
|
-
],
|
|
46
|
-
["", "=", answer],
|
|
47
|
-
])}
|
|
48
|
-
`,
|
|
79
|
+
identifiers,
|
|
80
|
+
hint: getHint(identifiers, opts),
|
|
81
|
+
correction: getCorrection(identifiers, opts),
|
|
49
82
|
};
|
|
50
83
|
return question;
|
|
51
84
|
};
|
|
@@ -61,13 +94,24 @@ const getPropositions = (n, { answer, a, b, c }) => {
|
|
|
61
94
|
return (0, shuffle_1.shuffle)(propositions);
|
|
62
95
|
};
|
|
63
96
|
const isAnswerValid = (ans, { a, b, c }) => {
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
97
|
+
const powerNode = (0, powerNode_1.power)(a, b + c);
|
|
98
|
+
//version frac ou number
|
|
99
|
+
//version power absolute
|
|
100
|
+
//version 1/power
|
|
101
|
+
const answerTree = powerNode.simplify();
|
|
102
|
+
const ev = answerTree.evaluate();
|
|
103
|
+
const parsed = (0, rationalParser_1.rationalParser)(ans);
|
|
104
|
+
console.log(parsed, ev);
|
|
105
|
+
if (parsed && Math.abs(parsed.evaluate() - ev) < 0.000001)
|
|
106
|
+
return true;
|
|
107
|
+
const powerParsed = (0, powerParser_1.powerParser)(ans);
|
|
108
|
+
if (powerParsed && Math.abs(powerParsed.evaluate() - ev) < 0.000001)
|
|
109
|
+
return true;
|
|
110
|
+
return false;
|
|
111
|
+
// const texs = answerTree.toAllValidTexs();
|
|
112
|
+
// const rawTex = powerNode.toTex();
|
|
113
|
+
// if (!texs.includes(rawTex)) texs.push(rawTex);
|
|
114
|
+
// return texs.includes(ans);
|
|
71
115
|
};
|
|
72
116
|
exports.powersOfTenProduct = {
|
|
73
117
|
id: "powersOfTenProduct",
|
|
@@ -103,11 +147,16 @@ exports.powersProduct = {
|
|
|
103
147
|
levels: ["4ème", "3ème", "2nde"],
|
|
104
148
|
sections: ["Puissances"],
|
|
105
149
|
isSingleStep: true,
|
|
106
|
-
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getPowersProductQuestion({ useOnlyPowersOfTen: false }), nb),
|
|
150
|
+
generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getPowersProductQuestion({ useOnlyPowersOfTen: false }), nb),
|
|
107
151
|
qcmTimer: 60,
|
|
108
152
|
freeTimer: 60,
|
|
109
153
|
getPropositions,
|
|
110
154
|
isAnswerValid,
|
|
111
155
|
subject: "Mathématiques",
|
|
112
156
|
hasHintAndCorrection: true,
|
|
157
|
+
getAnswer,
|
|
158
|
+
getCorrection,
|
|
159
|
+
getHint,
|
|
160
|
+
getInstruction,
|
|
161
|
+
getStartStatement,
|
|
113
162
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binomialInequation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/binomial/binomialInequation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EAEL,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAEL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,eAAe,CAAC;IACnB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAgKF,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAgBF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"binomialInequation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/binomial/binomialInequation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EAEL,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAEL,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,eAAe,CAAC;IACnB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAgKF,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAgBF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAuB7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probaFromTableNoContext.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/probaFromTableNoContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,0BAA0B,CAAC;AAWlC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"probaFromTableNoContext.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/probaFromTableNoContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,0BAA0B,CAAC;AAWlC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAoIF,KAAK,OAAO,GAAG;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAsBF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAiBlE,CAAC"}
|
|
@@ -17,7 +17,9 @@ const getInstruction = ({ aBarreCapB, aBarreCapBBarre, aCapB, aCapBBarre, event,
|
|
|
17
17
|
const bTotal = aCapB + aBarreCapB;
|
|
18
18
|
const aBarreTotal = aBarreCapB + aBarreCapBBarre;
|
|
19
19
|
const bBarreTotal = aBarreCapBBarre + aCapBBarre;
|
|
20
|
-
return `On considère deux événements $A$ et $B$.
|
|
20
|
+
return `On considère deux événements $A$ et $B$.
|
|
21
|
+
|
|
22
|
+
Le tableau suivant donne le nombre d'issues pour chacun des événements $A\\cap B$, $\\overline A\\cap B$, $A\\cap \\overline B$ et $\\overline A \\cap \\overline B$.
|
|
21
23
|
|
|
22
24
|
${(0, mdTable_1.mdTable)([
|
|
23
25
|
[" ", "$B$", "$\\overline{B}$", "Total"],
|
|
@@ -30,6 +32,8 @@ ${(0, mdTable_1.mdTable)([
|
|
|
30
32
|
],
|
|
31
33
|
["Total", (0, dollarize_1.dollarize)(bTotal), (0, dollarize_1.dollarize)(bBarreTotal), (0, dollarize_1.dollarize)(total)],
|
|
32
34
|
])}
|
|
35
|
+
|
|
36
|
+
Calculer la probabilité $${event}$.
|
|
33
37
|
`;
|
|
34
38
|
};
|
|
35
39
|
const getProbaFromTableNoContextQuestion = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probaFromTableWithContext.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/probaFromTableWithContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,0BAA0B,CAAC;AAWlC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"probaFromTableWithContext.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/probaFromTableWithContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,0BAA0B,CAAC;AAWlC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AA2IF,KAAK,OAAO,GAAG;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAsBF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAoBpE,CAAC"}
|
|
@@ -15,9 +15,25 @@ const getInstruction = ({ aBarreCapB, aBarreCapBBarre, aCapB, aCapBBarre, event,
|
|
|
15
15
|
return `Le tableau suivant donne le nombre de filles et de garçons portant des lunettes dans un lycée :
|
|
16
16
|
|
|
17
17
|
${(0, mdTable_1.mdTable)([
|
|
18
|
-
[" ", "Porte des lunettes", "Ne porte pas de lunettes"],
|
|
19
|
-
[
|
|
20
|
-
|
|
18
|
+
[" ", "Porte des lunettes", "Ne porte pas de lunettes", "Total"],
|
|
19
|
+
[
|
|
20
|
+
"Filles",
|
|
21
|
+
(0, dollarize_1.dollarize)(aCapB),
|
|
22
|
+
(0, dollarize_1.dollarize)(aCapBBarre),
|
|
23
|
+
(0, dollarize_1.dollarize)(aCapB + aCapBBarre),
|
|
24
|
+
],
|
|
25
|
+
[
|
|
26
|
+
"Garçons",
|
|
27
|
+
(0, dollarize_1.dollarize)(aBarreCapB),
|
|
28
|
+
(0, dollarize_1.dollarize)(aBarreCapBBarre),
|
|
29
|
+
(0, dollarize_1.dollarize)(aBarreCapB + aBarreCapBBarre),
|
|
30
|
+
],
|
|
31
|
+
[
|
|
32
|
+
"Total",
|
|
33
|
+
(0, dollarize_1.dollarize)(aCapB + aBarreCapB),
|
|
34
|
+
(0, dollarize_1.dollarize)(aCapBBarre + aBarreCapBBarre),
|
|
35
|
+
(0, dollarize_1.dollarize)(aCapB + aCapBBarre + aBarreCapB + aBarreCapBBarre),
|
|
36
|
+
],
|
|
21
37
|
])}
|
|
22
38
|
|
|
23
39
|
On choisit un élève au hasard. Quelle est la probabilité de tomber sur ${event} ?
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=lineAndPlaneRelativePosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lineAndPlaneRelativePosition.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/spaceGeometry/lineAndPlaneRelativePosition.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import {
|
|
3
|
+
// Exercise,
|
|
4
|
+
// Proposition,
|
|
5
|
+
// QCMGenerator,
|
|
6
|
+
// Question,
|
|
7
|
+
// QuestionGenerator,
|
|
8
|
+
// VEA,
|
|
9
|
+
// GGBVEA,
|
|
10
|
+
// addValidProp,
|
|
11
|
+
// shuffleProps,
|
|
12
|
+
// tryToAddWrongProp,
|
|
13
|
+
// GetAnswer,
|
|
14
|
+
// GetHint,
|
|
15
|
+
// GetCorrection,
|
|
16
|
+
// GetInstruction,
|
|
17
|
+
// GetKeys,
|
|
18
|
+
// GetGGBOptions,
|
|
19
|
+
// GetStudentGGBOptions,
|
|
20
|
+
// GetGGBAnswer,
|
|
21
|
+
// } from '../../../exercises/exercise';
|
|
22
|
+
// import { getDistinctQuestions } from '../../../exercises/utils/getDistinctQuestions';
|
|
23
|
+
// type Identifiers = {
|
|
24
|
+
// planName: string;
|
|
25
|
+
// lineName: string;
|
|
26
|
+
// positionRelative: string;
|
|
27
|
+
// };
|
|
28
|
+
// const getPropositions: QCMGenerator<Identifiers> = (n, { answer }) => {
|
|
29
|
+
// const propositions: Proposition[] = [];
|
|
30
|
+
// addValidProp(propositions, answer);
|
|
31
|
+
// while (propositions.length < n) {
|
|
32
|
+
// throw Error("QCM not implemented")
|
|
33
|
+
// }
|
|
34
|
+
// return shuffleProps(propositions, n);
|
|
35
|
+
// };
|
|
36
|
+
// const getAnswer : GetAnswer<Identifiers> = (identifiers)=>{
|
|
37
|
+
// return identifiers.positionRelative
|
|
38
|
+
// }
|
|
39
|
+
// const getInstruction : GetInstruction<Identifiers> = (identifiers)=>{
|
|
40
|
+
// }
|
|
41
|
+
// const getHint : GetHint<Identifiers> = (identifiers)=>{
|
|
42
|
+
// }
|
|
43
|
+
// const getCorrection : GetCorrection<Identifiers> = (identifiers)=>{
|
|
44
|
+
// }
|
|
45
|
+
// const getGGBOptions: GetGGBOptions<Identifiers> = (identifiers)=>{
|
|
46
|
+
// }
|
|
47
|
+
// const getKeys : GetKeys<Identifiers> = (identifiers)=>{
|
|
48
|
+
// return []
|
|
49
|
+
// }
|
|
50
|
+
// const isAnswerValid: VEA<Identifiers> = (ans, {answer})=>{
|
|
51
|
+
// throw Error("VEA not implemented")
|
|
52
|
+
// }
|
|
53
|
+
// const getLineAndPlaneRelativePositionQuestion: QuestionGenerator<Identifiers> = (opts)=>{
|
|
54
|
+
// const identifiers: Identifiers = {}
|
|
55
|
+
// const question: Question<Identifiers> = {
|
|
56
|
+
// answer: getAnswer(identifiers),
|
|
57
|
+
// instruction: getInstruction(identifiers),
|
|
58
|
+
// keys: getKeys(identifiers),
|
|
59
|
+
// answerFormat: 'tex',
|
|
60
|
+
// identifiers,
|
|
61
|
+
// hint: getHint(identifiers),
|
|
62
|
+
// correction: getCorrection(identifiers),
|
|
63
|
+
// ggbOptions: getGGBOptions(identifiers)
|
|
64
|
+
// };
|
|
65
|
+
// return question;
|
|
66
|
+
// }
|
|
67
|
+
// export const lineAndPlaneRelativePosition: Exercise<Identifiers> = {
|
|
68
|
+
// id: 'lineAndPlaneRelativePosition',
|
|
69
|
+
// connector: "=",
|
|
70
|
+
// label: "Déterminer la position relative d'une droite et d'un plan",
|
|
71
|
+
// isSingleStep: true,
|
|
72
|
+
// generator: (nb,opts) => getDistinctQuestions(()=>getLineAndPlaneRelativePositionQuestion(opts), nb),
|
|
73
|
+
// qcmTimer: 60,
|
|
74
|
+
// freeTimer: 60,
|
|
75
|
+
// getPropositions,
|
|
76
|
+
// isAnswerValid,
|
|
77
|
+
// subject: "Mathématiques",
|
|
78
|
+
// getHint,
|
|
79
|
+
// getCorrection,
|
|
80
|
+
// getInstruction,
|
|
81
|
+
// getAnswer,
|
|
82
|
+
// getGGBOptions,
|
|
83
|
+
// answerType: "QCU"
|
|
84
|
+
// };
|
|
@@ -4,4 +4,6 @@ export * from "./squareRootIdentities";
|
|
|
4
4
|
export * from "./squareRootsDistributivity";
|
|
5
5
|
export * from "./squareRootsSum";
|
|
6
6
|
export * from "./squareRootsProducts";
|
|
7
|
+
export * from "./squareRootsFractions";
|
|
8
|
+
export * from "./squareRootsToSquare";
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/squareRoots/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/squareRoots/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
|
|
@@ -20,3 +20,5 @@ __exportStar(require("./squareRootIdentities"), exports);
|
|
|
20
20
|
__exportStar(require("./squareRootsDistributivity"), exports);
|
|
21
21
|
__exportStar(require("./squareRootsSum"), exports);
|
|
22
22
|
__exportStar(require("./squareRootsProducts"), exports);
|
|
23
|
+
__exportStar(require("./squareRootsFractions"), exports);
|
|
24
|
+
__exportStar(require("./squareRootsToSquare"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Exercise } from "../../../exercises/exercise";
|
|
2
|
+
type Identifiers = {
|
|
3
|
+
a: number;
|
|
4
|
+
b: number;
|
|
5
|
+
c: number;
|
|
6
|
+
d: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const squareRootsFractions: Exercise<Identifiers>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=squareRootsFractions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"squareRootsFractions.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/squareRoots/squareRootsFractions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAUlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA8EF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.squareRootsFractions = void 0;
|
|
4
|
+
const exercise_1 = require("../../../exercises/exercise");
|
|
5
|
+
const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
|
|
6
|
+
const rational_1 = require("../../../math/numbers/rationals/rational");
|
|
7
|
+
const randint_1 = require("../../../math/utils/random/randint");
|
|
8
|
+
const sqrtNode_1 = require("../../../tree/nodes/functions/sqrtNode");
|
|
9
|
+
const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
|
|
10
|
+
const multiplyNode_1 = require("../../../tree/nodes/operators/multiplyNode");
|
|
11
|
+
const rationalParser_1 = require("../../../tree/parsers/rationalParser");
|
|
12
|
+
const coinFlip_1 = require("../../../utils/alea/coinFlip");
|
|
13
|
+
const getPropositions = (n, { answer }) => {
|
|
14
|
+
const propositions = [];
|
|
15
|
+
(0, exercise_1.addValidProp)(propositions, answer);
|
|
16
|
+
while (propositions.length < n) {
|
|
17
|
+
(0, exercise_1.tryToAddWrongProp)(propositions, rational_1.RationalConstructor.randomIrreductible().toTree().toTex());
|
|
18
|
+
}
|
|
19
|
+
return (0, exercise_1.shuffleProps)(propositions, n);
|
|
20
|
+
};
|
|
21
|
+
const getAnswer = (identifiers) => {
|
|
22
|
+
const { a, b, c, d } = identifiers;
|
|
23
|
+
return (0, fractionNode_1.frac)((0, multiplyNode_1.multiply)(a, (0, sqrtNode_1.sqrt)(b)), (0, multiplyNode_1.multiply)(c, (0, sqrtNode_1.sqrt)(d)))
|
|
24
|
+
.simplify()
|
|
25
|
+
.toTex();
|
|
26
|
+
};
|
|
27
|
+
const getInstruction = (identifiers) => {
|
|
28
|
+
const { a, b, c, d } = identifiers;
|
|
29
|
+
return `Simplifier au maximum :
|
|
30
|
+
|
|
31
|
+
$$
|
|
32
|
+
${(0, fractionNode_1.frac)((0, multiplyNode_1.multiply)(a, (0, sqrtNode_1.sqrt)(b)), (0, multiplyNode_1.multiply)(c, (0, sqrtNode_1.sqrt)(d))).toTex()}
|
|
33
|
+
$$`;
|
|
34
|
+
};
|
|
35
|
+
// const getHint: GetHint<Identifiers> = (identifiers) => {};
|
|
36
|
+
// const getCorrection: GetCorrection<Identifiers> = (identifiers) => {};
|
|
37
|
+
const getKeys = (identifiers) => {
|
|
38
|
+
return [];
|
|
39
|
+
};
|
|
40
|
+
const isAnswerValid = (ans, { answer }) => {
|
|
41
|
+
const parsed = (0, rationalParser_1.rationalParser)(ans);
|
|
42
|
+
if (!parsed)
|
|
43
|
+
return false;
|
|
44
|
+
return parsed.simplify().toTex() === answer;
|
|
45
|
+
};
|
|
46
|
+
// a/√b + c/√d
|
|
47
|
+
// avec b/d = q^2 ou b/d = 1/q^2
|
|
48
|
+
const getSquareRootsFractionsQuestion = () => {
|
|
49
|
+
const a = (0, randint_1.randint)(-10, 10, [0]);
|
|
50
|
+
const c = (0, randint_1.randint)(-10, 10, [0]);
|
|
51
|
+
const q = (0, randint_1.randint)(2, 10);
|
|
52
|
+
let b;
|
|
53
|
+
let d;
|
|
54
|
+
if ((0, coinFlip_1.coinFlip)()) {
|
|
55
|
+
d = (0, randint_1.randint)(2, 10);
|
|
56
|
+
b = d * q ** 2;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
b = (0, randint_1.randint)(2, 10);
|
|
60
|
+
d = b * q ** 2;
|
|
61
|
+
}
|
|
62
|
+
const identifiers = {
|
|
63
|
+
a,
|
|
64
|
+
b,
|
|
65
|
+
c,
|
|
66
|
+
d,
|
|
67
|
+
};
|
|
68
|
+
const question = {
|
|
69
|
+
answer: getAnswer(identifiers),
|
|
70
|
+
instruction: getInstruction(identifiers),
|
|
71
|
+
keys: getKeys(identifiers),
|
|
72
|
+
answerFormat: "tex",
|
|
73
|
+
identifiers,
|
|
74
|
+
// hint: getHint(identifiers),
|
|
75
|
+
// correction: getCorrection(identifiers),
|
|
76
|
+
};
|
|
77
|
+
return question;
|
|
78
|
+
};
|
|
79
|
+
exports.squareRootsFractions = {
|
|
80
|
+
id: "squareRootsFractions",
|
|
81
|
+
connector: "=",
|
|
82
|
+
label: "Fractions de racines carrées",
|
|
83
|
+
isSingleStep: true,
|
|
84
|
+
generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSquareRootsFractionsQuestion, nb),
|
|
85
|
+
qcmTimer: 60,
|
|
86
|
+
freeTimer: 60,
|
|
87
|
+
getPropositions,
|
|
88
|
+
isAnswerValid,
|
|
89
|
+
subject: "Mathématiques",
|
|
90
|
+
// getHint,
|
|
91
|
+
// getCorrection,
|
|
92
|
+
getAnswer,
|
|
93
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Exercise } from "../../../exercises/exercise";
|
|
2
|
+
import { NodeIdentifiers } from "../../../tree/nodes/nodeConstructor";
|
|
3
|
+
type Identifiers = {
|
|
4
|
+
a: number;
|
|
5
|
+
k: NodeIdentifiers;
|
|
6
|
+
isSquareInside: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const squareRootsToSquare: Exercise<Identifiers>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=squareRootsToSquare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"squareRootsToSquare.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/squareRoots/squareRootsToSquare.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAEL,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAO1C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,eAAe,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAmHF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAgBrD,CAAC"}
|