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.
- package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.d.ts +10 -0
- package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.d.ts.map +1 -0
- package/lib/exercises/math/calculLitteral/distributivity/identitiesWithNonIntegers.js +138 -0
- package/lib/exercises/math/calculLitteral/distributivity/index.d.ts +1 -0
- package/lib/exercises/math/calculLitteral/distributivity/index.d.ts.map +1 -1
- package/lib/exercises/math/calculLitteral/distributivity/index.js +1 -0
- package/lib/exercises/math/probaStat/stats1var/index.d.ts +6 -0
- package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/stats1var/index.js +6 -0
- package/lib/exercises/math/probaStat/stats1var/interquartilesList.d.ts +7 -0
- package/lib/exercises/math/probaStat/stats1var/interquartilesList.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/stats1var/interquartilesList.js +93 -0
- package/lib/exercises/math/probaStat/stats1var/interquartilesTable.d.ts +8 -0
- package/lib/exercises/math/probaStat/stats1var/interquartilesTable.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/stats1var/interquartilesTable.js +98 -0
- package/lib/exercises/math/probaStat/stats1var/quartilesList.js +1 -1
- package/lib/exercises/math/probaStat/stats1var/standardDeviationList.d.ts +7 -0
- package/lib/exercises/math/probaStat/stats1var/standardDeviationList.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/stats1var/standardDeviationList.js +131 -0
- package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.d.ts +8 -0
- package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/stats1var/standardDeviationTable.js +144 -0
- package/lib/exercises/math/probaStat/stats1var/varianceList.d.ts +7 -0
- package/lib/exercises/math/probaStat/stats1var/varianceList.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/stats1var/varianceList.js +121 -0
- package/lib/exercises/math/probaStat/stats1var/varianceTable.d.ts +8 -0
- package/lib/exercises/math/probaStat/stats1var/varianceTable.d.ts.map +1 -0
- package/lib/exercises/math/probaStat/stats1var/varianceTable.js +133 -0
- package/lib/exercises/vea/sqrtVEA.d.ts +2 -1
- package/lib/exercises/vea/sqrtVEA.d.ts.map +1 -1
- package/lib/exercises/vea/sqrtVEA.js +6 -3
- package/lib/index.d.ts +19 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/math/utils/quartiles.d.ts +3 -0
- package/lib/math/utils/quartiles.d.ts.map +1 -0
- package/lib/math/utils/quartiles.js +47 -0
- package/lib/math/utils/standardDeviation.d.ts +3 -0
- package/lib/math/utils/standardDeviation.d.ts.map +1 -0
- package/lib/math/utils/standardDeviation.js +13 -0
- package/lib/math/utils/variance.d.ts +1 -0
- package/lib/math/utils/variance.d.ts.map +1 -1
- package/lib/math/utils/variance.js +9 -1
- package/lib/playground.d.ts.map +1 -1
- package/lib/tree/nodes/operators/addNode.js +1 -1
- package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
- package/lib/tree/nodes/operators/multiplyNode.js +8 -0
- package/lib/tree/nodes/polynomials/monomNode.d.ts.map +1 -1
- package/lib/tree/nodes/polynomials/monomNode.js +3 -1
- package/lib/tree/parsers/monomParser.d.ts.map +1 -1
- package/lib/tree/parsers/monomParser.js +25 -0
- package/lib/tree/parsers/polynomialParser.d.ts +3 -0
- package/lib/tree/parsers/polynomialParser.d.ts.map +1 -0
- package/lib/tree/parsers/polynomialParser.js +50 -0
- package/lib/utils/average.d.ts +1 -0
- package/lib/utils/average.d.ts.map +1 -1
- package/lib/utils/average.js +9 -1
- package/lib/utils/latex/approxOrEqual.d.ts +2 -0
- package/lib/utils/latex/approxOrEqual.d.ts.map +1 -0
- package/lib/utils/latex/approxOrEqual.js +11 -0
- package/lib/utils/variance.d.ts +2 -0
- package/lib/utils/variance.d.ts.map +1 -0
- package/lib/utils/variance.js +12 -0
- 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;
|
|
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,
|
|
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;
|
package/lib/utils/average.d.ts
CHANGED
|
@@ -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"}
|
package/lib/utils/average.js
CHANGED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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;
|