math-exercises 3.0.208 → 3.0.209

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 (73) hide show
  1. package/lib/exercises/math/arithmetic/congruenceBasicComputation.d.ts +8 -0
  2. package/lib/exercises/math/arithmetic/congruenceBasicComputation.d.ts.map +1 -0
  3. package/lib/exercises/math/arithmetic/congruenceBasicComputation.js +93 -0
  4. package/lib/exercises/math/arithmetic/index.d.ts +2 -0
  5. package/lib/exercises/math/arithmetic/index.d.ts.map +1 -0
  6. package/lib/exercises/math/arithmetic/index.js +1 -0
  7. package/lib/exercises/math/functions/affines/adjustment/affineAdjustment.d.ts.map +1 -1
  8. package/lib/exercises/math/functions/affines/adjustment/affineAdjustment.js +15 -0
  9. package/lib/exercises/math/functions/affines/adjustment/affineAdjustmentRsquared.d.ts.map +1 -1
  10. package/lib/exercises/math/functions/affines/adjustment/affineAdjustmentRsquared.js +15 -0
  11. package/lib/exercises/math/functions/logarithm/log10Simplifying.d.ts.map +1 -1
  12. package/lib/exercises/math/functions/logarithm/log10Simplifying.js +72 -33
  13. package/lib/exercises/math/functions/logarithm/logEquation.d.ts.map +1 -1
  14. package/lib/exercises/math/functions/logarithm/logEquation.js +40 -2
  15. package/lib/exercises/math/functions/logarithm/logPowerEquation.d.ts.map +1 -1
  16. package/lib/exercises/math/functions/logarithm/logPowerEquation.js +55 -6
  17. package/lib/exercises/math/functions/logarithm/logSimplifiying.d.ts.map +1 -1
  18. package/lib/exercises/math/functions/logarithm/logSimplifiying.js +45 -5
  19. package/lib/exercises/math/index.d.ts +1 -0
  20. package/lib/exercises/math/index.d.ts.map +1 -1
  21. package/lib/exercises/math/index.js +1 -0
  22. package/lib/exercises/math/probaStat/density/findParamToMakeDensity.d.ts +8 -0
  23. package/lib/exercises/math/probaStat/density/findParamToMakeDensity.d.ts.map +1 -0
  24. package/lib/exercises/math/probaStat/density/findParamToMakeDensity.js +127 -0
  25. package/lib/exercises/math/probaStat/density/index.d.ts +2 -0
  26. package/lib/exercises/math/probaStat/density/index.d.ts.map +1 -0
  27. package/lib/exercises/math/probaStat/density/index.js +1 -0
  28. package/lib/exercises/math/probaStat/exponential/exponentialLawAverage.d.ts +7 -0
  29. package/lib/exercises/math/probaStat/exponential/exponentialLawAverage.d.ts.map +1 -0
  30. package/lib/exercises/math/probaStat/exponential/exponentialLawAverage.js +95 -0
  31. package/lib/exercises/math/probaStat/exponential/exponentialLawComputeIntervalProba.d.ts +9 -0
  32. package/lib/exercises/math/probaStat/exponential/exponentialLawComputeIntervalProba.d.ts.map +1 -0
  33. package/lib/exercises/math/probaStat/exponential/exponentialLawComputeIntervalProba.js +115 -0
  34. package/lib/exercises/math/probaStat/exponential/exponentialLawComputeProba.d.ts +8 -0
  35. package/lib/exercises/math/probaStat/exponential/exponentialLawComputeProba.d.ts.map +1 -0
  36. package/lib/exercises/math/probaStat/exponential/exponentialLawComputeProba.js +110 -0
  37. package/lib/exercises/math/probaStat/exponential/index.d.ts +4 -0
  38. package/lib/exercises/math/probaStat/exponential/index.d.ts.map +1 -0
  39. package/lib/exercises/math/probaStat/exponential/index.js +3 -0
  40. package/lib/exercises/math/probaStat/geometric/geometricLawAverage.d.ts +8 -0
  41. package/lib/exercises/math/probaStat/geometric/geometricLawAverage.d.ts.map +1 -0
  42. package/lib/exercises/math/probaStat/geometric/geometricLawAverage.js +124 -0
  43. package/lib/exercises/math/probaStat/geometric/geometricLawComputeProba.d.ts +9 -0
  44. package/lib/exercises/math/probaStat/geometric/geometricLawComputeProba.d.ts.map +1 -0
  45. package/lib/exercises/math/probaStat/geometric/geometricLawComputeProba.js +121 -0
  46. package/lib/exercises/math/probaStat/geometric/index.d.ts +3 -0
  47. package/lib/exercises/math/probaStat/geometric/index.d.ts.map +1 -0
  48. package/lib/exercises/math/probaStat/geometric/index.js +2 -0
  49. package/lib/exercises/math/probaStat/index.d.ts +4 -0
  50. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  51. package/lib/exercises/math/probaStat/index.js +4 -0
  52. package/lib/exercises/math/probaStat/stats2var/fineAdjustementExercise.d.ts.map +1 -1
  53. package/lib/exercises/math/probaStat/stats2var/fineAdjustementExercise.js +15 -0
  54. package/lib/exercises/math/probaStat/uniform/index.d.ts +3 -0
  55. package/lib/exercises/math/probaStat/uniform/index.d.ts.map +1 -0
  56. package/lib/exercises/math/probaStat/uniform/index.js +2 -0
  57. package/lib/exercises/math/probaStat/uniform/uniformAverage.d.ts +8 -0
  58. package/lib/exercises/math/probaStat/uniform/uniformAverage.d.ts.map +1 -0
  59. package/lib/exercises/math/probaStat/uniform/uniformAverage.js +100 -0
  60. package/lib/exercises/math/probaStat/uniform/uniformLawComputeProba.d.ts +10 -0
  61. package/lib/exercises/math/probaStat/uniform/uniformLawComputeProba.d.ts.map +1 -0
  62. package/lib/exercises/math/probaStat/uniform/uniformLawComputeProba.js +105 -0
  63. package/lib/index.d.ts +29 -1
  64. package/lib/index.d.ts.map +1 -1
  65. package/lib/latexTester.js +1 -0
  66. package/lib/tests/pdfs/formatMdToLatex.js +1 -1
  67. package/lib/tree/nodes/functions/log10Node.d.ts +1 -0
  68. package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
  69. package/lib/tree/nodes/functions/log10Node.js +12 -1
  70. package/lib/tree/nodes/functions/logNode.d.ts +1 -0
  71. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  72. package/lib/tree/nodes/functions/logNode.js +12 -1
  73. package/package.json +1 -1
@@ -0,0 +1,124 @@
1
+ import { addValidProp, shuffleProps, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
4
+ import { RationalConstructor } from "../../../../math/numbers/rationals/rational.js";
5
+ import { randfloat } from "../../../../math/utils/random/randfloat.js";
6
+ import { round } from "../../../../math/utils/round.js";
7
+ import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
8
+ import { frac, isFractionNode, } from "../../../../tree/nodes/operators/fractionNode.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
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
13
+ import { approxOrEqual } from "../../../../utils/latex/approxOrEqual.js";
14
+ const getPropositions = (n, { answer, ...identifiers }) => {
15
+ const { pIds } = identifiers;
16
+ const propositions = [];
17
+ addValidProp(propositions, answer);
18
+ const p = reifyAlgebraic(pIds);
19
+ tryToAddWrongProp(propositions, p.toTex());
20
+ propWhile(propositions, n, () => {
21
+ tryToAddWrongProp(propositions, coinFlip()
22
+ ? RationalConstructor.randomIrreductibleProba().toTree().toTex()
23
+ : randfloat(0.1, 1, 2).frenchify());
24
+ });
25
+ return shuffleProps(propositions, n);
26
+ };
27
+ const getAnswer = (identifiers) => {
28
+ const { pIds } = identifiers;
29
+ const p = reifyAlgebraic(pIds);
30
+ if (isFractionNode(p)) {
31
+ return frac(1, p).simplify().toTex();
32
+ }
33
+ else {
34
+ return round(frac(1, p).evaluate(), 2).frenchify();
35
+ }
36
+ };
37
+ const getInstruction = (identifiers) => {
38
+ const { pIds } = identifiers;
39
+ const p = reifyAlgebraic(pIds);
40
+ return `Soit $X$ une variable aléatoire qui suit une loi géométrique de paramètre $${p.toTex()}$.
41
+
42
+ Quelle est l'espérance $E(X)$ de $X$ ? Donner la valeur exacte ou une valeur arrondie au centième.`;
43
+ };
44
+ const getHint = () => {
45
+ return `Si $X$ suit une loi géométrique de paramètre $p$, alors on a :
46
+
47
+ $$
48
+ E(X) = \\frac{1}{p}
49
+ $$`;
50
+ };
51
+ const getCorrection = (identifiers) => {
52
+ const { pIds } = identifiers;
53
+ const p = reifyAlgebraic(pIds);
54
+ const isFrac = isFractionNode(p);
55
+ const ratio = frac(1, p);
56
+ const ratioEv = ratio.evaluate();
57
+ const answer = getAnswer(identifiers);
58
+ return `Si $X$ suit une loi géométrique de paramètre $p$, alors on a :
59
+
60
+ $$
61
+ E(X) = \\frac{1}{p}
62
+ $$
63
+
64
+ Ici, on a donc :
65
+
66
+ ${alignTex([
67
+ ["E(X)", "=", ratio.toTex()],
68
+ isFrac ? ["", "=", answer] : ["", ...approxOrEqual(ratioEv, 2)],
69
+ ])}
70
+ `;
71
+ };
72
+ const getKeys = () => {
73
+ return [];
74
+ };
75
+ const isAnswerValid = (ans, { answer: _answer, pIds }) => {
76
+ try {
77
+ const p = reifyAlgebraic(pIds);
78
+ const sol = frac(1, p).simplify();
79
+ const solEv = round(sol.evaluate(), 2);
80
+ return (parseAlgebraic(ans).simplify().toTex() === sol.toTex() ||
81
+ numberVEA(ans, solEv.frenchify(), 2));
82
+ }
83
+ catch (err) {
84
+ return handleVEAError(err);
85
+ }
86
+ };
87
+ const getGeometricLawAverageQuestion = () => {
88
+ const p = coinFlip()
89
+ ? RationalConstructor.randomIrreductibleProba().toTree()
90
+ : randfloat(0.1, 1, 2).toTree();
91
+ const identifiers = {
92
+ pIds: p.toIdentifiers(),
93
+ };
94
+ return getQuestionFromIdentifiers(identifiers);
95
+ };
96
+ const getQuestionFromIdentifiers = (identifiers) => {
97
+ return {
98
+ answer: getAnswer(identifiers),
99
+ instruction: getInstruction(identifiers),
100
+ keys: getKeys(identifiers),
101
+ answerFormat: "tex",
102
+ identifiers,
103
+ hint: getHint(identifiers),
104
+ correction: getCorrection(identifiers),
105
+ };
106
+ };
107
+ export const geometricLawAverage = {
108
+ id: "geometricLawAverage",
109
+ connector: "=",
110
+ label: "Déterminer l'espérane d'une loi géométrique",
111
+ isSingleStep: true,
112
+ generator: (nb, opts) => getDistinctQuestions(() => getGeometricLawAverageQuestion(opts), nb),
113
+ qcmTimer: 60,
114
+ freeTimer: 60,
115
+ getPropositions,
116
+ isAnswerValid,
117
+ subject: "Mathématiques",
118
+ getInstruction,
119
+ getHint,
120
+ getCorrection,
121
+ getAnswer,
122
+ getQuestionFromIdentifiers,
123
+ hasHintAndCorrection: true,
124
+ };
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ pIds: NodeIdentifiers;
5
+ k: number;
6
+ };
7
+ export declare const geometricLawComputeProba: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=geometricLawComputeProba.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometricLawComputeProba.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/geometric/geometricLawComputeProba.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,eAAe,EAEhB,MAAM,qCAAqC,CAAC;AAQ7C,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAwGF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,CAmB1D,CAAC"}
@@ -0,0 +1,121 @@
1
+ import { addValidProp, shuffleProps, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
4
+ import { randfloat } from "../../../../math/utils/random/randfloat.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { round } from "../../../../math/utils/round.js";
7
+ import { reifyAlgebraic, } from "../../../../tree/nodes/nodeConstructor.js";
8
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
9
+ import { power } from "../../../../tree/nodes/operators/powerNode.js";
10
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
11
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
12
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
13
+ import { approxOrEqual } from "../../../../utils/latex/approxOrEqual.js";
14
+ const getPropositions = (n, { answer }) => {
15
+ const propositions = [];
16
+ addValidProp(propositions, answer);
17
+ propWhile(propositions, n, () => {
18
+ tryToAddWrongProp(propositions, randfloat(0.1, 0.9, 3).frenchify());
19
+ });
20
+ return shuffleProps(propositions, n);
21
+ };
22
+ const getAnswer = (identifiers) => {
23
+ const { pIds, k } = identifiers;
24
+ const p = reifyAlgebraic(pIds);
25
+ const proba = multiply(p, power(substract(1, p), substract(k, 1)));
26
+ return round(proba.evaluate(), 3).frenchify();
27
+ };
28
+ const getInstruction = (identifiers) => {
29
+ const { pIds, k } = identifiers;
30
+ const p = reifyAlgebraic(pIds);
31
+ return `Soit $X$ une variable aléatoire qui suit une loi géométrique de paramètre $${p.toTex()}$.
32
+
33
+ Calculer $P(X=${k})$.
34
+
35
+ Donner une valeur arrondie au millième.`;
36
+ };
37
+ const getHint = () => {
38
+ return `Si $X$ suit une loi géométrique de paramètre $p$, alors pour tout entier naturel $k$ non nul, on a :
39
+
40
+ $$
41
+ P(X=k) = p\\times (1-p)^{k-1}
42
+ $$`;
43
+ };
44
+ const getCorrection = (identifiers) => {
45
+ const { pIds, k } = identifiers;
46
+ const p = reifyAlgebraic(pIds);
47
+ const proba = multiply(p, power(substract(1, p), substract(k, 1)));
48
+ return `Si $X$ suit une loi géométrique de paramètre $p$, alors pour tout entier naturel $k$ non nul, on a :
49
+
50
+ $$
51
+ P(X=k) = p\\times (1-p)^{k-1}
52
+ $$
53
+
54
+ Ici, on a donc :
55
+
56
+ ${alignTex([
57
+ [`P(X=${k})`, "=", proba.toTex()],
58
+ ["", ...approxOrEqual(proba.evaluate(), 3)],
59
+ ])}
60
+ `;
61
+ };
62
+ const getKeys = () => {
63
+ return [];
64
+ };
65
+ const isAnswerValid = (ans, { answer }) => {
66
+ try {
67
+ return numberVEA(ans, answer);
68
+ }
69
+ catch (err) {
70
+ return handleVEAError(err);
71
+ }
72
+ };
73
+ const getGeometricLawComputeProbaQuestion = () => {
74
+ let p;
75
+ let k;
76
+ let rounded = 0;
77
+ let counter = 0;
78
+ do {
79
+ counter++;
80
+ if (counter > 1000)
81
+ throw new Error("too many iterations in geometricLawComputeProba");
82
+ p = randfloat(0.1, 1, 1);
83
+ k = randint(2, 10);
84
+ const proba = multiply(p, power(substract(1, p), substract(k, 1)));
85
+ rounded = round(proba.evaluate(), 3);
86
+ } while (rounded < 0.002);
87
+ const identifiers = {
88
+ k,
89
+ pIds: p.toTree().toIdentifiers(),
90
+ };
91
+ return getQuestionFromIdentifiers(identifiers);
92
+ };
93
+ const getQuestionFromIdentifiers = (identifiers) => {
94
+ return {
95
+ answer: getAnswer(identifiers),
96
+ instruction: getInstruction(identifiers),
97
+ keys: getKeys(identifiers),
98
+ answerFormat: "tex",
99
+ identifiers,
100
+ hint: getHint(identifiers),
101
+ correction: getCorrection(identifiers),
102
+ };
103
+ };
104
+ export const geometricLawComputeProba = {
105
+ id: "geometricLawComputeProba",
106
+ connector: "=",
107
+ label: "Calculer une probabilté $P(X=k)$ pour une variable aléatoire suivant une loi géométrique",
108
+ isSingleStep: true,
109
+ generator: (nb, opts) => getDistinctQuestions(() => getGeometricLawComputeProbaQuestion(opts), nb),
110
+ qcmTimer: 60,
111
+ freeTimer: 60,
112
+ getPropositions,
113
+ isAnswerValid,
114
+ subject: "Mathématiques",
115
+ getInstruction,
116
+ getHint,
117
+ getCorrection,
118
+ getAnswer,
119
+ getQuestionFromIdentifiers,
120
+ hasHintAndCorrection: true,
121
+ };
@@ -0,0 +1,3 @@
1
+ export * from "./geometricLawAverage.js";
2
+ export * from "./geometricLawComputeProba.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/geometric/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./geometricLawAverage.js";
2
+ export * from "./geometricLawComputeProba.js";
@@ -16,4 +16,8 @@ export * from "./conditional/index.js";
16
16
  export * from "./twoStepExperiments/index.js";
17
17
  export * from "./trees/index.js";
18
18
  export * from "./tchebychev/index.js";
19
+ export * from "./geometric/index.js";
20
+ export * from "./density/index.js";
21
+ export * from "./uniform/index.js";
22
+ export * from "./exponential/index.js";
19
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
@@ -16,3 +16,7 @@ export * from "./conditional/index.js";
16
16
  export * from "./twoStepExperiments/index.js";
17
17
  export * from "./trees/index.js";
18
18
  export * from "./tchebychev/index.js";
19
+ export * from "./geometric/index.js";
20
+ export * from "./density/index.js";
21
+ export * from "./uniform/index.js";
22
+ export * from "./exponential/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"fineAdjustementExercise.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats2var/fineAdjustementExercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAGL,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAM5C,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,sBAAsB,EAAE,sBAAsB,CAAC;CAChD,CAAC;AAsIF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAazD,CAAC"}
1
+ {"version":3,"file":"fineAdjustementExercise.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/stats2var/fineAdjustementExercise.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAGL,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAM5C,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,sBAAsB,EAAE,sBAAsB,CAAC;CAChD,CAAC;AA0JF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAczD,CAAC"}
@@ -46,6 +46,18 @@ const getGGBOptions = (identifiers) => {
46
46
  coords: ggb.getAdaptedCoords({ xMin, xMax, yMin, yMax }),
47
47
  });
48
48
  };
49
+ const getHint = () => {
50
+ return `Le coefficient de détermination indique si un ajustement affine est pertinent ou non pour la série statistique considérée. Plus il est proche de $1$, plus l'ajustement affine est pertinent. Plus il est proche de $0$, moins l'ajustement affine est pertinent.`;
51
+ };
52
+ const getCorrection = (identifiers) => {
53
+ const { isJustified, cloudPointsIdentifiers } = identifiers;
54
+ const cloudPoints = new CloudPoints(cloudPointsIdentifiers.pointsIdentifiers.map((i) => PointConstructor.fromIdentifiers(i)));
55
+ const coeff = cloudPoints.getCorrelationCoeff().value;
56
+ const determinationCoeff = new NumberNode(+(coeff * coeff).toFixed(2));
57
+ return isJustified
58
+ ? `Les points du nuage de points représentant cette série statistique sont "presque" alignés. Il semblerait pertinent donc d'ajuster cette série statistique par un ajustement affine. Le coefficient de détermination doit donc être proche de $1$ pour cette série statistique. Parmi les choix proposés, on en déduit donc que ce coefficient vaut $${determinationCoeff.toTex()}$. `
59
+ : `Ici, les points du nuage de points ne semblent pas du tout former une droite : il ne semble donc pas pertinent d'ajuster cette série statistique par un ajustement affine. Le coefficient de détermination doit donc être proche de $0$ pour cette série statistique. Parmi les choix proposés, on en conclut que ce coefficient vaut $${determinationCoeff.toTex()}$. `;
60
+ };
49
61
  const getFineAdjustementExerciseQuestion = () => {
50
62
  const flip = coinFlip();
51
63
  const cloudPoints = flip
@@ -73,6 +85,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
73
85
  keys: [],
74
86
  answerFormat: "raw",
75
87
  identifiers,
88
+ hint: getHint(identifiers),
89
+ correction: getCorrection(identifiers),
76
90
  };
77
91
  return question;
78
92
  };
@@ -111,4 +125,5 @@ export const fineAdjustementExercise = {
111
125
  getPropositions,
112
126
  subject: "Mathématiques",
113
127
  getQuestionFromIdentifiers,
128
+ hasHintAndCorrection: true,
114
129
  };
@@ -0,0 +1,3 @@
1
+ export * from "./uniformLawComputeProba.js";
2
+ export * from "./uniformAverage.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/uniform/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./uniformLawComputeProba.js";
2
+ export * from "./uniformAverage.js";
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ a: number;
4
+ b: number;
5
+ };
6
+ export declare const uniformAverage: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=uniformAverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniformAverage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/uniform/uniformAverage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA2FF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,WAAW,CAkBhD,CAAC"}
@@ -0,0 +1,100 @@
1
+ import { addValidProp, shuffleProps, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { rationalVEA } from "../../../../exercises/vea/rationalVEA.js";
4
+ import { randint } from "../../../../math/utils/random/randint.js";
5
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
6
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
7
+ const getPropositions = (n, { answer }) => {
8
+ const propositions = [];
9
+ addValidProp(propositions, answer);
10
+ propWhile(propositions, n, () => {
11
+ const a = randint(-10, 20);
12
+ const b = randint(a + 1, a + 20);
13
+ tryToAddWrongProp(propositions, frac(a + b, 2)
14
+ .simplify()
15
+ .toTex());
16
+ });
17
+ return shuffleProps(propositions, n);
18
+ };
19
+ const getAnswer = (identifiers) => {
20
+ const { a, b } = identifiers;
21
+ return frac(a + b, 2)
22
+ .simplify()
23
+ .toTex();
24
+ };
25
+ const getInstruction = (identifiers) => {
26
+ const { a, b } = identifiers;
27
+ return `Soit $X$ une variable aléatoire qui suit une loi uniforme sur $[${a};${b}]$.
28
+
29
+ Calculer l'espérance $E(X)$ de $X$.`;
30
+ };
31
+ const getHint = () => {
32
+ return `Si $X$ suit une loi uniforme sur $[a;b]$, alors son espérance vaut :
33
+
34
+ $$
35
+ E(X) = \\frac{a+b}{2}
36
+ $$`;
37
+ };
38
+ const getCorrection = (identifiers) => {
39
+ const { a, b } = identifiers;
40
+ return `Si $X$ suit une loi uniforme sur $[a;b]$, alors son espérance vaut :
41
+
42
+ $$
43
+ E(X) = \\frac{a+b}{2}
44
+ $$
45
+
46
+ Ici, on a donc :
47
+
48
+ $$
49
+ E(X) = ${frac(a + b, 2).toSimplificationTex()}
50
+ $$`;
51
+ };
52
+ const getKeys = () => {
53
+ return [];
54
+ };
55
+ const isAnswerValid = (ans, { answer }) => {
56
+ try {
57
+ return rationalVEA(ans, answer);
58
+ }
59
+ catch (err) {
60
+ return handleVEAError(err);
61
+ }
62
+ };
63
+ const getUniformAverageQuestion = () => {
64
+ const a = randint(-10, 20);
65
+ const b = randint(a + 1, a + 20);
66
+ const identifiers = {
67
+ a,
68
+ b,
69
+ };
70
+ return getQuestionFromIdentifiers(identifiers);
71
+ };
72
+ const getQuestionFromIdentifiers = (identifiers) => {
73
+ return {
74
+ answer: getAnswer(identifiers),
75
+ instruction: getInstruction(identifiers),
76
+ keys: getKeys(identifiers),
77
+ answerFormat: "tex",
78
+ identifiers,
79
+ hint: getHint(identifiers),
80
+ correction: getCorrection(identifiers),
81
+ };
82
+ };
83
+ export const uniformAverage = {
84
+ id: "uniformAverage",
85
+ connector: "=",
86
+ label: "Calculer l'espérance d'une loi uniforme",
87
+ isSingleStep: true,
88
+ generator: (nb, opts) => getDistinctQuestions(() => getUniformAverageQuestion(opts), nb),
89
+ qcmTimer: 60,
90
+ freeTimer: 60,
91
+ getPropositions,
92
+ isAnswerValid,
93
+ subject: "Mathématiques",
94
+ getInstruction,
95
+ getHint,
96
+ getCorrection,
97
+ getAnswer,
98
+ getQuestionFromIdentifiers,
99
+ hasHintAndCorrection: true,
100
+ };
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ a: number;
4
+ b: number;
5
+ c: number;
6
+ d: number;
7
+ };
8
+ export declare const uniformLawComputeProba: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=uniformLawComputeProba.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniformLawComputeProba.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/uniform/uniformLawComputeProba.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CAEX,CAAC;AAgGF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAmBxD,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { addValidProp, shuffleProps, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { rationalVEA } from "../../../../exercises/vea/rationalVEA.js";
4
+ import { RationalConstructor } from "../../../../math/numbers/rationals/rational.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
7
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
8
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
9
+ const getPropositions = (n, { answer }) => {
10
+ const propositions = [];
11
+ addValidProp(propositions, answer);
12
+ propWhile(propositions, n, () => {
13
+ tryToAddWrongProp(propositions, RationalConstructor.randomIrreductibleProba().toTree().toTex());
14
+ });
15
+ return shuffleProps(propositions, n);
16
+ };
17
+ const getAnswer = (identifiers) => {
18
+ const { a, b, c, d } = identifiers;
19
+ return frac(d - c, b - a)
20
+ .simplify()
21
+ .toTex();
22
+ };
23
+ const getProbaTex = (identifiers) => {
24
+ const { a, b, c, d } = identifiers;
25
+ if (c === a)
26
+ return `P(X\\leq ${d})`;
27
+ if (d === b)
28
+ return `P(X\\geq ${c})`;
29
+ return `P(${c}\\leq X\\leq ${d})`;
30
+ };
31
+ const getInstruction = (identifiers) => {
32
+ const { a, b } = identifiers;
33
+ return `Soit $X$ une variable aléatoire suivant une loi uniforme sur l'intervalle $[${a};${b}]$.
34
+
35
+ Calculer $${getProbaTex(identifiers)}$.`;
36
+ };
37
+ const getHint = () => {
38
+ return `Si $X$ suit une loi uniforme sur $[a;b]$, alors pour tous réels $c$ et $d$ tels que $a\\leq c\\leq d\\leq b$, on a :
39
+
40
+ $$
41
+ P(c\\leq X\\leq d) = \\frac{d-c}{b-a}
42
+ $$`;
43
+ };
44
+ const getCorrection = (identifiers) => {
45
+ const { a, b, c, d } = identifiers;
46
+ return `Si $X$ suit une loi uniforme sur $[a;b]$, alors pour tous réels $c$ et $d$ tels que $a\\leq c\\leq d\\leq b$, on a :
47
+
48
+ $$
49
+ P(c\\leq X\\leq d) = \\frac{d-c}{b-a}
50
+ $$
51
+
52
+ Ici, on a donc :
53
+
54
+ $$
55
+ ${getProbaTex(identifiers)} = ${frac(substract(d, c), substract(b, a)).toTex()} = ${getAnswer(identifiers)}
56
+ $$`;
57
+ };
58
+ const getKeys = () => {
59
+ return [];
60
+ };
61
+ const isAnswerValid = (ans, { answer }) => {
62
+ try {
63
+ return rationalVEA(ans, answer);
64
+ }
65
+ catch (err) {
66
+ return handleVEAError(err);
67
+ }
68
+ };
69
+ const getUniformLawComputeProbaQuestion = () => {
70
+ const a = randint(1, 10);
71
+ const b = randint(a + 5, a + 15);
72
+ const c = randint(a, b);
73
+ const d = randint(c + 1, b + 1);
74
+ const identifiers = { a, b, c, d };
75
+ return getQuestionFromIdentifiers(identifiers);
76
+ };
77
+ const getQuestionFromIdentifiers = (identifiers) => {
78
+ return {
79
+ answer: getAnswer(identifiers),
80
+ instruction: getInstruction(identifiers),
81
+ keys: getKeys(identifiers),
82
+ answerFormat: "tex",
83
+ identifiers,
84
+ hint: getHint(identifiers),
85
+ correction: getCorrection(identifiers),
86
+ };
87
+ };
88
+ export const uniformLawComputeProba = {
89
+ id: "uniformLawComputeProba",
90
+ connector: "=",
91
+ label: "Calculer une probabilité du type $P(X\\in [a;b])$ pour une variable aléatoire suivant une loi uniforme",
92
+ isSingleStep: true,
93
+ generator: (nb, opts) => getDistinctQuestions(() => getUniformLawComputeProbaQuestion(opts), nb),
94
+ qcmTimer: 60,
95
+ freeTimer: 60,
96
+ getPropositions,
97
+ isAnswerValid,
98
+ subject: "Mathématiques",
99
+ getInstruction,
100
+ getHint,
101
+ getCorrection,
102
+ getAnswer,
103
+ getQuestionFromIdentifiers,
104
+ hasHintAndCorrection: true,
105
+ };
package/lib/index.d.ts CHANGED
@@ -3779,6 +3779,31 @@ declare const mathExercises: (Exercise<{
3779
3779
  nodeIdsV: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3780
3780
  nodeIdsA: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3781
3781
  nodeIdsPMin: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3782
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3783
+ pIds: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3784
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3785
+ pIds: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
3786
+ k: number;
3787
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3788
+ a: number;
3789
+ b: number;
3790
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3791
+ a: number;
3792
+ b: number;
3793
+ c: number;
3794
+ d: number;
3795
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3796
+ a: number;
3797
+ b: number;
3798
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3799
+ lambda: number;
3800
+ k: number;
3801
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3802
+ lambda: number;
3803
+ a: number;
3804
+ b: number;
3805
+ }, Record<string, string | boolean | string[]>> | Exercise<{
3806
+ lambda: number;
3782
3807
  }, Record<string, string | boolean | string[]>> | Exercise<{
3783
3808
  firstValue: number;
3784
3809
  askedRank: number;
@@ -5663,7 +5688,10 @@ declare const mathExercises: (Exercise<{
5663
5688
  nodeIdsVariableOfIntegration: import("./tree/nodes/nodeConstructor.js").NodeIdentifiers;
5664
5689
  }, {
5665
5690
  texIneqABC: string;
5666
- }>)[];
5691
+ }> | Exercise<{
5692
+ a: number;
5693
+ mod: number;
5694
+ }, Record<string, string | boolean | string[]>>)[];
5667
5695
  declare const pcExercises: (Exercise<{
5668
5696
  numbers: number[];
5669
5697
  }, Record<string, string | boolean | string[]>> | Exercise<{
@@ -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;AAC/D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA+B,CAAC;AACnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAA6B,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;AAC/D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAA+B,CAAC;AACnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAA6B,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}