math-exercises 2.2.70 → 2.2.72

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 (106) hide show
  1. package/lib/exercises/math/calcul/fractions/fractionsOperations.d.ts.map +1 -1
  2. package/lib/exercises/math/calcul/fractions/fractionsOperations.js +6 -2
  3. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivitySubstract.d.ts +12 -0
  4. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivitySubstract.d.ts.map +1 -0
  5. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivitySubstract.js +128 -0
  6. package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.d.ts +10 -0
  7. package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.d.ts.map +1 -0
  8. package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.js +138 -0
  9. package/lib/exercises/math/calculLitteral/distributivity/index.d.ts +2 -0
  10. package/lib/exercises/math/calculLitteral/distributivity/index.d.ts.map +1 -1
  11. package/lib/exercises/math/calculLitteral/distributivity/index.js +2 -0
  12. package/lib/exercises/math/geometry/angles/index.d.ts +2 -0
  13. package/lib/exercises/math/geometry/angles/index.d.ts.map +1 -0
  14. package/lib/exercises/math/geometry/angles/index.js +17 -0
  15. package/lib/exercises/math/geometry/angles/recognizeAngleType.d.ts +11 -0
  16. package/lib/exercises/math/geometry/angles/recognizeAngleType.d.ts.map +1 -0
  17. package/lib/exercises/math/geometry/angles/recognizeAngleType.js +272 -0
  18. package/lib/exercises/math/geometry/euclidianConstructions/pointImageFromTranslation.js +1 -1
  19. package/lib/exercises/math/geometry/index.d.ts +1 -0
  20. package/lib/exercises/math/geometry/index.d.ts.map +1 -1
  21. package/lib/exercises/math/geometry/index.js +1 -0
  22. package/lib/exercises/math/geometry/volumes/parallelepipedVolume.d.ts.map +1 -1
  23. package/lib/exercises/math/geometry/volumes/parallelepipedVolume.js +0 -1
  24. package/lib/exercises/math/probaStat/stats1var/index.d.ts +6 -0
  25. package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
  26. package/lib/exercises/math/probaStat/stats1var/index.js +6 -0
  27. package/lib/exercises/math/probaStat/stats1var/interquartilesList.d.ts +7 -0
  28. package/lib/exercises/math/probaStat/stats1var/interquartilesList.d.ts.map +1 -0
  29. package/lib/exercises/math/probaStat/stats1var/interquartilesList.js +93 -0
  30. package/lib/exercises/math/probaStat/stats1var/interquartilesTable.d.ts +8 -0
  31. package/lib/exercises/math/probaStat/stats1var/interquartilesTable.d.ts.map +1 -0
  32. package/lib/exercises/math/probaStat/stats1var/interquartilesTable.js +98 -0
  33. package/lib/exercises/math/probaStat/stats1var/quartilesList.js +1 -1
  34. package/lib/exercises/math/probaStat/stats1var/standardDeviationList.d.ts +7 -0
  35. package/lib/exercises/math/probaStat/stats1var/standardDeviationList.d.ts.map +1 -0
  36. package/lib/exercises/math/probaStat/stats1var/standardDeviationList.js +131 -0
  37. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.d.ts +8 -0
  38. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.d.ts.map +1 -0
  39. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.js +144 -0
  40. package/lib/exercises/math/probaStat/stats1var/varianceList.d.ts +7 -0
  41. package/lib/exercises/math/probaStat/stats1var/varianceList.d.ts.map +1 -0
  42. package/lib/exercises/math/probaStat/stats1var/varianceList.js +121 -0
  43. package/lib/exercises/math/probaStat/stats1var/varianceTable.d.ts +8 -0
  44. package/lib/exercises/math/probaStat/stats1var/varianceTable.d.ts.map +1 -0
  45. package/lib/exercises/math/probaStat/stats1var/varianceTable.js +133 -0
  46. package/lib/exercises/vea/sqrtVEA.d.ts +2 -1
  47. package/lib/exercises/vea/sqrtVEA.d.ts.map +1 -1
  48. package/lib/exercises/vea/sqrtVEA.js +6 -3
  49. package/lib/index.d.ts +30 -0
  50. package/lib/index.d.ts.map +1 -1
  51. package/lib/math/geometry/angle.d.ts +22 -1
  52. package/lib/math/geometry/angle.d.ts.map +1 -1
  53. package/lib/math/geometry/angle.js +138 -1
  54. package/lib/math/geometry/line.d.ts +2 -0
  55. package/lib/math/geometry/line.d.ts.map +1 -1
  56. package/lib/math/geometry/line.js +16 -0
  57. package/lib/math/geometry/point.d.ts +1 -0
  58. package/lib/math/geometry/point.d.ts.map +1 -1
  59. package/lib/math/geometry/point.js +4 -0
  60. package/lib/math/geometry/vector.d.ts +3 -0
  61. package/lib/math/geometry/vector.d.ts.map +1 -1
  62. package/lib/math/geometry/vector.js +9 -0
  63. package/lib/math/polynomials/generalAffine.d.ts +3 -0
  64. package/lib/math/polynomials/generalAffine.d.ts.map +1 -1
  65. package/lib/math/polynomials/generalAffine.js +4 -0
  66. package/lib/math/utils/quartiles.d.ts +3 -0
  67. package/lib/math/utils/quartiles.d.ts.map +1 -0
  68. package/lib/math/utils/quartiles.js +47 -0
  69. package/lib/math/utils/standardDeviation.d.ts +3 -0
  70. package/lib/math/utils/standardDeviation.d.ts.map +1 -0
  71. package/lib/math/utils/standardDeviation.js +13 -0
  72. package/lib/math/utils/variance.d.ts +1 -0
  73. package/lib/math/utils/variance.d.ts.map +1 -1
  74. package/lib/math/utils/variance.js +9 -1
  75. package/lib/playground.d.ts.map +1 -1
  76. package/lib/tree/nodes/node.d.ts +4 -2
  77. package/lib/tree/nodes/node.d.ts.map +1 -1
  78. package/lib/tree/nodes/node.js +2 -0
  79. package/lib/tree/nodes/nodeConstructor.d.ts.map +1 -1
  80. package/lib/tree/nodes/nodeConstructor.js +4 -0
  81. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  82. package/lib/tree/nodes/operators/addNode.js +123 -90
  83. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  84. package/lib/tree/nodes/operators/multiplyNode.js +8 -0
  85. package/lib/tree/nodes/polynomials/monomNode.d.ts +47 -0
  86. package/lib/tree/nodes/polynomials/monomNode.d.ts.map +1 -0
  87. package/lib/tree/nodes/polynomials/monomNode.js +216 -0
  88. package/lib/tree/parsers/affineParser.js +1 -1
  89. package/lib/tree/parsers/monomParser.d.ts +2 -2
  90. package/lib/tree/parsers/monomParser.d.ts.map +1 -1
  91. package/lib/tree/parsers/monomParser.js +84 -6
  92. package/lib/tree/parsers/polynomialParser.d.ts +3 -0
  93. package/lib/tree/parsers/polynomialParser.d.ts.map +1 -0
  94. package/lib/tree/parsers/polynomialParser.js +50 -0
  95. package/lib/tree/parsers/powerParser.d.ts +1 -1
  96. package/lib/tree/parsers/trinomParser.js +1 -1
  97. package/lib/utils/average.d.ts +1 -0
  98. package/lib/utils/average.d.ts.map +1 -1
  99. package/lib/utils/average.js +9 -1
  100. package/lib/utils/latex/approxOrEqual.d.ts +2 -0
  101. package/lib/utils/latex/approxOrEqual.d.ts.map +1 -0
  102. package/lib/utils/latex/approxOrEqual.js +11 -0
  103. package/lib/utils/variance.d.ts +2 -0
  104. package/lib/utils/variance.d.ts.map +1 -0
  105. package/lib/utils/variance.js +12 -0
  106. package/package.json +1 -1
@@ -23,7 +23,7 @@ const getEndPoint = (identifiers) => {
23
23
  ];
24
24
  const vector = vector_1.VectorConstructor.fromPoints(translationPoints[0], translationPoints[1]);
25
25
  const startPoint = point_1.PointConstructor.fromIdentifiers(identifiers.points.find((p) => p.name === identifiers.startPoint));
26
- const end = vector.getEndPoint(startPoint, "M");
26
+ const end = vector.getEndPoint(startPoint, identifiers.startPoint + "'");
27
27
  return end;
28
28
  };
29
29
  // const getHint: GetHint<Identifiers> = (identifiers) => {};
@@ -10,4 +10,5 @@ export * from "./euclidianConstructions";
10
10
  export * from "./shapes";
11
11
  export * from "./parametric";
12
12
  export * from "./quadrilaterals";
13
+ export * from "./angles";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAE1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AAEzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAE1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AAEzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC"}
@@ -28,3 +28,4 @@ __exportStar(require("./shapes"), exports);
28
28
  // export * from "./euclidian";
29
29
  __exportStar(require("./parametric"), exports);
30
30
  __exportStar(require("./quadrilaterals"), exports);
31
+ __exportStar(require("./angles"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"parallelepipedVolume.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/parallelepipedVolume.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAOlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAoIF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CActD,CAAC"}
1
+ {"version":3,"file":"parallelepipedVolume.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/parallelepipedVolume.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAST,MAAM,0BAA0B,CAAC;AAOlC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAmIF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CActD,CAAC"}
@@ -102,7 +102,6 @@ const getPropositions = (n, { answer, length, width, height }) => {
102
102
  const wrongLength = length + (0, randint_1.randint)(1, 5);
103
103
  const wrongWidth = width + (0, randint_1.randint)(1, 5);
104
104
  const wrongHeight = height + (0, randint_1.randint)(1, 5);
105
- console.log(wrongLength, wrongWidth, wrongHeight);
106
105
  const wrongVolume = (0, round_1.round)(wrongLength * wrongWidth * wrongHeight, 2)
107
106
  .toTree()
108
107
  .toTex();
@@ -6,4 +6,10 @@ export * from "./quartiles";
6
6
  export * from "./quartilesList";
7
7
  export * from "./averageList";
8
8
  export * from "./etendueList";
9
+ export * from "./varianceList";
10
+ export * from "./varianceTable";
11
+ export * from "./standardDeviationList";
12
+ export * from "./standardDeviationTable";
13
+ export * from "./interquartilesList";
14
+ export * from "./interquartilesTable";
9
15
  //# 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,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -22,3 +22,9 @@ __exportStar(require("./quartiles"), exports);
22
22
  __exportStar(require("./quartilesList"), exports);
23
23
  __exportStar(require("./averageList"), exports);
24
24
  __exportStar(require("./etendueList"), exports);
25
+ __exportStar(require("./varianceList"), exports);
26
+ __exportStar(require("./varianceTable"), exports);
27
+ __exportStar(require("./standardDeviationList"), exports);
28
+ __exportStar(require("./standardDeviationTable"), exports);
29
+ __exportStar(require("./interquartilesList"), exports);
30
+ __exportStar(require("./interquartilesTable"), exports);
@@ -0,0 +1,7 @@
1
+ import { Exercise } from "../../../../exercises/exercise";
2
+ type Identifiers = {
3
+ sortedValues: number[];
4
+ };
5
+ export declare const interquartilesList: Exercise<Identifiers>;
6
+ export {};
7
+ //# sourceMappingURL=interquartilesList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interquartilesList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/interquartilesList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAOlC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAoFF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAiBpD,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.interquartilesList = void 0;
4
+ const exercise_1 = require("../../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
+ const numberVEA_1 = require("../../../../exercises/vea/numberVEA");
7
+ const quartiles_1 = require("../../../../math/utils/quartiles");
8
+ const randint_1 = require("../../../../math/utils/random/randint");
9
+ const approxOrEqual_1 = require("../../../../utils/latex/approxOrEqual");
10
+ const getPropositions = (n, { answer }) => {
11
+ const propositions = [];
12
+ (0, exercise_1.addValidProp)(propositions, answer);
13
+ while (propositions.length < n) {
14
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randint_1.randint)(1, 10).frenchify());
15
+ }
16
+ return (0, exercise_1.shuffleProps)(propositions, n);
17
+ };
18
+ const getAnswer = (identifiers) => {
19
+ const first = (0, quartiles_1.firstQuartile)(identifiers.sortedValues);
20
+ const thrid = (0, quartiles_1.thirdQuartile)(identifiers.sortedValues);
21
+ return (thrid - first).frenchify();
22
+ };
23
+ const getInstruction = (identifiers) => {
24
+ return `Calculer l'écart interquartiles de la série statistique suivante :
25
+
26
+ $$
27
+ ${identifiers.sortedValues.map((e) => e.frenchify()).join("\\ ; \\ ")}
28
+ $$
29
+ `;
30
+ };
31
+ const getHint = (identifiers) => {
32
+ return `L'écart interquartiles est la différence entre le troisième quartile et le premier quartile, c'est à dire $Q_3-Q_1$.`;
33
+ };
34
+ const getCorrection = (identifiers) => {
35
+ const first = (0, quartiles_1.firstQuartile)(identifiers.sortedValues);
36
+ const thrid = (0, quartiles_1.thirdQuartile)(identifiers.sortedValues);
37
+ const n = identifiers.sortedValues.length;
38
+ return `Il y a $${n}$ valeurs dans cette liste.
39
+
40
+ Puisque $0,25 \\times ${n} ${(0, approxOrEqual_1.approxOrEqual)(0.25 * n, 2).join("")}$, le premier quartile est la valeur de rang $${Math.ceil(n / 4)}$. On a donc $Q_1 = ${first}$.
41
+
42
+ Puisque $0,75 \\times ${n} ${(0, approxOrEqual_1.approxOrEqual)(0.75 * n, 2).join("")}$, le troisième quartile est la valeur de rang $${Math.ceil((3 * n) / 4)}$. On a donc $Q_3 = ${thrid}$.
43
+
44
+
45
+ L'écart interquartile est donc égal à :
46
+
47
+ $$
48
+ Q_3-Q_1 = ${thrid}-${first} = ${thrid - first}
49
+ $$`;
50
+ };
51
+ const getKeys = (identifiers) => {
52
+ return [];
53
+ };
54
+ const isAnswerValid = (ans, { answer }) => {
55
+ return (0, numberVEA_1.numberVEA)(ans, answer);
56
+ };
57
+ const getInterquartilesListQuestion = (ops) => {
58
+ const nbValues = (0, randint_1.randint)(4, 7);
59
+ const values = [];
60
+ for (let i = 0; i < nbValues; i++) {
61
+ values.push((0, randint_1.randint)(1, 15));
62
+ }
63
+ const identifiers = {
64
+ sortedValues: values.sort((a, b) => a - b),
65
+ };
66
+ const question = {
67
+ answer: getAnswer(identifiers),
68
+ instruction: getInstruction(identifiers),
69
+ keys: getKeys(identifiers),
70
+ answerFormat: "tex",
71
+ identifiers,
72
+ hint: getHint(identifiers),
73
+ correction: getCorrection(identifiers),
74
+ };
75
+ return question;
76
+ };
77
+ exports.interquartilesList = {
78
+ id: "interquartilesList",
79
+ connector: "=",
80
+ label: "Calcul de l'écart interquartiles d'une liste de valeurs",
81
+ isSingleStep: true,
82
+ generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getInterquartilesListQuestion(opts), nb),
83
+ qcmTimer: 60,
84
+ freeTimer: 60,
85
+ getPropositions,
86
+ isAnswerValid,
87
+ subject: "Mathématiques",
88
+ getInstruction,
89
+ getHint,
90
+ getCorrection,
91
+ getAnswer,
92
+ hasHintAndCorrection: true,
93
+ };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise";
2
+ type Identifiers = {
3
+ sortedValues: number[];
4
+ effectifs: number[];
5
+ };
6
+ export declare const interquartilesTable: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=interquartilesTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interquartilesTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/interquartilesTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAQlC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AA0FF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAkBrD,CAAC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.interquartilesTable = void 0;
4
+ const exercise_1 = require("../../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
+ const numberVEA_1 = require("../../../../exercises/vea/numberVEA");
7
+ const quartiles_1 = require("../../../../math/utils/quartiles");
8
+ const randint_1 = require("../../../../math/utils/random/randint");
9
+ const approxOrEqual_1 = require("../../../../utils/latex/approxOrEqual");
10
+ const mdTable_1 = require("../../../../utils/markdown/mdTable");
11
+ const getPropositions = (n, { answer }) => {
12
+ const propositions = [];
13
+ (0, exercise_1.addValidProp)(propositions, answer);
14
+ while (propositions.length < n) {
15
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randint_1.randint)(1, 10).frenchify());
16
+ }
17
+ return (0, exercise_1.shuffleProps)(propositions, n);
18
+ };
19
+ const getAnswer = (identifiers) => {
20
+ const first = (0, quartiles_1.firstQuartile)(identifiers.sortedValues, identifiers.effectifs);
21
+ const thrid = (0, quartiles_1.thirdQuartile)(identifiers.sortedValues, identifiers.effectifs);
22
+ return (thrid - first).frenchify();
23
+ };
24
+ const getInstruction = (identifiers) => {
25
+ return `Calculer l'écart interquartiles de la série statistique suivante :
26
+
27
+ ${(0, mdTable_1.mdTable)([
28
+ ["$x_i$", ...identifiers.sortedValues.map((e) => `$${e.frenchify()}$`)],
29
+ ["$n_i$", ...identifiers.effectifs.map((e) => `$${e.frenchify()}$`)],
30
+ ])}
31
+ `;
32
+ };
33
+ const getHint = (identifiers) => {
34
+ return `L'écart interquartiles est la différence entre le troisième quartile et le premier quartile, c'est à dire $Q_3-Q_1$.`;
35
+ };
36
+ const getCorrection = (identifiers) => {
37
+ const first = (0, quartiles_1.firstQuartile)(identifiers.sortedValues, identifiers.effectifs);
38
+ const thrid = (0, quartiles_1.thirdQuartile)(identifiers.sortedValues, identifiers.effectifs);
39
+ const n = identifiers.effectifs.reduce((acc, curr) => acc + curr, 0);
40
+ return `Il y a $${n}$ valeurs dans cette liste.
41
+
42
+ Puisque $0,25 \\times ${n} ${(0, approxOrEqual_1.approxOrEqual)(0.25 * n, 2).join("")}$, le premier quartile est la valeur de rang $${Math.ceil(n / 4)}$. On a donc $Q_1 = ${first}$.
43
+
44
+ Puisque $0,75 \\times ${n} ${(0, approxOrEqual_1.approxOrEqual)(0.75 * n, 2).join("")}$, le troisième quartile est la valeur de rang $${Math.ceil((3 * n) / 4)}$. On a donc $Q_3 = ${thrid}$.
45
+
46
+
47
+ L'écart interquartile est donc égal à :
48
+
49
+ $$
50
+ Q_3-Q_1 = ${thrid}-${first} = ${thrid - first}
51
+ $$`;
52
+ };
53
+ const getKeys = (identifiers) => {
54
+ return [];
55
+ };
56
+ const isAnswerValid = (ans, { answer }) => {
57
+ return (0, numberVEA_1.numberVEA)(ans, answer);
58
+ };
59
+ const getInterquartilesTableQuestion = (ops) => {
60
+ const nbValues = (0, randint_1.randint)(4, 7);
61
+ const values = [];
62
+ const effectifs = [];
63
+ for (let i = 0; i < nbValues; i++) {
64
+ values.push((0, randint_1.randint)(1, 15, values));
65
+ effectifs.push((0, randint_1.randint)(1, 7));
66
+ }
67
+ const identifiers = {
68
+ sortedValues: values.sort((a, b) => a - b),
69
+ effectifs,
70
+ };
71
+ const question = {
72
+ answer: getAnswer(identifiers),
73
+ instruction: getInstruction(identifiers),
74
+ keys: getKeys(identifiers),
75
+ answerFormat: "tex",
76
+ identifiers,
77
+ hint: getHint(identifiers),
78
+ correction: getCorrection(identifiers),
79
+ };
80
+ return question;
81
+ };
82
+ exports.interquartilesTable = {
83
+ id: "interquartilesTable",
84
+ connector: "=",
85
+ label: "Calcul de l'écart interquartiles d'un tableau d'effectifs",
86
+ isSingleStep: true,
87
+ generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getInterquartilesTableQuestion(opts), nb),
88
+ qcmTimer: 60,
89
+ freeTimer: 60,
90
+ getPropositions,
91
+ isAnswerValid,
92
+ subject: "Mathématiques",
93
+ getInstruction,
94
+ getHint,
95
+ getCorrection,
96
+ hasHintAndCorrection: true,
97
+ getAnswer,
98
+ };
@@ -62,7 +62,7 @@ const isAnswerValid = (ans, { answer }) => {
62
62
  exports.quartilesList = {
63
63
  id: "quartilesList",
64
64
  connector: "=",
65
- label: "Calcul des quartiles d'une liste",
65
+ label: "Calcul des quartiles d'une liste de valeurs",
66
66
  levels: ["3ème", "2nde", "CAP", "2ndPro", "1rePro", "1reTech"],
67
67
  isSingleStep: false,
68
68
  sections: ["Statistiques"],
@@ -0,0 +1,7 @@
1
+ import { Exercise } from "../../../../exercises/exercise";
2
+ type Identifiers = {
3
+ sortedValues: number[];
4
+ };
5
+ export declare const standardDeviationList: Exercise<Identifiers>;
6
+ export {};
7
+ //# sourceMappingURL=standardDeviationList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standardDeviationList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/standardDeviationList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAwHF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,WAAW,CAiBvD,CAAC"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.standardDeviationList = void 0;
4
+ const exercise_1 = require("../../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
+ const sqrtVEA_1 = require("../../../../exercises/vea/sqrtVEA");
7
+ const randfloat_1 = require("../../../../math/utils/random/randfloat");
8
+ const randint_1 = require("../../../../math/utils/random/randint");
9
+ const round_1 = require("../../../../math/utils/round");
10
+ const standardDeviation_1 = require("../../../../math/utils/standardDeviation");
11
+ const variance_1 = require("../../../../math/utils/variance");
12
+ const average_1 = require("../../../../utils/average");
13
+ const alignTex_1 = require("../../../../utils/latex/alignTex");
14
+ const approxOrEqual_1 = require("../../../../utils/latex/approxOrEqual");
15
+ const getPropositions = (n, { answer, sortedValues }) => {
16
+ const propositions = [];
17
+ (0, exercise_1.addValidProp)(propositions, answer);
18
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)((0, variance_1.variance)(sortedValues, (0, average_1.average)(sortedValues)), 2).frenchify());
19
+ while (propositions.length < n) {
20
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randfloat_1.randfloat)(0, 5, 2).frenchify());
21
+ }
22
+ return (0, exercise_1.shuffleProps)(propositions, n);
23
+ };
24
+ const getAnswer = (identifiers) => {
25
+ const sigma = (0, standardDeviation_1.standardDeviation)(identifiers.sortedValues);
26
+ return (0, round_1.round)(sigma, 2).frenchify();
27
+ };
28
+ const getInstruction = (identifiers) => {
29
+ return `Calculer l'écart-type de la série statistique suivante :
30
+
31
+ $$
32
+ ${identifiers.sortedValues.map((e) => e.frenchify()).join("\\ ; \\ ")}
33
+ $$
34
+
35
+ Arrondir au centième.`;
36
+ };
37
+ const getHint = (identifiers) => {
38
+ return `Si on note $N$ le nombre de valeurs, $\\overline x$ la moyenne de cette liste, et $x_1$, $x_2$, $\\ldots$, $x_N$ les valeurs de la liste, alors la variance est :
39
+
40
+ $$
41
+ V = \\frac{(x_1-\\overline{x})^2 + (x_2-\\overline{x})^2 + \\ldots + (x_N-\\overline{x})^2}{N}
42
+ $$
43
+
44
+ Puis, l'écart-type est la racine carrée de la variance.`;
45
+ };
46
+ const getCorrection = (identifiers) => {
47
+ const n = identifiers.sortedValues.length;
48
+ const avg = (0, average_1.average)(identifiers.sortedValues);
49
+ const roundedAvg = (0, round_1.round)(avg, 2);
50
+ const vce = (0, variance_1.variance)(identifiers.sortedValues, (0, average_1.average)(identifiers.sortedValues));
51
+ const sigma = Math.sqrt(vce);
52
+ return `La moyenne $\\overline{x}$ de cette série vaut :
53
+
54
+ ${(0, alignTex_1.alignTex)([
55
+ [
56
+ `\\overline{x}`,
57
+ "=",
58
+ `\\frac{${identifiers.sortedValues
59
+ .map((e) => e.frenchify())
60
+ .join("+")}}{${n}}`,
61
+ ],
62
+ ["", ...(0, approxOrEqual_1.approxOrEqual)(avg, 2)],
63
+ ])}
64
+
65
+ La variance est donc :
66
+
67
+ ${(0, alignTex_1.alignTex)([
68
+ [
69
+ "V",
70
+ "=",
71
+ `\\frac{(x_1-\\overline{x})^2 + (x_2-\\overline{x})^2 + \\ldots + (x_n-\\overline{x})^2}{N}`,
72
+ ],
73
+ [
74
+ "",
75
+ "=",
76
+ `\\frac{${identifiers.sortedValues
77
+ .map((e) => `(${e.frenchify()} - ${roundedAvg.frenchify()})^2`)
78
+ .join("+")}}{${n}}`,
79
+ ],
80
+ ["", ...(0, approxOrEqual_1.approxOrEqual)(vce, 2)],
81
+ ])}
82
+
83
+ L'écart-type est donc :
84
+
85
+ $$
86
+ \\sigma = \\sqrt{V} ${(0, approxOrEqual_1.approxOrEqual)(sigma, 2).join("")}
87
+ $$`;
88
+ };
89
+ const getKeys = (identifiers) => {
90
+ return [];
91
+ };
92
+ const isAnswerValid = (ans, { answer }) => {
93
+ return (0, sqrtVEA_1.sqrtVEA)(ans, answer, { decimalApproxAllowed: 0.01 });
94
+ };
95
+ const getStandardDeviationListQuestion = (ops) => {
96
+ const nbValues = (0, randint_1.randint)(4, 7);
97
+ const values = [];
98
+ for (let i = 0; i < nbValues; i++) {
99
+ values.push((0, randint_1.randint)(1, 15));
100
+ }
101
+ const identifiers = {
102
+ sortedValues: values.sort((a, b) => a - b),
103
+ };
104
+ const question = {
105
+ answer: getAnswer(identifiers),
106
+ instruction: getInstruction(identifiers),
107
+ keys: getKeys(identifiers),
108
+ answerFormat: "tex",
109
+ identifiers,
110
+ hint: getHint(identifiers),
111
+ correction: getCorrection(identifiers),
112
+ };
113
+ return question;
114
+ };
115
+ exports.standardDeviationList = {
116
+ id: "standardDeviationList",
117
+ connector: "=",
118
+ label: "Calcul de l'écart-type d'une liste de valeurs",
119
+ isSingleStep: true,
120
+ generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getStandardDeviationListQuestion(opts), nb),
121
+ qcmTimer: 60,
122
+ freeTimer: 60,
123
+ getPropositions,
124
+ isAnswerValid,
125
+ subject: "Mathématiques",
126
+ getInstruction,
127
+ getHint,
128
+ getCorrection,
129
+ getAnswer,
130
+ hasHintAndCorrection: true,
131
+ };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise";
2
+ type Identifiers = {
3
+ sortedValues: number[];
4
+ effectifs: number[];
5
+ };
6
+ export declare const standardDeviationTable: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=standardDeviationTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standardDeviationTable.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/standardDeviationTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAclC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AA0IF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAiBxD,CAAC"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.standardDeviationTable = void 0;
4
+ const exercise_1 = require("../../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../../exercises/utils/getDistinctQuestions");
6
+ const sqrtVEA_1 = require("../../../../exercises/vea/sqrtVEA");
7
+ const randfloat_1 = require("../../../../math/utils/random/randfloat");
8
+ const randint_1 = require("../../../../math/utils/random/randint");
9
+ const round_1 = require("../../../../math/utils/round");
10
+ const standardDeviation_1 = require("../../../../math/utils/standardDeviation");
11
+ const variance_1 = require("../../../../math/utils/variance");
12
+ const average_1 = require("../../../../utils/average");
13
+ const alignTex_1 = require("../../../../utils/latex/alignTex");
14
+ const approxOrEqual_1 = require("../../../../utils/latex/approxOrEqual");
15
+ const mdTable_1 = require("../../../../utils/markdown/mdTable");
16
+ const getPropositions = (n, { answer, sortedValues, effectifs }) => {
17
+ const propositions = [];
18
+ (0, exercise_1.addValidProp)(propositions, answer);
19
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, round_1.round)((0, variance_1.varianceWithEffectifs)(sortedValues, effectifs), 2).frenchify());
20
+ while (propositions.length < n) {
21
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randfloat_1.randfloat)(0, 5, 2).frenchify());
22
+ }
23
+ return (0, exercise_1.shuffleProps)(propositions, n);
24
+ };
25
+ const getAnswer = (identifiers) => {
26
+ const sigma = (0, standardDeviation_1.standardDeviationWithEffectifs)(identifiers.sortedValues, identifiers.effectifs);
27
+ return (0, round_1.round)(sigma, 2).frenchify();
28
+ };
29
+ const getInstruction = (identifiers) => {
30
+ return `Calculer l'écart-type de la série statistique suivante :
31
+
32
+ ${(0, mdTable_1.mdTable)([
33
+ ["$x_i$", ...identifiers.sortedValues.map((e) => `$${e.frenchify()}$`)],
34
+ ["$n_i$", ...identifiers.effectifs.map((e) => `$${e.frenchify()}$`)],
35
+ ])}
36
+
37
+ Arrondir au centième.`;
38
+ };
39
+ const getHint = (identifiers) => {
40
+ return `On note :
41
+
42
+ - $N$ le nombre de valeurs de la liste,
43
+ - $\\overline x$ la moyenne de la liste,
44
+ - $x_1$, $x_2$, $\\ldots$, $x_N$ les valeurs de la liste,
45
+ - $n_1$, $n_2$, $\\ldots$, $n_N$ les effectifs de la liste.
46
+
47
+ Alors la variance est égale à :
48
+
49
+ $$
50
+ V = \\frac{n_1(x_1-\\overline{x})^2 + \\ldots + n_N(x_N-\\overline{x})^2}{N}
51
+ $$
52
+
53
+ Puis, l'écart-type est la racine carrée de la variance.`;
54
+ };
55
+ const getCorrection = (identifiers) => {
56
+ const { sortedValues, effectifs } = identifiers;
57
+ const n = effectifs.reduce((acc, curr) => acc + curr, 0);
58
+ const avg = (0, average_1.averageWithEffectifs)(sortedValues, effectifs);
59
+ const roundedAvg = (0, round_1.round)(avg, 2);
60
+ const vce = (0, variance_1.varianceWithEffectifs)(sortedValues, effectifs);
61
+ const sigma = Math.sqrt(vce);
62
+ return `La moyenne $\\overline{x}$ de cette série vaut :
63
+
64
+ ${(0, alignTex_1.alignTex)([
65
+ [
66
+ `\\overline{x}`,
67
+ "=",
68
+ `\\frac{${sortedValues
69
+ .map((e, i) => `${effectifs[i].frenchify()}\\times ${e.frenchify()}`)
70
+ .join("+")}}{${n}}`,
71
+ ],
72
+ ["", ...(0, approxOrEqual_1.approxOrEqual)(avg, 2)],
73
+ ])}
74
+
75
+ La variance est donc :
76
+
77
+ ${(0, alignTex_1.alignTex)([
78
+ [
79
+ "V",
80
+ "=",
81
+ `\\frac{n_1(x_1-\\overline{x})^2 + \\ldots + n_N(x_N-\\overline{x})^2}{N}`,
82
+ ],
83
+ [
84
+ "",
85
+ "=",
86
+ `\\frac{${sortedValues
87
+ .map((e, i) => `${effectifs[i].frenchify()}\\times(${e.frenchify()} - ${roundedAvg.frenchify()})^2`)
88
+ .join("+")}}{${n}}`,
89
+ ],
90
+ ["", ...(0, approxOrEqual_1.approxOrEqual)(vce, 2)],
91
+ ])}
92
+
93
+ L'écart-type vaut alors :
94
+
95
+ $$
96
+ \\sigma = \\sqrt{V} ${(0, approxOrEqual_1.approxOrEqual)(sigma, 2).join("")}
97
+ $$`;
98
+ };
99
+ const getKeys = (identifiers) => {
100
+ return [];
101
+ };
102
+ const isAnswerValid = (ans, { answer }) => {
103
+ return (0, sqrtVEA_1.sqrtVEA)(ans, answer, { decimalApproxAllowed: 0.01 });
104
+ };
105
+ const getStandardDeviationTableQuestion = (ops) => {
106
+ const nbValues = (0, randint_1.randint)(4, 7);
107
+ const values = [];
108
+ const effectifs = [];
109
+ for (let i = 0; i < nbValues; i++) {
110
+ values.push((0, randint_1.randint)(1, 15, values));
111
+ effectifs.push((0, randint_1.randint)(1, 7));
112
+ }
113
+ const identifiers = {
114
+ sortedValues: values.sort((a, b) => a - b),
115
+ effectifs,
116
+ };
117
+ const question = {
118
+ answer: getAnswer(identifiers),
119
+ instruction: getInstruction(identifiers),
120
+ keys: getKeys(identifiers),
121
+ answerFormat: "tex",
122
+ identifiers,
123
+ hint: getHint(identifiers),
124
+ correction: getCorrection(identifiers),
125
+ };
126
+ return question;
127
+ };
128
+ exports.standardDeviationTable = {
129
+ id: "standardDeviationTable",
130
+ connector: "=",
131
+ label: "Calculer l'écart-type d'un tableau d'effectifs",
132
+ isSingleStep: true,
133
+ generator: (nb, opts) => (0, getDistinctQuestions_1.getDistinctQuestions)(() => getStandardDeviationTableQuestion(opts), nb),
134
+ qcmTimer: 60,
135
+ freeTimer: 60,
136
+ getPropositions,
137
+ isAnswerValid,
138
+ subject: "Mathématiques",
139
+ getInstruction,
140
+ getHint,
141
+ getCorrection,
142
+ getAnswer,
143
+ hasHintAndCorrection: true,
144
+ };
@@ -0,0 +1,7 @@
1
+ import { Exercise } from "../../../../exercises/exercise";
2
+ type Identifiers = {
3
+ sortedValues: number[];
4
+ };
5
+ export declare const varianceList: Exercise<Identifiers>;
6
+ export {};
7
+ //# sourceMappingURL=varianceList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"varianceList.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats1var/varianceList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,0BAA0B,CAAC;AAWlC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AA6GF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAiB9C,CAAC"}