math-exercises 3.0.94 → 3.0.96

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.
Files changed (88) hide show
  1. package/lib/exercises/math/calcul/arithmetics/index.d.ts +0 -9
  2. package/lib/exercises/math/calcul/arithmetics/index.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/index.js +0 -9
  4. package/lib/exercises/math/calcul/decimals/decimalBoundingOnLine.d.ts +9 -0
  5. package/lib/exercises/math/calcul/decimals/decimalBoundingOnLine.d.ts.map +1 -0
  6. package/lib/exercises/math/calcul/decimals/decimalBoundingOnLine.js +171 -0
  7. package/lib/exercises/math/calcul/decimals/index.d.ts +1 -0
  8. package/lib/exercises/math/calcul/decimals/index.d.ts.map +1 -1
  9. package/lib/exercises/math/calcul/decimals/index.js +1 -0
  10. package/lib/exercises/math/calcul/fractions/index.d.ts +0 -1
  11. package/lib/exercises/math/calcul/fractions/index.d.ts.map +1 -1
  12. package/lib/exercises/math/calcul/fractions/index.js +0 -1
  13. package/lib/exercises/math/functions/basics/countFunctionZeroes.d.ts +11 -0
  14. package/lib/exercises/math/functions/basics/countFunctionZeroes.d.ts.map +1 -0
  15. package/lib/exercises/math/functions/basics/countFunctionZeroes.js +197 -0
  16. package/lib/exercises/math/functions/basics/findZeroesProductQuotient.d.ts +11 -0
  17. package/lib/exercises/math/functions/basics/findZeroesProductQuotient.d.ts.map +1 -0
  18. package/lib/exercises/math/functions/basics/findZeroesProductQuotient.js +213 -0
  19. package/lib/exercises/math/functions/basics/index.d.ts +3 -0
  20. package/lib/exercises/math/functions/basics/index.d.ts.map +1 -1
  21. package/lib/exercises/math/functions/basics/index.js +3 -1
  22. package/lib/exercises/math/functions/basics/isPointOnFunction.d.ts +10 -0
  23. package/lib/exercises/math/functions/basics/isPointOnFunction.d.ts.map +1 -0
  24. package/lib/exercises/math/functions/basics/isPointOnFunction.js +133 -0
  25. package/lib/exercises/math/functions/cube/index.d.ts +1 -0
  26. package/lib/exercises/math/functions/cube/index.d.ts.map +1 -1
  27. package/lib/exercises/math/functions/cube/index.js +1 -0
  28. package/lib/exercises/math/functions/cube/isPointOnCubicFunction.d.ts +9 -0
  29. package/lib/exercises/math/functions/cube/isPointOnCubicFunction.d.ts.map +1 -0
  30. package/lib/exercises/math/functions/cube/isPointOnCubicFunction.js +111 -0
  31. package/lib/exercises/math/functions/inverse/compareInverseValues.d.ts +10 -0
  32. package/lib/exercises/math/functions/inverse/compareInverseValues.d.ts.map +1 -0
  33. package/lib/exercises/math/functions/inverse/compareInverseValues.js +136 -0
  34. package/lib/exercises/math/functions/inverse/index.d.ts +3 -0
  35. package/lib/exercises/math/functions/inverse/index.d.ts.map +1 -0
  36. package/lib/exercises/math/functions/inverse/index.js +2 -0
  37. package/lib/exercises/math/functions/inverse/isPointOnReciprocalFunction.d.ts +9 -0
  38. package/lib/exercises/math/functions/inverse/isPointOnReciprocalFunction.d.ts.map +1 -0
  39. package/lib/exercises/math/functions/inverse/isPointOnReciprocalFunction.js +117 -0
  40. package/lib/exercises/math/functions/sign/equationFromSignTable.d.ts +4 -1
  41. package/lib/exercises/math/functions/sign/equationFromSignTable.d.ts.map +1 -1
  42. package/lib/exercises/math/functions/sign/equationFromSignTable.js +25 -10
  43. package/lib/exercises/math/functions/sqrt/getImageOfSquareRootFunction.d.ts +8 -0
  44. package/lib/exercises/math/functions/sqrt/getImageOfSquareRootFunction.d.ts.map +1 -0
  45. package/lib/exercises/math/functions/sqrt/getImageOfSquareRootFunction.js +128 -0
  46. package/lib/exercises/math/functions/sqrt/index.d.ts +1 -0
  47. package/lib/exercises/math/functions/sqrt/index.d.ts.map +1 -1
  48. package/lib/exercises/math/functions/sqrt/index.js +1 -0
  49. package/lib/exercises/math/functions/square/compareSquaredValues.d.ts +9 -0
  50. package/lib/exercises/math/functions/square/compareSquaredValues.d.ts.map +1 -0
  51. package/lib/exercises/math/functions/square/compareSquaredValues.js +143 -0
  52. package/lib/exercises/math/functions/square/imageOfSquareFunction.d.ts +8 -0
  53. package/lib/exercises/math/functions/square/imageOfSquareFunction.d.ts.map +1 -0
  54. package/lib/exercises/math/functions/square/imageOfSquareFunction.js +152 -0
  55. package/lib/exercises/math/functions/square/index.d.ts +2 -1
  56. package/lib/exercises/math/functions/square/index.d.ts.map +1 -1
  57. package/lib/exercises/math/functions/square/index.js +3 -1
  58. package/lib/exercises/math/functions/square/squareImageIntervalWithGraph.d.ts +11 -0
  59. package/lib/exercises/math/functions/square/squareImageIntervalWithGraph.d.ts.map +1 -0
  60. package/lib/exercises/math/functions/square/squareImageIntervalWithGraph.js +174 -0
  61. package/lib/exercises/math/functions/variations/varTableFromSentences.d.ts +2 -0
  62. package/lib/exercises/math/functions/variations/varTableFromSentences.d.ts.map +1 -0
  63. package/lib/exercises/math/functions/variations/varTableFromSentences.js +137 -0
  64. package/lib/exercises/math/powers/index.d.ts +1 -0
  65. package/lib/exercises/math/powers/index.d.ts.map +1 -1
  66. package/lib/exercises/math/powers/index.js +1 -0
  67. package/lib/exercises/math/powers/powerNotation.d.ts +9 -0
  68. package/lib/exercises/math/powers/powerNotation.d.ts.map +1 -0
  69. package/lib/exercises/math/powers/powerNotation.js +126 -0
  70. package/lib/exercises/math/probaStat/stats1var/averageList.d.ts.map +1 -1
  71. package/lib/exercises/math/probaStat/stats1var/averageList.js +1 -0
  72. package/lib/exercises/math/probaStat/stats1var/averageWithTable.d.ts.map +1 -1
  73. package/lib/exercises/math/probaStat/stats1var/averageWithTable.js +1 -0
  74. package/lib/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.d.ts.map +1 -1
  75. package/lib/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.js +1 -0
  76. package/lib/exercises/math/probaStat/stats1var/standardDeviationList.d.ts.map +1 -1
  77. package/lib/exercises/math/probaStat/stats1var/standardDeviationList.js +1 -0
  78. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.d.ts.map +1 -1
  79. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.js +1 -0
  80. package/lib/exercises/math/sets/index.d.ts +1 -0
  81. package/lib/exercises/math/sets/index.d.ts.map +1 -1
  82. package/lib/exercises/math/sets/index.js +1 -0
  83. package/lib/exercises/math/sets/isNumberDecimal.d.ts +11 -0
  84. package/lib/exercises/math/sets/isNumberDecimal.d.ts.map +1 -0
  85. package/lib/exercises/math/sets/isNumberDecimal.js +144 -0
  86. package/lib/index.d.ts +43 -42
  87. package/lib/index.d.ts.map +1 -1
  88. package/package.json +1 -1
@@ -9,3 +9,4 @@ export * from "./powersProduct.js";
9
9
  export * from "./scientificToDecimal.js";
10
10
  export * from "./powersMixOperations.js";
11
11
  export * from "./powersOfTenMixOperations.js";
12
+ export * from "./powerNotation.js";
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ a: number;
4
+ n: number;
5
+ isSimplified: boolean;
6
+ };
7
+ export declare const powerNotation: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=powerNotation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerNotation.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/powers/powerNotation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAmIF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAkB/C,CAAC"}
@@ -0,0 +1,126 @@
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 { add } from "../../../tree/nodes/operators/addNode.js";
5
+ import { frac } from "../../../tree/nodes/operators/fractionNode.js";
6
+ import { multiply } from "../../../tree/nodes/operators/multiplyNode.js";
7
+ import { isPowerNode, power } from "../../../tree/nodes/operators/powerNode.js";
8
+ import { substract } from "../../../tree/nodes/operators/substractNode.js";
9
+ import { parseAlgebraic } from "../../../tree/parsers/latexParser.js";
10
+ import { coinFlip } from "../../../utils/alea/coinFlip.js";
11
+ import { handleVEAError } from "../../../utils/errors/handleVEAError.js";
12
+ const getPropositions = (nn, { answer, ...identifiers }) => {
13
+ const propositions = [];
14
+ addValidProp(propositions, answer);
15
+ const { a, n } = identifiers;
16
+ // Soit 1/a^n
17
+ // (a+1)^n
18
+ tryToAddWrongProp(propositions, power(add(a, 1).simplify(), n).toTex());
19
+ // (a-1)^n
20
+ tryToAddWrongProp(propositions, power(substract(a, 1).simplify(), n).toTex());
21
+ // -a^n
22
+ tryToAddWrongProp(propositions, power(multiply(-1, a), n).toTex());
23
+ // -a^(-n)
24
+ tryToAddWrongProp(propositions, power(multiply(-1, a), multiply(-1, n)).toTex());
25
+ // a*-1^(-n)
26
+ tryToAddWrongProp(propositions, multiply(a, power(-1, multiply(-1, n))).toTex());
27
+ // n^a
28
+ tryToAddWrongProp(propositions, power(n, a).toTex());
29
+ // -n^a
30
+ tryToAddWrongProp(propositions, power(multiply(-1, n), a).toTex());
31
+ // n^(-a)
32
+ tryToAddWrongProp(propositions, power(n, multiply(-1, a)).toTex());
33
+ return shuffleProps(propositions, nn);
34
+ };
35
+ const getAnswer = (identifiers) => {
36
+ // (1/a^n) <=> a^(-n)
37
+ const { a, n } = identifiers;
38
+ return `${power(a, multiply(-1, n)).toTex()}`;
39
+ };
40
+ const getInstruction = (identifiers) => {
41
+ const { a, n, isSimplified } = identifiers;
42
+ const an = power(a, n);
43
+ const fraction = frac(1, isSimplified ? an.evaluate() : an);
44
+ return `Écrire $${fraction.toTex()}$ sous la forme $a^n$, avec $n \\in \\mathbb{Z}.$`;
45
+ };
46
+ const getHint = (identifiers) => {
47
+ const fracForm = frac(1, power("a", "n")).toTex();
48
+ return `On a :
49
+
50
+ $$
51
+ ${fracForm} = ${power("a", multiply(-1, "n")).toTex()}
52
+ $$`;
53
+ };
54
+ const getCorrection = (identifiers) => {
55
+ const { a, n, isSimplified } = identifiers;
56
+ const fraction = frac(1, power(a, n));
57
+ const fracForm = frac(1, power("a", "n")).toTex();
58
+ return `On sait que :
59
+
60
+ $$
61
+ ${fracForm} = ${power("a", multiply(-1, "n")).toTex()}
62
+ $$
63
+
64
+ Ici on a donc :
65
+
66
+ $$
67
+ ${fraction.toTex()} = ${power(a, multiply(-1, n)).toTex()}
68
+ $$
69
+
70
+ avec $a = ${a}$ et $n = ${n}$${isSimplified
71
+ ? `, sachant que $${power(a, n).evaluate()} = ${power(a, n).toTex()}$`
72
+ : ""}.`;
73
+ };
74
+ const getKeys = (identifiers) => {
75
+ return [];
76
+ };
77
+ const isAnswerValid = (ans, { answer, ...identifiers }) => {
78
+ const { a, n } = identifiers;
79
+ const node = parseAlgebraic(ans);
80
+ try {
81
+ return (isPowerNode(node) &&
82
+ node.simplify().equals(power(a, multiply(-1, n)).simplify()));
83
+ }
84
+ catch (err) {
85
+ return handleVEAError(err);
86
+ }
87
+ };
88
+ const getPowerNotationQuestion = (ops) => {
89
+ const isSimplePower = (a, n) => {
90
+ return (n === 2 && a <= 11) || (n === 3 && a <= 3);
91
+ };
92
+ const a = randint(2, 12);
93
+ const n = randint(2, 5);
94
+ const isSimplified = isSimplePower(a, n) ? coinFlip() : false;
95
+ const identifiers = { a, n, isSimplified };
96
+ return getQuestionFromIdentifiers(identifiers);
97
+ };
98
+ const getQuestionFromIdentifiers = (identifiers) => {
99
+ return {
100
+ answer: getAnswer(identifiers),
101
+ instruction: getInstruction(identifiers),
102
+ keys: getKeys(identifiers),
103
+ answerFormat: "tex",
104
+ identifiers,
105
+ hint: getHint(identifiers),
106
+ correction: getCorrection(identifiers),
107
+ };
108
+ };
109
+ export const powerNotation = {
110
+ id: "powerNotation",
111
+ label: "Écrire une fraction sous la forme $a^n$",
112
+ isSingleStep: true,
113
+ generator: (nb, opts) => getDistinctQuestions(() => getPowerNotationQuestion(opts), nb),
114
+ qcmTimer: 60,
115
+ freeTimer: 60,
116
+ getPropositions,
117
+ isAnswerValid,
118
+ subject: "Mathématiques",
119
+ getInstruction,
120
+ getHint,
121
+ getCorrection,
122
+ getAnswer,
123
+ getQuestionFromIdentifiers,
124
+ hasHintAndCorrection: true,
125
+ shouldHaveCalculator: false,
126
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"averageList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/averageList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AA2FF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAe7C,CAAC"}
1
+ {"version":3,"file":"averageList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/averageList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AA2FF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAgB7C,CAAC"}
@@ -91,4 +91,5 @@ export const averageList = {
91
91
  subject: "Mathématiques",
92
92
  hasHintAndCorrection: true,
93
93
  getQuestionFromIdentifiers,
94
+ shouldHaveCalculator: true,
94
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"averageWithTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/averageWithTable.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAaT,MAAM,sBAAsB,CAAC;AAQ9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAoHF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAgBlD,CAAC"}
1
+ {"version":3,"file":"averageWithTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/averageWithTable.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAaT,MAAM,sBAAsB,CAAC;AAQ9B,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAoHF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAiBlD,CAAC"}
@@ -103,4 +103,5 @@ export const averageWithTable = {
103
103
  subject: "Mathématiques",
104
104
  getQuestionFromIdentifiers,
105
105
  hasHintAndCorrection: true,
106
+ shouldHaveCalculator: true,
106
107
  };
@@ -1 +1 @@
1
- {"version":3,"file":"calculateMeanFromFrequencies.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAwGF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAoB9D,CAAC"}
1
+ {"version":3,"file":"calculateMeanFromFrequencies.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAwGF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAqB9D,CAAC"}
@@ -105,4 +105,5 @@ export const calculateMeanFromFrequencies = {
105
105
  getAnswer,
106
106
  getQuestionFromIdentifiers,
107
107
  hasHintAndCorrection: true,
108
+ shouldHaveCalculator: true,
108
109
  };
@@ -1 +1 @@
1
- {"version":3,"file":"standardDeviationList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/standardDeviationList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAarC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AA6HF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAcvD,CAAC"}
1
+ {"version":3,"file":"standardDeviationList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/standardDeviationList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAarC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AA6HF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAevD,CAAC"}
@@ -125,4 +125,5 @@ export const standardDeviationList = {
125
125
  subject: "Mathématiques",
126
126
  getQuestionFromIdentifiers,
127
127
  hasHintAndCorrection: true,
128
+ shouldHaveCalculator: true,
128
129
  };
@@ -1 +1 @@
1
- {"version":3,"file":"standardDeviationTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/standardDeviationTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAcrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAkJF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAcxD,CAAC"}
1
+ {"version":3,"file":"standardDeviationTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/standardDeviationTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAcrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAkJF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAexD,CAAC"}
@@ -141,4 +141,5 @@ export const standardDeviationTable = {
141
141
  subject: "Mathématiques",
142
142
  getQuestionFromIdentifiers,
143
143
  hasHintAndCorrection: true,
144
+ shouldHaveCalculator: true,
144
145
  };
@@ -2,4 +2,5 @@ export * from "./intervals/index.js";
2
2
  export * from "./setBelonging.js";
3
3
  export * from "./nameOfNumberSets.js";
4
4
  export * from "./subsetsOfKnownSets.js";
5
+ export * from "./isNumberDecimal.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sets/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sets/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
@@ -2,3 +2,4 @@ export * from "./intervals/index.js";
2
2
  export * from "./setBelonging.js";
3
3
  export * from "./nameOfNumberSets.js";
4
4
  export * from "./subsetsOfKnownSets.js";
5
+ export * from "./isNumberDecimal.js";
@@ -0,0 +1,11 @@
1
+ import { Exercise } from "../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ options: {
5
+ a: NodeIdentifiers;
6
+ isDecimal: boolean;
7
+ }[];
8
+ };
9
+ export declare const isNumberdecimal: Exercise<Identifiers>;
10
+ export {};
11
+ //# sourceMappingURL=isNumberDecimal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isNumberDecimal.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/sets/isNumberDecimal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAa7C,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE;QACP,CAAC,EAAE,eAAe,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;KACpB,EAAE,CAAC;CACL,CAAC;AAqIF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAmBjD,CAAC"}
@@ -0,0 +1,144 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../exercises/utils/getDistinctQuestions.js";
3
+ import { RationalConstructor } from "../../../math/numbers/rationals/rational.js";
4
+ import { randfloat } from "../../../math/utils/random/randfloat.js";
5
+ import { randint } from "../../../math/utils/random/randint.js";
6
+ import { reifyAlgebraic, } from "../../../tree/nodes/nodeConstructor.js";
7
+ import { isConstantNode } from "../../../tree/nodes/numbers/constantNode.js";
8
+ import { PiNode } from "../../../tree/nodes/numbers/piNode.js";
9
+ import { isFractionNode, } from "../../../tree/nodes/operators/fractionNode.js";
10
+ import { coinFlip } from "../../../utils/alea/coinFlip.js";
11
+ import { random } from "../../../utils/alea/random.js";
12
+ import { doWhile } from "../../../utils/doWhile.js";
13
+ import { handleVEAError } from "../../../utils/errors/handleVEAError.js";
14
+ const getPropositions = (n, { answer, options }) => {
15
+ const propositions = [];
16
+ for (const { a, isDecimal } of options) {
17
+ const prop = reifyAlgebraic(a).toTex();
18
+ if (isDecimal) {
19
+ addValidProp(propositions, prop);
20
+ }
21
+ else {
22
+ tryToAddWrongProp(propositions, prop);
23
+ }
24
+ }
25
+ return shuffleProps(propositions, n);
26
+ };
27
+ const getAnswer = (identifiers) => {
28
+ return "";
29
+ };
30
+ const getInstruction = (identifiers) => {
31
+ return "Parmi ces nombres, lesquels sont décimaux ?";
32
+ };
33
+ const getHint = (identifiers) => {
34
+ return "Un nombre est décimal s'il a un nombre fini de chiffres après la virgule.";
35
+ };
36
+ const getCorrection = (identifiers) => {
37
+ const { options } = identifiers;
38
+ let correction = "";
39
+ for (const { a, isDecimal } of options) {
40
+ const node = reifyAlgebraic(a);
41
+ const tex = node.toTex();
42
+ if (isConstantNode(node)) {
43
+ correction += `- $${tex}$ n'est pas un nombre décimal, car il s'écrit avec un nombre infini de chiffres après la virgule.\n\n`;
44
+ }
45
+ else if (isFractionNode(node)) {
46
+ const denom = node.rightChild.toTex();
47
+ if (isDecimal) {
48
+ correction += `- $${tex} = ${node
49
+ .evaluate()
50
+ .frenchify()}$ est un nombre décimal car il s'écrit avec un nombre fini de chiffres après la virgule.\n\n`;
51
+ }
52
+ else {
53
+ correction += `- $${tex} \\approx ${node
54
+ .evaluate()
55
+ .frenchify()
56
+ .slice(0, 8)}\\ldots$ n'est pas un nombre décimal, car il s'écrit avec un nombre infini de chiffres après la virgule.\n\n`;
57
+ }
58
+ }
59
+ else {
60
+ if (isDecimal) {
61
+ correction += `- $${tex}$ est un nombre décimal car il a un nombre fini de chiffres après sa virgule.\n\n`;
62
+ }
63
+ else {
64
+ correction += `- $${tex}$ est un nombre décimal car c'est un nombre entier. En effet, on peut écrire $${tex} = ${tex},0$.\n\n`;
65
+ }
66
+ }
67
+ }
68
+ return correction;
69
+ };
70
+ const getKeys = (identifiers) => {
71
+ return [];
72
+ };
73
+ const isAnswerValid = (ans, { answer }) => {
74
+ try {
75
+ throw Error("VEA not implemented");
76
+ }
77
+ catch (err) {
78
+ return handleVEAError(err);
79
+ }
80
+ };
81
+ const generateNonDecimalNumber = () => {
82
+ const nonDecimals = [];
83
+ nonDecimals.push(RationalConstructor.randomPureRational().toTree());
84
+ nonDecimals.push(PiNode);
85
+ return random(nonDecimals);
86
+ };
87
+ const generateDecimalNumber = () => {
88
+ const decimals = [];
89
+ decimals.push(randint(0, 100).toTree());
90
+ decimals.push(randfloat(0, 100, 2).toTree());
91
+ decimals.push(RationalConstructor.randomDecimal().toTree());
92
+ return random(decimals);
93
+ };
94
+ const getIsNumberdecimalQuestion = (ops) => {
95
+ let choices = [];
96
+ const decimal = generateDecimalNumber();
97
+ const nonDecimal = generateNonDecimalNumber();
98
+ choices.push({ a: decimal, isDecimal: true });
99
+ choices.push({ a: nonDecimal, isDecimal: false });
100
+ for (let i = 0; i < 2; i++) {
101
+ const isDecimal = coinFlip();
102
+ const randomNumber = doWhile(() => (isDecimal ? generateDecimalNumber() : generateNonDecimalNumber()), (a) => choices.some((c) => c.a.toTex() === a.toTex()));
103
+ choices.push({ a: randomNumber, isDecimal });
104
+ }
105
+ const identifiers = {
106
+ options: choices.map((c) => {
107
+ return {
108
+ a: c.a.toIdentifiers(),
109
+ isDecimal: c.isDecimal,
110
+ };
111
+ }),
112
+ };
113
+ return getQuestionFromIdentifiers(identifiers);
114
+ };
115
+ const getQuestionFromIdentifiers = (identifiers) => {
116
+ return {
117
+ answer: getAnswer(identifiers),
118
+ instruction: getInstruction(identifiers),
119
+ keys: getKeys(identifiers),
120
+ answerFormat: "tex",
121
+ identifiers,
122
+ hint: getHint(identifiers),
123
+ correction: getCorrection(identifiers),
124
+ };
125
+ };
126
+ export const isNumberdecimal = {
127
+ id: "isNumberDecimal",
128
+ label: "Dire si un nombre est décimal",
129
+ isSingleStep: true,
130
+ generator: (nb, opts) => getDistinctQuestions(() => getIsNumberdecimalQuestion(opts), nb),
131
+ qcmTimer: 60,
132
+ freeTimer: 60,
133
+ getPropositions,
134
+ isAnswerValid,
135
+ subject: "Mathématiques",
136
+ getInstruction,
137
+ getHint,
138
+ getCorrection,
139
+ getAnswer,
140
+ getQuestionFromIdentifiers,
141
+ hasHintAndCorrection: true,
142
+ answerType: "QCM",
143
+ isQCM: true,
144
+ };
package/lib/index.d.ts CHANGED
@@ -39,22 +39,6 @@ declare const mathExercises: (Exercise<{
39
39
  isAskingParity: boolean;
40
40
  }, {}> | Exercise<{
41
41
  n: number;
42
- }, {}> | Exercise<{
43
- a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
44
- }, {}> | Exercise<{
45
- options: {
46
- a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
47
- isDecimal: boolean;
48
- }[];
49
- }, {}> | Exercise<{
50
- x: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
51
- y: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
52
- }, {}> | Exercise<{
53
- x: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
54
- y: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
55
- }, {}> | Exercise<{
56
- point: import("./math/geometry/point.js").PointIdentifiers;
57
- func: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
58
42
  }, {}> | Exercise<{
59
43
  n: number;
60
44
  threshold: number;
@@ -62,22 +46,6 @@ declare const mathExercises: (Exercise<{
62
46
  }, {}> | Exercise<{
63
47
  a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
64
48
  b: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
65
- }, {}> | Exercise<{
66
- a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
67
- b: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
68
- isMinusInside: boolean;
69
- }, {}> | Exercise<{
70
- a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
71
- b: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
72
- }, {}> | Exercise<{
73
- point: import("./math/geometry/point.js").PointIdentifiers;
74
- bounding: number;
75
- }, {}> | Exercise<{
76
- type: number;
77
- a: number;
78
- b?: number;
79
- c?: number;
80
- d?: number;
81
49
  }, {}> | Exercise<{
82
50
  integerFirst: boolean;
83
51
  integer: number;
@@ -153,10 +121,6 @@ declare const mathExercises: (Exercise<{
153
121
  }, {
154
122
  allowNonIrreductible?: boolean;
155
123
  }> | Exercise<{
156
- a: number;
157
- n: number;
158
- isSimplified: boolean;
159
- }, {}> | Exercise<{
160
124
  a: number;
161
125
  b: number;
162
126
  c: number;
@@ -301,6 +265,9 @@ declare const mathExercises: (Exercise<{
301
265
  }, {}> | Exercise<{
302
266
  dec: number;
303
267
  pow: number;
268
+ }, {}> | Exercise<{
269
+ point: import("./math/geometry/point.js").PointIdentifiers;
270
+ bounding: number;
304
271
  }, {}> | Exercise<{
305
272
  choices: {
306
273
  node: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
@@ -932,6 +899,21 @@ declare const mathExercises: (Exercise<{
932
899
  }, {}> | Exercise<{
933
900
  points: number[][];
934
901
  initTable: string[][];
902
+ }, {}> | Exercise<{
903
+ point: import("./math/geometry/point.js").PointIdentifiers;
904
+ func: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
905
+ }, {}> | Exercise<{
906
+ type: number;
907
+ a: number;
908
+ b: number;
909
+ c: number;
910
+ d: number;
911
+ }, {}> | Exercise<{
912
+ type: number;
913
+ a: number;
914
+ b?: number;
915
+ c?: number;
916
+ d?: number;
935
917
  }, {}> | Exercise<{
936
918
  k: number;
937
919
  }, {}> | Exercise<{
@@ -939,6 +921,9 @@ declare const mathExercises: (Exercise<{
939
921
  }, {}> | Exercise<{
940
922
  a: number;
941
923
  b: number;
924
+ }, {}> | Exercise<{
925
+ x: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
926
+ y: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
942
927
  }, {}> | Exercise<{
943
928
  a: number;
944
929
  b: number;
@@ -1102,6 +1087,9 @@ declare const mathExercises: (Exercise<{
1102
1087
  type: number;
1103
1088
  }, {}> | Exercise<{
1104
1089
  a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
1090
+ }, {}> | Exercise<{
1091
+ a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
1092
+ b: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
1105
1093
  }, {}> | Exercise<{
1106
1094
  lowerBound: number;
1107
1095
  upperBound: number;
@@ -1174,7 +1162,9 @@ declare const mathExercises: (Exercise<{
1174
1162
  xs: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers[];
1175
1163
  type: number;
1176
1164
  ineqSymbol?: string;
1177
- }, {}> | Exercise<{
1165
+ }, {
1166
+ questionType: string;
1167
+ }> | Exercise<{
1178
1168
  initTable: string[][];
1179
1169
  a: number;
1180
1170
  x1: number;
@@ -1211,6 +1201,8 @@ declare const mathExercises: (Exercise<{
1211
1201
  b?: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
1212
1202
  }, {}> | Exercise<{
1213
1203
  x: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
1204
+ }, {}> | Exercise<{
1205
+ a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
1214
1206
  }, {}> | Exercise<{
1215
1207
  coin: boolean;
1216
1208
  radius: number;
@@ -1837,6 +1829,10 @@ declare const mathExercises: (Exercise<{
1837
1829
  b: number;
1838
1830
  c: number;
1839
1831
  d: number;
1832
+ }, {}> | Exercise<{
1833
+ a: number;
1834
+ n: number;
1835
+ isSimplified: boolean;
1840
1836
  }, {}> | Exercise<{
1841
1837
  c: number;
1842
1838
  }, {}> | Exercise<{
@@ -2232,6 +2228,11 @@ declare const mathExercises: (Exercise<{
2232
2228
  }, {}> | Exercise<{
2233
2229
  subset: number;
2234
2230
  set: number;
2231
+ }, {}> | Exercise<{
2232
+ options: {
2233
+ a: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
2234
+ isDecimal: boolean;
2235
+ }[];
2235
2236
  }, {}> | Exercise<{
2236
2237
  x: number;
2237
2238
  y: number;
@@ -2452,11 +2453,6 @@ declare const mathExercises: (Exercise<{
2452
2453
  labels: string[];
2453
2454
  }, {}>)[];
2454
2455
  declare const pcExercises: (Exercise<{
2455
- atomicMass: number;
2456
- atomicNumber: number;
2457
- isAsking: string;
2458
- symbol: string;
2459
- }, {}> | Exercise<{
2460
2456
  numbers: number[];
2461
2457
  }, {}> | Exercise<{
2462
2458
  randQuation: number;
@@ -2611,6 +2607,11 @@ declare const pcExercises: (Exercise<{
2611
2607
  randomMaterial1: number;
2612
2608
  randomMaterial2: number;
2613
2609
  ramdonAngleIncidenceDeg: number;
2610
+ }, {}> | Exercise<{
2611
+ atomicMass: number;
2612
+ atomicNumber: number;
2613
+ isAsking: string;
2614
+ symbol: string;
2614
2615
  }, {}> | Exercise<{
2615
2616
  isAsking: string;
2616
2617
  enetringLightX: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAE3D,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA+B,CAAC;AACnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA6B,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAE3D,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA+B,CAAC;AACnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA6B,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "math-exercises",
3
3
  "type": "module",
4
- "version": "3.0.94",
4
+ "version": "3.0.96",
5
5
  "description": "Math exercises generator for middle school and high school",
6
6
  "main": "lib/index.js",
7
7
  "files": [