math-exercises 3.0.83 → 3.0.84

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 (79) hide show
  1. package/lib/exercises/exercise.d.ts +7 -0
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/arithmetics/evalFractionExpression.d.ts +9 -0
  4. package/lib/exercises/math/calcul/arithmetics/evalFractionExpression.d.ts.map +1 -0
  5. package/lib/exercises/math/calcul/arithmetics/evalFractionExpression.js +113 -0
  6. package/lib/exercises/math/calcul/arithmetics/index.d.ts +1 -0
  7. package/lib/exercises/math/calcul/arithmetics/index.d.ts.map +1 -1
  8. package/lib/exercises/math/calcul/arithmetics/index.js +1 -0
  9. package/lib/exercises/math/calcul/ordering/framing.d.ts.map +1 -1
  10. package/lib/exercises/math/calcul/ordering/framing.js +10 -3
  11. package/lib/exercises/math/functions/basics/index.d.ts +1 -0
  12. package/lib/exercises/math/functions/basics/index.d.ts.map +1 -1
  13. package/lib/exercises/math/functions/basics/index.js +1 -1
  14. package/lib/exercises/math/functions/basics/valueTableCompletion.d.ts +2 -1
  15. package/lib/exercises/math/functions/basics/valueTableCompletion.d.ts.map +1 -1
  16. package/lib/exercises/math/functions/basics/valueTableCompletion.js +104 -31
  17. package/lib/exercises/math/probaStat/basicProbas/ballsBasicProbas.d.ts +8 -0
  18. package/lib/exercises/math/probaStat/basicProbas/ballsBasicProbas.d.ts.map +1 -0
  19. package/lib/exercises/math/probaStat/basicProbas/ballsBasicProbas.js +96 -0
  20. package/lib/exercises/math/probaStat/basicProbas/cardBasicProbas.d.ts +10 -0
  21. package/lib/exercises/math/probaStat/basicProbas/cardBasicProbas.d.ts.map +1 -0
  22. package/lib/exercises/math/probaStat/basicProbas/cardBasicProbas.js +153 -0
  23. package/lib/exercises/math/probaStat/basicProbas/diceBasicProbas.d.ts +10 -0
  24. package/lib/exercises/math/probaStat/basicProbas/diceBasicProbas.d.ts.map +1 -0
  25. package/lib/exercises/math/probaStat/basicProbas/diceBasicProbas.js +130 -0
  26. package/lib/exercises/math/probaStat/basicProbas/getComplementaryProbability.d.ts +7 -0
  27. package/lib/exercises/math/probaStat/basicProbas/getComplementaryProbability.d.ts.map +1 -0
  28. package/lib/exercises/math/probaStat/basicProbas/getComplementaryProbability.js +90 -0
  29. package/lib/exercises/math/probaStat/basicProbas/getMissingProbabilityValue.d.ts +9 -0
  30. package/lib/exercises/math/probaStat/basicProbas/getMissingProbabilityValue.d.ts.map +1 -0
  31. package/lib/exercises/math/probaStat/basicProbas/getMissingProbabilityValue.js +109 -0
  32. package/lib/exercises/math/probaStat/basicProbas/index.d.ts +8 -0
  33. package/lib/exercises/math/probaStat/basicProbas/index.d.ts.map +1 -0
  34. package/lib/exercises/math/probaStat/basicProbas/index.js +7 -0
  35. package/lib/exercises/math/probaStat/basicProbas/mostLeastProbable.d.ts +8 -0
  36. package/lib/exercises/math/probaStat/basicProbas/mostLeastProbable.d.ts.map +1 -0
  37. package/lib/exercises/math/probaStat/basicProbas/mostLeastProbable.js +114 -0
  38. package/lib/exercises/math/probaStat/basicProbas/rouletteProbas.d.ts +8 -0
  39. package/lib/exercises/math/probaStat/basicProbas/rouletteProbas.d.ts.map +1 -0
  40. package/lib/exercises/math/probaStat/basicProbas/rouletteProbas.js +139 -0
  41. package/lib/exercises/math/probaStat/events/describeEvent.d.ts +15 -0
  42. package/lib/exercises/math/probaStat/events/describeEvent.d.ts.map +1 -0
  43. package/lib/exercises/math/probaStat/events/describeEvent.js +182 -0
  44. package/lib/exercises/math/probaStat/events/eventNotation.d.ts +15 -0
  45. package/lib/exercises/math/probaStat/events/eventNotation.d.ts.map +1 -0
  46. package/lib/exercises/math/probaStat/events/eventNotation.js +156 -0
  47. package/lib/exercises/math/probaStat/events/index.d.ts +3 -0
  48. package/lib/exercises/math/probaStat/events/index.d.ts.map +1 -0
  49. package/lib/exercises/math/probaStat/events/index.js +2 -0
  50. package/lib/exercises/math/probaStat/index.d.ts +2 -10
  51. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  52. package/lib/exercises/math/probaStat/index.js +2 -10
  53. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
  54. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +35 -52
  55. package/lib/exercises/math/probaStat/stats1var/averageLinearity.d.ts +16 -0
  56. package/lib/exercises/math/probaStat/stats1var/averageLinearity.d.ts.map +1 -0
  57. package/lib/exercises/math/probaStat/stats1var/averageLinearity.js +217 -0
  58. package/lib/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.d.ts +8 -0
  59. package/lib/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.d.ts.map +1 -0
  60. package/lib/exercises/math/probaStat/stats1var/calculateMeanFromFrequencies.js +108 -0
  61. package/lib/exercises/math/probaStat/stats1var/compareSeriesDispersion.d.ts +9 -0
  62. package/lib/exercises/math/probaStat/stats1var/compareSeriesDispersion.d.ts.map +1 -0
  63. package/lib/exercises/math/probaStat/stats1var/compareSeriesDispersion.js +139 -0
  64. package/lib/exercises/math/probaStat/stats1var/cumulativeSum.d.ts +9 -0
  65. package/lib/exercises/math/probaStat/stats1var/cumulativeSum.d.ts.map +1 -0
  66. package/lib/exercises/math/probaStat/stats1var/cumulativeSum.js +105 -0
  67. package/lib/exercises/math/probaStat/stats1var/index.d.ts +4 -0
  68. package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
  69. package/lib/exercises/math/probaStat/stats1var/index.js +4 -0
  70. package/lib/index.d.ts +57 -34
  71. package/lib/index.d.ts.map +1 -1
  72. package/lib/tests/exoTest.d.ts.map +1 -1
  73. package/lib/tests/exoTest.js +9 -2
  74. package/lib/tests/questionTest.d.ts.map +1 -1
  75. package/lib/tests/questionTest.js +21 -2
  76. package/lib/utils/markdown/mdTable.d.ts +1 -1
  77. package/lib/utils/markdown/mdTable.d.ts.map +1 -1
  78. package/lib/utils/markdown/mdTable.js +10 -5
  79. package/package.json +1 -1
@@ -97,6 +97,9 @@ export type QCMGenerator<TIdentifiers, TOptions = {}> = (n: number, args: {
97
97
  export type VEA<TIdentifiers, TOptions = {}> = (studentAnswer: string, args: {
98
98
  answer: string;
99
99
  } & TIdentifiers, options?: TOptions) => boolean;
100
+ export type TableVEA<TIdentifiers, TOptions = {}> = (studentAnswer: string[][], args: {
101
+ answerTable: string[][];
102
+ } & TIdentifiers, options?: TOptions) => boolean;
100
103
  export type GGBVEA<TIdentifiers, TOptions = {}> = (studentAnswer: string[], args: {
101
104
  ggbAnswer: string[];
102
105
  } & TIdentifiers, options?: TOptions) => boolean;
@@ -106,6 +109,7 @@ export type GetCorrection<TIdentifiers, TOptions = {}> = (args: TIdentifiers, op
106
109
  export type GetInstruction<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
107
110
  export type GetStartStatement<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
108
111
  export type GetAnswer<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string;
112
+ export type GetAnswerTable<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string[][];
109
113
  export type GetKeys<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => (KeyId | KeyProps)[];
110
114
  export type GetGGBAnswer<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => string[];
111
115
  export type GetGGBOptions<TIdentifiers, TOptions = {}> = (args: TIdentifiers, options?: TOptions) => GeogebraOptions;
@@ -144,10 +148,12 @@ export interface Exercise<TIdentifiers = {}, TOptions = {}> {
144
148
  qcmTimer?: number;
145
149
  freeTimer?: number;
146
150
  ggbTimer?: number;
151
+ valueTableTimer?: number;
147
152
  getPropositions?: QCMGenerator<{
148
153
  answer: string;
149
154
  } & TIdentifiers, TOptions>;
150
155
  isAnswerValid?: VEA<TIdentifiers, TOptions>;
156
+ isAnswerTableValid?: TableVEA<TIdentifiers, TOptions>;
151
157
  isGGBAnswerValid?: GGBVEA<TIdentifiers, TOptions>;
152
158
  hasGeogebra?: boolean;
153
159
  subject: "Mathématiques" | "Chimie" | "Physique";
@@ -158,6 +164,7 @@ export interface Exercise<TIdentifiers = {}, TOptions = {}> {
158
164
  getCorrection?: GetCorrection<TIdentifiers, TOptions>;
159
165
  getKeys?: GetKeys<TIdentifiers, TOptions>;
160
166
  getAnswer?: GetAnswer<TIdentifiers, TOptions>;
167
+ getAnswerTable?: GetAnswerTable<TIdentifiers, TOptions>;
161
168
  getGGBAnswer?: GetGGBAnswer<TIdentifiers, TOptions>;
162
169
  getGGBOptions?: GetGGBOptions<TIdentifiers, TOptions>;
163
170
  getStudentGGBOptions?: GetStudentGGBOptions<TIdentifiers, TOptions>;
@@ -1 +1 @@
1
- {"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exercise.d.ts","sourceRoot":"","sources":["../../src/exercises/exercise.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ expr: NodeIdentifiers;
5
+ x: number;
6
+ };
7
+ export declare const evalFractionExpression: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=evalFractionExpression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalFractionExpression.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/evalFractionExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqGF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAiBxD,CAAC"}
@@ -0,0 +1,113 @@
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 { AffineConstructor } from "../../../../math/polynomials/affine.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
7
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
8
+ import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
9
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
10
+ import { doWhile } from "../../../../utils/doWhile.js";
11
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
12
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
13
+ const getPropositions = (n, { answer }) => {
14
+ const propositions = [];
15
+ addValidProp(propositions, answer);
16
+ while (propositions.length < n) {
17
+ const a = randint(-10, 11).frenchify();
18
+ const newValue = coinFlip()
19
+ ? RationalConstructor.randomIrreductible().toTree().toTex()
20
+ : a;
21
+ tryToAddWrongProp(propositions, newValue);
22
+ }
23
+ return shuffleProps(propositions, n);
24
+ };
25
+ const getAnswer = (identifiers) => {
26
+ const { expr, x } = identifiers;
27
+ const exprNode = reifyAlgebraic(expr);
28
+ const fractionTex = exprNode
29
+ .toDetailedEvaluation({ x: x.toTree() })
30
+ .simplify()
31
+ .toTex();
32
+ return fractionTex;
33
+ };
34
+ const getInstruction = (identifiers) => {
35
+ const { expr, x } = identifiers;
36
+ const exprTex = reifyAlgebraic(expr).toTex();
37
+ return `On note :
38
+
39
+ $$
40
+ A = ${exprTex}
41
+ $$
42
+
43
+ Calculer, si possible, la valeur de $A$ pour $x = ${x}$.`;
44
+ };
45
+ const getHint = (identifiers) => {
46
+ return `Remplace $x$ par $${identifiers.x}$ dans l'expression, puis simplifie.`;
47
+ };
48
+ const getCorrection = ({ expr, x }) => {
49
+ const exprNode = reifyAlgebraic(expr);
50
+ const replaced = exprNode.toDetailedEvaluation({ x: x.toTree() });
51
+ const simplified = replaced.simplify();
52
+ const exprTex = exprNode.toTex();
53
+ const replacedTex = replaced.toTex();
54
+ const simplifiedTex = simplified.toTex();
55
+ return `On peut bien calculer la valeur de $A$ pour $x = ${x}$, car le dénominateur ne s'annule pas en remplaçant $x$ par $${x}$.
56
+
57
+ On remplace donc $x$ par $${x}$ dans l'expression :
58
+
59
+ ${alignTex([
60
+ [exprTex, "=", replacedTex],
61
+ ["", "=", simplifiedTex],
62
+ ])}
63
+ `;
64
+ };
65
+ const getKeys = (identifiers) => {
66
+ return [];
67
+ };
68
+ const isAnswerValid = (ans, { answer }) => {
69
+ try {
70
+ const ansNode = parseAlgebraic(ans);
71
+ const answerNode = parseAlgebraic(answer);
72
+ return ansNode.simplify().equals(answerNode.simplify());
73
+ }
74
+ catch (err) {
75
+ return handleVEAError(err);
76
+ }
77
+ };
78
+ const getEvalFractionExpressionQuestion = (ops) => {
79
+ const nominator = AffineConstructor.random().toTree();
80
+ const denominator = AffineConstructor.random().toTree();
81
+ const expr = frac(nominator, denominator);
82
+ const x = doWhile(() => randint(-10, 11), (a) => denominator.evaluate({ x: a }) === 0);
83
+ const identifiers = { expr: expr.toIdentifiers(), x };
84
+ return getQuestionFromIdentifiers(identifiers);
85
+ };
86
+ const getQuestionFromIdentifiers = (identifiers) => {
87
+ return {
88
+ answer: getAnswer(identifiers),
89
+ instruction: getInstruction(identifiers),
90
+ keys: getKeys(identifiers),
91
+ answerFormat: "tex",
92
+ identifiers,
93
+ hint: getHint(identifiers),
94
+ correction: getCorrection(identifiers),
95
+ };
96
+ };
97
+ export const evalFractionExpression = {
98
+ id: "evalFractionExpression",
99
+ label: "Calculer une expression fractionnaire pour une valeur de x donnée",
100
+ isSingleStep: true,
101
+ generator: (nb, opts) => getDistinctQuestions(() => getEvalFractionExpressionQuestion(opts), nb),
102
+ qcmTimer: 60,
103
+ freeTimer: 60,
104
+ getPropositions,
105
+ isAnswerValid,
106
+ subject: "Mathématiques",
107
+ getInstruction,
108
+ getHint,
109
+ getCorrection,
110
+ getAnswer,
111
+ getQuestionFromIdentifiers,
112
+ hasHintAndCorrection: true,
113
+ };
@@ -25,4 +25,5 @@ export * from "./calculateWithAbsoluteValue.js";
25
25
  export * from "./sqrtInequality.js";
26
26
  export * from "./calculateDistanceWithAbsoluteValue.js";
27
27
  export * from "./isNumberInInterval.js";
28
+ export * from "./evalFractionExpression.js";
28
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/arithmetics/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
@@ -25,3 +25,4 @@ export * from "./calculateWithAbsoluteValue.js";
25
25
  export * from "./sqrtInequality.js";
26
26
  export * from "./calculateDistanceWithAbsoluteValue.js";
27
27
  export * from "./isNumberInInterval.js";
28
+ export * from "./evalFractionExpression.js";
@@ -1 +1 @@
1
- {"version":3,"file":"framing.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/ordering/framing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAqBrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AA2KF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,WAAW,CAazC,CAAC"}
1
+ {"version":3,"file":"framing.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calcul/ordering/framing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAqBrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAkLF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,WAAW,CAczC,CAAC"}
@@ -31,7 +31,7 @@ $$
31
31
  ${type === 2
32
32
  ? "On rappelle que $\\sqrt 2 \\approx 1,41421$."
33
33
  : type === 1
34
- ? "On rappelle que $\\pi \\approx 3, 14159$."
34
+ ? "On rappelle que $\\pi \\approx 3,14159$."
35
35
  : ""}`;
36
36
  };
37
37
  const getAnswer = (identifiers) => {
@@ -44,8 +44,6 @@ const getAnswer = (identifiers) => {
44
44
  const answer = `${a.toTex()}<${nb.toTex()}<${b.toTex()}`;
45
45
  return answer;
46
46
  };
47
- // const getHint: GetHint<Identifiers> = (identifiers) => {};
48
- // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {};
49
47
  const getKeys = (identifiers) => {
50
48
  const { nbIds, nbValue, pow, type } = identifiers;
51
49
  const nb = reifyAlgebraic(nbIds);
@@ -64,6 +62,12 @@ const getKeys = (identifiers) => {
64
62
  },
65
63
  ];
66
64
  };
65
+ const getHint = (identifiers) => {
66
+ return ``;
67
+ };
68
+ const getCorrection = (identifiers) => {
69
+ return ``;
70
+ };
67
71
  const getQuestionFromIdentifiers = (identifiers) => {
68
72
  const question = {
69
73
  answer: getAnswer(identifiers),
@@ -71,6 +75,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
71
75
  keys: getKeys(identifiers),
72
76
  answerFormat: "tex",
73
77
  identifiers,
78
+ // hint: getHint(identifiers),
79
+ // correction: getCorrection(identifiers),
74
80
  };
75
81
  return question;
76
82
  };
@@ -148,4 +154,5 @@ export const framing = {
148
154
  subject: "Mathématiques",
149
155
  pdfOptions: { shouldSpreadPropositions: true },
150
156
  getQuestionFromIdentifiers,
157
+ // hasHintAndCorrection: true,
151
158
  };
@@ -9,4 +9,5 @@ export * from "./twoFunctionsInequation.js";
9
9
  export * from "./inverseImageFunctionTable.js";
10
10
  export * from "./imageAntecedentFromSentence.js";
11
11
  export * from "./graphicInequationAffine.js";
12
+ export * from "./valueTableCompletion.js";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC"}
@@ -9,4 +9,4 @@ export * from "./twoFunctionsInequation.js";
9
9
  export * from "./inverseImageFunctionTable.js";
10
10
  export * from "./imageAntecedentFromSentence.js";
11
11
  export * from "./graphicInequationAffine.js";
12
- // export * from "./valueTableCompletion.js";
12
+ export * from "./valueTableCompletion.js";
@@ -1,6 +1,7 @@
1
1
  import { Exercise } from "../../../../exercises/exercise.js";
2
2
  type Identifiers = {
3
- test: number;
3
+ coeffs: number[];
4
+ initTable: string[][];
4
5
  };
5
6
  export declare const valueTableCompletion: Exercise<Identifiers>;
6
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"valueTableCompletion.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/valueTableCompletion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAoEF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAmBtD,CAAC"}
1
+ {"version":3,"file":"valueTableCompletion.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/functions/basics/valueTableCompletion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AAyIF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAiBtD,CAAC"}
@@ -1,78 +1,151 @@
1
- import { addValidProp, shuffleProps, } from "../../../../exercises/exercise.js";
2
1
  import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
2
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
3
+ import { AffineConstructor } from "../../../../math/polynomials/affine.js";
4
+ import { randTupleInt } from "../../../../math/utils/random/randTupleInt.js";
5
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
3
6
  import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
4
- const getPropositions = (n, { answer }) => {
5
- const propositions = [];
6
- addValidProp(propositions, answer);
7
- while (propositions.length < n) {
8
- throw Error("QCM not implemented");
7
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
8
+ import { mdTable } from "../../../../utils/markdown/mdTable.js";
9
+ const getAnswerTable = (identifiers) => {
10
+ const { coeffs, initTable } = identifiers;
11
+ const affine = AffineConstructor.fromCoeffs(identifiers.coeffs);
12
+ const answerTable = [[], []];
13
+ console.log(initTable);
14
+ for (let j = 1; j < initTable[0].length; j++) {
15
+ if (initTable[0][j] === "") {
16
+ answerTable[0].push(affine.solve(initTable[1][j].unfrenchify()).toTex());
17
+ answerTable[1].push(initTable[1][j]);
18
+ }
19
+ else {
20
+ answerTable[1].push(affine.calculate(initTable[0][j].unfrenchify()).toTree().toTex());
21
+ answerTable[0].push(initTable[0][j]);
22
+ }
9
23
  }
10
- return shuffleProps(propositions, n);
11
- };
12
- const getAnswer = (identifiers) => {
13
- return "";
24
+ console.log(answerTable);
25
+ return [
26
+ ["x", ...answerTable[0]],
27
+ ["f(x)", ...answerTable[1]],
28
+ ];
14
29
  };
15
30
  const getInstruction = (identifiers) => {
16
- return `Soit $f(x) = 3x$. Compléter le tableau suivant : `;
31
+ const affine = AffineConstructor.fromCoeffs(identifiers.coeffs);
32
+ return `Soit $f(x) = ${affine.toTree().toTex()}$.
33
+
34
+ Compléter le tableau de valeurs de $f$ suivant : `;
17
35
  };
18
36
  const getHint = (identifiers) => {
19
- return "";
37
+ return "Dans un tableau de valeurs, la deuxième ligne contient les images de la première ligne par la fonction $f$. Pour trouver une case de la deuxième ligne, il faut donc calculer l'image de la case de la premiere ligne par la fonction $f$. Pour trouver une case de la première ligne, il faut déterminer un antécédent de la case de la deuxième ligne par $f$.";
20
38
  };
21
39
  const getCorrection = (identifiers) => {
22
- return "";
40
+ const initTable = identifiers.initTable;
41
+ const affine = AffineConstructor.fromCoeffs(identifiers.coeffs);
42
+ const elmts = [];
43
+ console.log(getAnswerTable(identifiers));
44
+ for (let i = 0; i < initTable.length; i++) {
45
+ for (let j = 1; j < initTable[0].length; j++) {
46
+ const cell = initTable[i][j];
47
+ if (cell === "") {
48
+ if (i === 0) {
49
+ const y = initTable[1][j];
50
+ elmts.push(`- On calcule l'antécédent de $${y}$ par $f$ :
51
+
52
+ ${alignTex([
53
+ ["", `${affine.toTree().toTex()} = ${y}`],
54
+ ["\\iff", `x=${affine.solve(y.unfrenchify()).toTex()}`],
55
+ ])}
56
+ `);
57
+ }
58
+ else {
59
+ const x = initTable[0][j];
60
+ elmts.push(`- On calcule l'image de $${x}$ par $f$ :
61
+
62
+ $$
63
+ f(${x}) = ${affine
64
+ .toTree()
65
+ .toDetailedEvaluation({ x: x.unfrenchify().toTree() })
66
+ .toTex()} = ${affine.calculate(x.unfrenchify()).toTree().toTex()}
67
+ $$`);
68
+ }
69
+ }
70
+ }
71
+ }
72
+ return `${elmts.join("\n")}
73
+
74
+ Le tableau de valeurs complété est donc :
75
+
76
+ ${mdTable(getAnswerTable(identifiers), true)}
77
+
78
+ `;
23
79
  };
24
80
  const getKeys = (identifiers) => {
25
81
  return [];
26
82
  };
27
- const isAnswerValid = (ans, { answer }) => {
83
+ const isAnswerTableValid = (ans, { answerTable }) => {
28
84
  try {
29
- throw Error("VEA not implemented");
85
+ for (let i = 0; i < 2; i++) {
86
+ for (let j = 1; j < ans[i].length; j++) {
87
+ const vea = numberVEA(ans[i][j], answerTable[i][j]);
88
+ if (!vea)
89
+ return false;
90
+ }
91
+ }
92
+ return true;
30
93
  }
31
94
  catch (err) {
32
95
  return handleVEAError(err);
33
96
  }
34
97
  };
35
98
  const getValueTableCompletionQuestion = (ops) => {
99
+ const affine = AffineConstructor.random();
100
+ const xs = randTupleInt(4, { allDifferent: true, from: -10, to: 10 }).sort((a, b) => a - b);
101
+ let stringXs = xs.map((e) => e.toString());
102
+ const ys = [];
103
+ for (let i = 0; i < xs.length; i++) {
104
+ const hideX = coinFlip();
105
+ if (hideX) {
106
+ stringXs[i] = "";
107
+ ys.push(affine.calculate(xs[i]).toTree().toTex());
108
+ }
109
+ else {
110
+ ys.push("");
111
+ }
112
+ }
113
+ const initTable = [
114
+ ["x", ...stringXs],
115
+ ["f(x)", ...ys],
116
+ ];
36
117
  const identifiers = {
37
- test: Math.random(),
118
+ coeffs: affine.coefficients,
119
+ initTable,
38
120
  };
39
121
  return getQuestionFromIdentifiers(identifiers);
40
122
  };
41
123
  const getQuestionFromIdentifiers = (identifiers) => {
42
124
  return {
43
- answer: getAnswer(identifiers),
125
+ answerTable: getAnswerTable(identifiers),
44
126
  instruction: getInstruction(identifiers),
45
127
  keys: getKeys(identifiers),
46
128
  answerFormat: "tex",
47
129
  identifiers,
48
130
  hint: getHint(identifiers),
49
131
  correction: getCorrection(identifiers),
50
- initTable: [
51
- ["x", "1", "", "3", ""],
52
- ["f(x)", "3", "", "", "12"],
53
- ],
54
- answerTable: [
55
- ["x", "1", "2", "3", "4"],
56
- ["f(x)", "3", "6", "9", "12"],
57
- ],
132
+ initTable: identifiers.initTable,
58
133
  };
59
134
  };
60
135
  export const valueTableCompletion = {
61
136
  id: "valueTableCompletion",
62
137
  connector: "=",
63
- label: "Tableau valeurs",
138
+ label: "Compléter un tableau de valeurs d'une fonction par le calcul",
64
139
  isSingleStep: true,
65
140
  generator: (nb, opts) => getDistinctQuestions(() => getValueTableCompletionQuestion(opts), nb),
66
- qcmTimer: 60,
67
- freeTimer: 60,
68
- getPropositions,
69
- isAnswerValid,
141
+ valueTableTimer: 120,
70
142
  subject: "Mathématiques",
71
143
  getInstruction,
72
144
  getHint,
73
145
  getCorrection,
74
- getAnswer,
146
+ getAnswerTable,
75
147
  getQuestionFromIdentifiers,
76
148
  hasHintAndCorrection: true,
77
149
  answerType: "valueTable",
150
+ isAnswerTableValid,
78
151
  };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ repartitions: number[];
4
+ colorAskedIndex: number;
5
+ };
6
+ export declare const ballsBasicProbas: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=ballsBasicProbas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ballsBasicProbas.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/ballsBasicProbas.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAoGF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAclD,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { shuffleProps, tryToAddWrongProp, addValidProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { Rational } from "../../../../math/numbers/rationals/rational.js";
4
+ import { randint } from "../../../../math/utils/random/randint.js";
5
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
6
+ import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
7
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
8
+ import { pluralize } from "../../../../utils/strings/pluralize.js";
9
+ const colors = ["rouge", "jaune", "verte"];
10
+ pluralize;
11
+ const getInstruction = (identifiers) => {
12
+ const { repartitions, colorAskedIndex } = identifiers;
13
+ const colorAsked = colors[colorAskedIndex];
14
+ const counts = repartitions.map((count, index) => `$${count}$ ${pluralize("boule", count)} ${colors[index]}`);
15
+ return `Dans un sac, il y a ${counts[0]}, ${counts[1]} et ${counts[2]}.
16
+
17
+ Quelle est la probabilité de tirer une boule ${colorAsked} ?`;
18
+ };
19
+ const getAnswer = (identifiers) => {
20
+ const { repartitions, colorAskedIndex } = identifiers;
21
+ const nbColorAsked = repartitions[colorAskedIndex];
22
+ const total = repartitions.reduce((acc, curr) => (acc += curr), 0);
23
+ const answer = frac(nbColorAsked, total).simplify().toTex();
24
+ return answer;
25
+ };
26
+ const getHint = (identifiers) => {
27
+ const { repartitions, colorAskedIndex } = identifiers;
28
+ return `Puisque toutes les boules ont la même chance d'être tirée, la probabilité d'obtenir une boule ${colors[colorAskedIndex]} est le nombre de boules ${colors[colorAskedIndex]} divisé par le nombre total de boules.`;
29
+ };
30
+ const getCorrection = (identifiers) => {
31
+ const { repartitions, colorAskedIndex } = identifiers;
32
+ const nbColorAsked = repartitions[colorAskedIndex];
33
+ const total = repartitions.reduce((acc, curr) => (acc += curr), 0);
34
+ return `Puisque toutes les boules ont la même chance d'être tirée, la probabilité d'obtenir une boule ${colors[colorAskedIndex]} est le nombre de boules ${colors[colorAskedIndex]} divisé par le nombre total de boules, c'est à dire :
35
+
36
+ $$
37
+ ${frac(nbColorAsked, total).toSimplificationTex()}
38
+ $$`;
39
+ };
40
+ const getBallsBasicProbasQuestion = () => {
41
+ const repartitions = [randint(1, 4), randint(1, 4), randint(1, 4)];
42
+ const colorAskedIndex = randint(0, 3);
43
+ const identifiers = { colorAskedIndex, repartitions };
44
+ return getQuestionFromIdentifiers(identifiers);
45
+ };
46
+ const getQuestionFromIdentifiers = (identifiers) => {
47
+ const question = {
48
+ answer: getAnswer(identifiers),
49
+ instruction: getInstruction(identifiers),
50
+ keys: [],
51
+ answerFormat: "tex",
52
+ identifiers,
53
+ hint: getHint(identifiers),
54
+ correction: getCorrection(identifiers),
55
+ };
56
+ return question;
57
+ };
58
+ const getPropositions = (n, { answer, colorAskedIndex, repartitions }) => {
59
+ const total = repartitions.reduce((acc, curr) => (acc += curr), 0);
60
+ const nbColorAsked = repartitions[colorAskedIndex];
61
+ const propositions = [];
62
+ addValidProp(propositions, answer);
63
+ tryToAddWrongProp(propositions, nbColorAsked + "");
64
+ tryToAddWrongProp(propositions, `\\frac{1}{3}`);
65
+ if (total === 3) {
66
+ tryToAddWrongProp(propositions, `3`);
67
+ }
68
+ while (propositions.length < n) {
69
+ const wrongAnswer = new Rational(randint(1, total), total).simplify().tex;
70
+ tryToAddWrongProp(propositions, wrongAnswer);
71
+ }
72
+ return shuffleProps(propositions, n);
73
+ };
74
+ const isAnswerValid = (ans, { colorAskedIndex, repartitions, answer }) => {
75
+ try {
76
+ const parsed = parseAlgebraic(ans);
77
+ return parsed.simplify({ decimalToFractions: true }).toTex() === answer;
78
+ }
79
+ catch (err) {
80
+ return handleVEAError(err);
81
+ }
82
+ };
83
+ export const ballsBasicProbas = {
84
+ id: "ballsBasicProbas",
85
+ connector: "=",
86
+ label: "Calcul de probabilité simple avec des boules colorées",
87
+ isSingleStep: true,
88
+ generator: (nb) => getDistinctQuestions(getBallsBasicProbasQuestion, nb),
89
+ qcmTimer: 60,
90
+ freeTimer: 60,
91
+ getPropositions,
92
+ isAnswerValid,
93
+ subject: "Mathématiques",
94
+ hasHintAndCorrection: true,
95
+ getQuestionFromIdentifiers,
96
+ };
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { CardsColor } from "../../../../exercises/utils/cardsData.js";
3
+ type Identifiers = {
4
+ questionType: string;
5
+ value?: string;
6
+ color?: CardsColor;
7
+ };
8
+ export declare const cardBasicProbas: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=cardBasicProbas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardBasicProbas.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/basicProbas/cardBasicProbas.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAQrC,OAAO,EAAE,UAAU,EAAe,MAAM,oCAAoC,CAAC;AAI7E,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAoJF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,WAAW,CAgBjD,CAAC"}