math-exercises 2.2.71 → 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 (63) hide show
  1. package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.d.ts +10 -0
  2. package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.d.ts.map +1 -0
  3. package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.js +138 -0
  4. package/lib/exercises/math/calculLitteral/distributivity/index.d.ts +1 -0
  5. package/lib/exercises/math/calculLitteral/distributivity/index.d.ts.map +1 -1
  6. package/lib/exercises/math/calculLitteral/distributivity/index.js +1 -0
  7. package/lib/exercises/math/probaStat/stats1var/index.d.ts +6 -0
  8. package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
  9. package/lib/exercises/math/probaStat/stats1var/index.js +6 -0
  10. package/lib/exercises/math/probaStat/stats1var/interquartilesList.d.ts +7 -0
  11. package/lib/exercises/math/probaStat/stats1var/interquartilesList.d.ts.map +1 -0
  12. package/lib/exercises/math/probaStat/stats1var/interquartilesList.js +93 -0
  13. package/lib/exercises/math/probaStat/stats1var/interquartilesTable.d.ts +8 -0
  14. package/lib/exercises/math/probaStat/stats1var/interquartilesTable.d.ts.map +1 -0
  15. package/lib/exercises/math/probaStat/stats1var/interquartilesTable.js +98 -0
  16. package/lib/exercises/math/probaStat/stats1var/quartilesList.js +1 -1
  17. package/lib/exercises/math/probaStat/stats1var/standardDeviationList.d.ts +7 -0
  18. package/lib/exercises/math/probaStat/stats1var/standardDeviationList.d.ts.map +1 -0
  19. package/lib/exercises/math/probaStat/stats1var/standardDeviationList.js +131 -0
  20. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.d.ts +8 -0
  21. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.d.ts.map +1 -0
  22. package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.js +144 -0
  23. package/lib/exercises/math/probaStat/stats1var/varianceList.d.ts +7 -0
  24. package/lib/exercises/math/probaStat/stats1var/varianceList.d.ts.map +1 -0
  25. package/lib/exercises/math/probaStat/stats1var/varianceList.js +121 -0
  26. package/lib/exercises/math/probaStat/stats1var/varianceTable.d.ts +8 -0
  27. package/lib/exercises/math/probaStat/stats1var/varianceTable.d.ts.map +1 -0
  28. package/lib/exercises/math/probaStat/stats1var/varianceTable.js +133 -0
  29. package/lib/exercises/vea/sqrtVEA.d.ts +2 -1
  30. package/lib/exercises/vea/sqrtVEA.d.ts.map +1 -1
  31. package/lib/exercises/vea/sqrtVEA.js +6 -3
  32. package/lib/index.d.ts +19 -0
  33. package/lib/index.d.ts.map +1 -1
  34. package/lib/math/utils/quartiles.d.ts +3 -0
  35. package/lib/math/utils/quartiles.d.ts.map +1 -0
  36. package/lib/math/utils/quartiles.js +47 -0
  37. package/lib/math/utils/standardDeviation.d.ts +3 -0
  38. package/lib/math/utils/standardDeviation.d.ts.map +1 -0
  39. package/lib/math/utils/standardDeviation.js +13 -0
  40. package/lib/math/utils/variance.d.ts +1 -0
  41. package/lib/math/utils/variance.d.ts.map +1 -1
  42. package/lib/math/utils/variance.js +9 -1
  43. package/lib/playground.d.ts.map +1 -1
  44. package/lib/tree/nodes/operators/addNode.js +1 -1
  45. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  46. package/lib/tree/nodes/operators/multiplyNode.js +8 -0
  47. package/lib/tree/nodes/polynomials/monomNode.d.ts.map +1 -1
  48. package/lib/tree/nodes/polynomials/monomNode.js +3 -1
  49. package/lib/tree/parsers/monomParser.d.ts.map +1 -1
  50. package/lib/tree/parsers/monomParser.js +25 -0
  51. package/lib/tree/parsers/polynomialParser.d.ts +3 -0
  52. package/lib/tree/parsers/polynomialParser.d.ts.map +1 -0
  53. package/lib/tree/parsers/polynomialParser.js +50 -0
  54. package/lib/utils/average.d.ts +1 -0
  55. package/lib/utils/average.d.ts.map +1 -1
  56. package/lib/utils/average.js +9 -1
  57. package/lib/utils/latex/approxOrEqual.d.ts +2 -0
  58. package/lib/utils/latex/approxOrEqual.d.ts.map +1 -0
  59. package/lib/utils/latex/approxOrEqual.js +11 -0
  60. package/lib/utils/variance.d.ts +2 -0
  61. package/lib/utils/variance.d.ts.map +1 -0
  62. package/lib/utils/variance.js +12 -0
  63. package/package.json +1 -1
@@ -281,6 +281,8 @@ class MultiplyNode {
281
281
  return new numberNode_1.NumberNode(1);
282
282
  if (externals.length === 1)
283
283
  return externals[0];
284
+ //tout ca est un peu bordelique
285
+ //forceDistributeFractions sert à avoir par exemple (a/b)*x plutot que (ax/b)
284
286
  if (!opts?.forceDistributeFractions)
285
287
  if (externals.some((node) => (0, fractionNode_1.isFractionNode)(node))) {
286
288
  //s'il y a une fraction on transforme en fracNode
@@ -323,6 +325,12 @@ class MultiplyNode {
323
325
  a.value === b.leftChild.value) {
324
326
  return new powerNode_1.PowerNode(b.leftChild, new addNode_1.AddNode(b.rightChild, (1).toTree())).simplify();
325
327
  }
328
+ if ((0, fractionNode_1.isFractionNode)(a) &&
329
+ a.isNumeric &&
330
+ (0, fractionNode_1.isFractionNode)(b) &&
331
+ b.isNumeric) {
332
+ return new fractionNode_1.FractionNode((0, exports.multiply)(a.leftChild, b.leftChild), (0, exports.multiply)(a.rightChild, b.rightChild)).simplify(opts);
333
+ }
326
334
  let powerSimplified = powerSimplify(a, b, opts);
327
335
  if (powerSimplified)
328
336
  return powerSimplified;
@@ -1 +1 @@
1
- {"version":3,"file":"monomNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/polynomials/monomNode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAO/D,eAAO,MAAM,KAAK,MACb,aAAa,GAAG,MAAM,GAAG,MAAM,UAC1B,MAAM,SACP,gBAAgB,cAMxB,CAAC;AACF,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,SAAM,qBAGvD;AACD,KAAK,gBAAgB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAO7C;;;GAGG;AACH,qBAAa,SAAU,YAAW,aAAa;IAC7C,CAAC,EAAE,aAAa,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAkB;gBAG9B,CAAC,EAAE,aAAa,GAAG,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB;IAUzB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAMvC,MAAM,CAAC,IAAI,EAAE,aAAa;IAG1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGtC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAGxD,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAG/B,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS;IAG7C,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS;IAGhD,YAAY;IAIZ,MAAM;IAIN,KAAK;IAIL,aAAa;;;;;;;;;;CAQd;AAED,eAAO,MAAM,YAAY,SACjB,aAAa;;;;uBAyIpB,CAAC"}
1
+ {"version":3,"file":"monomNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/polynomials/monomNode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAO/D,eAAO,MAAM,KAAK,MACb,aAAa,GAAG,MAAM,GAAG,MAAM,UAC1B,MAAM,SACP,gBAAgB,cAMxB,CAAC;AACF,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,SAAM,qBAGvD;AACD,KAAK,gBAAgB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAO7C;;;GAGG;AACH,qBAAa,SAAU,YAAW,aAAa;IAC7C,CAAC,EAAE,aAAa,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAkB;gBAG9B,CAAC,EAAE,aAAa,GAAG,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB;IAUzB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAMvC,MAAM,CAAC,IAAI,EAAE,aAAa;IAG1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGtC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAGxD,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAG/B,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS;IAG7C,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS;IAGhD,YAAY;IAIZ,MAAM;IAMN,KAAK;IAIL,aAAa;;;;;;;;;;CAQd;AAED,eAAO,MAAM,YAAY,SACjB,aAAa;;;;uBAyIpB,CAAC"}
@@ -64,7 +64,9 @@ class MonomNode {
64
64
  return this.toTree().toMathString();
65
65
  }
66
66
  toTree() {
67
- return (0, multiplyNode_1.multiply)(this.a, (0, powerNode_1.power)(this.variable, this.degree)).simplify();
67
+ return (0, multiplyNode_1.multiply)(this.a, (0, powerNode_1.power)(this.variable, this.degree)).simplify({
68
+ forceDistributeFractions: true,
69
+ });
68
70
  }
69
71
  toTex() {
70
72
  return this.toTree().toTex();
@@ -1 +1 @@
1
- {"version":3,"file":"monomParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/monomParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAUvD,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,eAAO,MAAM,WAAW,QACjB,MAAM,uCACyB,IAAI,0BAgBzC,CAAC;AAEF,eAAO,MAAM,OAAO,SACZ,aAAa,uCACiB,IAAI,YAyFzC,CAAC"}
1
+ {"version":3,"file":"monomParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/monomParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAUvD,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,eAAO,MAAM,WAAW,QACjB,MAAM,uCACyB,IAAI,0BAgBzC,CAAC;AAEF,eAAO,MAAM,OAAO,SACZ,aAAa,uCACiB,IAAI,YAoHzC,CAAC"}
@@ -116,6 +116,31 @@ const isMonom = (node, { variable, maxDegree, minDegree } = {
116
116
  return true;
117
117
  }
118
118
  }
119
+ if ((0, oppositeNode_1.isOppositeNode)(node) && (0, multiplyNode_1.isMultiplyNode)(node.child)) {
120
+ const numericChild = node.child.leftChild.isNumeric
121
+ ? "left"
122
+ : node.child.rightChild.isNumeric
123
+ ? "right"
124
+ : undefined;
125
+ if (!numericChild)
126
+ return false;
127
+ const varChild = numericChild === "left" ? node.child.rightChild : node.child.leftChild;
128
+ if ((0, variableNode_1.isVariableNode)(varChild) && varChild.name === variable && minDegree < 2)
129
+ return true;
130
+ //new MonomNode(numericChild, 1, {variable});
131
+ if ((0, powerNode_1.isPowerNode)(varChild) &&
132
+ (0, variableNode_1.isVariableNode)(varChild.leftChild) &&
133
+ varChild.leftChild.name === variable &&
134
+ varChild.rightChild.isNumeric) {
135
+ const powerEv = varChild.rightChild.evaluate();
136
+ if (maxDegree && powerEv > maxDegree)
137
+ return false;
138
+ if (minDegree && powerEv < minDegree)
139
+ return false;
140
+ // new MonomNode(numericChild, powerEv, { variable });
141
+ return true;
142
+ }
143
+ }
119
144
  return false;
120
145
  };
121
146
  exports.isMonom = isMonom;
@@ -0,0 +1,3 @@
1
+ import { AlgebraicNode } from "../nodes/algebraicNode";
2
+ export declare const polynomialParser: (ans: string) => false | AlgebraicNode | import("../nodes/numbers/constantNode").ConstantNode | import("../nodes/numbers/numberNode").NumberNode | import("../nodes/operators/substractNode").SubstractNode | import("../nodes/operators/addNode").AddNode;
3
+ //# sourceMappingURL=polynomialParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polynomialParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/polynomialParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAUvD,eAAO,MAAM,gBAAgB,QAAS,MAAM,8OAmC3C,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.polynomialParser = void 0;
4
+ const oppositeNode_1 = require("../nodes/functions/oppositeNode");
5
+ const addNode_1 = require("../nodes/operators/addNode");
6
+ const substractNode_1 = require("../nodes/operators/substractNode");
7
+ const latexParser_1 = require("./latexParser");
8
+ const monomParser_1 = require("./monomParser");
9
+ const numberParser_1 = require("./numberParser");
10
+ //!parses polynomes sous forme développée
11
+ //minDegree = 0, max = undefined
12
+ const polynomialParser = (ans) => {
13
+ try {
14
+ const nb = (0, numberParser_1.numberParser)(ans);
15
+ if (nb !== false) {
16
+ return nb.unfrenchify().toTree();
17
+ }
18
+ const monom = (0, monomParser_1.monomParser)(ans);
19
+ if (monom)
20
+ return monom;
21
+ const parsed = (0, latexParser_1.parseAlgebraic)(ans);
22
+ if (!parsed)
23
+ return false;
24
+ if ((0, addNode_1.isAddNode)(parsed) || (0, substractNode_1.isSubstractNode)(parsed)) {
25
+ const externals = [];
26
+ const recursive = (node) => {
27
+ if ((0, addNode_1.isAddNode)(node)) {
28
+ recursive(node.leftChild);
29
+ recursive(node.rightChild);
30
+ }
31
+ else if ((0, substractNode_1.isSubstractNode)(node)) {
32
+ recursive(node.leftChild);
33
+ recursive(new oppositeNode_1.OppositeNode(node.rightChild));
34
+ }
35
+ else {
36
+ externals.push(node);
37
+ }
38
+ };
39
+ recursive(parsed);
40
+ if (externals.every((node) => (0, monomParser_1.isMonom)(node))) {
41
+ return parsed;
42
+ }
43
+ }
44
+ return false;
45
+ }
46
+ catch (err) {
47
+ return false;
48
+ }
49
+ };
50
+ exports.polynomialParser = polynomialParser;
@@ -1,2 +1,3 @@
1
1
  export declare const average: (arr: number[]) => number;
2
+ export declare const averageWithEffectifs: (values: number[], effectifs: number[]) => number;
2
3
  //# sourceMappingURL=average.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"average.d.ts","sourceRoot":"","sources":["../../src/utils/average.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,QAAS,MAAM,EAAE,WAGpC,CAAC"}
1
+ {"version":3,"file":"average.d.ts","sourceRoot":"","sources":["../../src/utils/average.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,QAAS,MAAM,EAAE,WAGpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,MAAM,EAAE,aAAa,MAAM,EAAE,WAOzE,CAAC"}
@@ -1,9 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.average = void 0;
3
+ exports.averageWithEffectifs = exports.average = void 0;
4
4
  const average = (arr) => {
5
5
  if (!arr.length)
6
6
  return 0;
7
7
  return arr.reduce((acc, curr) => acc + curr) / arr.length;
8
8
  };
9
9
  exports.average = average;
10
+ const averageWithEffectifs = (values, effectifs) => {
11
+ if (!values.length || !effectifs.length || values.length !== effectifs.length)
12
+ throw Error("Malformed data in average");
13
+ const N = effectifs.reduce((acc, curr) => acc + curr, 0);
14
+ const avg = values.reduce((acc, value, index) => acc + value * effectifs[index], 0) / N;
15
+ return avg;
16
+ };
17
+ exports.averageWithEffectifs = averageWithEffectifs;
@@ -0,0 +1,2 @@
1
+ export declare const approxOrEqual: (value: number, roundTo: number) => string[];
2
+ //# sourceMappingURL=approxOrEqual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approxOrEqual.d.ts","sourceRoot":"","sources":["../../../src/utils/latex/approxOrEqual.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,UAAW,MAAM,WAAW,MAAM,aAI3D,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.approxOrEqual = void 0;
4
+ const round_1 = require("../../math/utils/round");
5
+ const approxOrEqual = (value, roundTo) => {
6
+ const rounded = (0, round_1.round)(value, roundTo);
7
+ if (rounded === value)
8
+ return ["=", value.frenchify()];
9
+ return ["\\approx", rounded.frenchify()];
10
+ };
11
+ exports.approxOrEqual = approxOrEqual;
@@ -0,0 +1,2 @@
1
+ export declare const variance: (arr: number[]) => number;
2
+ //# sourceMappingURL=variance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variance.d.ts","sourceRoot":"","sources":["../../src/utils/variance.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,QAAS,MAAM,EAAE,WAMrC,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.variance = void 0;
4
+ const average_1 = require("./average");
5
+ const variance = (arr) => {
6
+ if (!arr.length)
7
+ return 0;
8
+ const avg = (0, average_1.average)(arr);
9
+ const n = arr.length;
10
+ return arr.reduce((acc, curr) => acc + (curr - avg) ** 2) / n;
11
+ };
12
+ exports.variance = variance;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "math-exercises",
3
- "version": "2.2.71",
3
+ "version": "2.2.72",
4
4
  "description": "Math exercises generator for middle school and high school",
5
5
  "main": "lib/index.js",
6
6
  "files": [