math-exercises 2.0.35 → 2.0.36

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.
@@ -27,7 +27,7 @@ const getFactorizedFormFromRootsQuestion = () => {
27
27
  const answerTex = answer.toTex();
28
28
  const question = {
29
29
  answer: answerTex,
30
- instruction: `Soit $f$ un polynôme du second degré avec $a = ${a}$ et qui a ${roots.length === 1
30
+ instruction: `Soit $f(x) = ax^2 + bx + c$ un polynôme du second degré avec $a = ${a}$ et qui a ${roots.length === 1
31
31
  ? `une racine : $${roots[0]}$`
32
32
  : `deux racines : $${roots[0]}$ et $${roots[1]}$`}. Déterminer la forme factorisée de $f$.`,
33
33
  keys: ["x"],
@@ -12,4 +12,6 @@ export * from "./secondDegreeInequation";
12
12
  export * from "./rootsReading";
13
13
  export * from "./factorizedFormFromRoots";
14
14
  export * from "./summitReading";
15
+ export * from "./summitAbscissFromRoots";
16
+ export * from "./summitAbscissFromDevForm";
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/trinoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/trinoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
@@ -28,3 +28,5 @@ __exportStar(require("./secondDegreeInequation"), exports);
28
28
  __exportStar(require("./rootsReading"), exports);
29
29
  __exportStar(require("./factorizedFormFromRoots"), exports);
30
30
  __exportStar(require("./summitReading"), exports);
31
+ __exportStar(require("./summitAbscissFromRoots"), exports);
32
+ __exportStar(require("./summitAbscissFromDevForm"), exports);
@@ -0,0 +1,9 @@
1
+ import { MathExercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ a: number;
4
+ b: number;
5
+ c: number;
6
+ };
7
+ export declare const summitAbscissFromDevForm: MathExercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=summitAbscissFromDevForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summitAbscissFromDevForm.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/trinoms/summitAbscissFromDevForm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EASb,MAAM,0BAA0B,CAAC;AAOlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA8CF,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,WAAW,CAc9D,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.summitAbscissFromDevForm = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const rational_1 = require("../../../math/numbers/rationals/rational");
7
+ const trinom_1 = require("../../../math/polynomials/trinom");
8
+ const randint_1 = require("../../../math/utils/random/randint");
9
+ const getSummitAbscissFromDevFormQuestion = () => {
10
+ const trinom = trinom_1.TrinomConstructor.random();
11
+ const alpha = trinom.getAlphaNode();
12
+ const answer = alpha.toTex();
13
+ const question = {
14
+ answer,
15
+ instruction: `Soit $f(x) = ${trinom
16
+ .toTree()
17
+ .toTex()}$ une fonction polynôme du second degré. Quelle est l'abscisse du sommet de la parabole représentant $f$ ?`,
18
+ keys: [],
19
+ answerFormat: "tex",
20
+ identifiers: { a: trinom.a, b: trinom.b, c: trinom.c },
21
+ };
22
+ return question;
23
+ };
24
+ const getPropositions = (n, { answer, a, b, c }) => {
25
+ const propositions = [];
26
+ (0, exercise_1.addValidProp)(propositions, answer);
27
+ (0, exercise_1.tryToAddWrongProp)(propositions, new rational_1.Rational(-b, a).simplify().toTree().toTex());
28
+ (0, exercise_1.tryToAddWrongProp)(propositions, new rational_1.Rational(b, a).simplify().toTree().toTex());
29
+ while (propositions.length < n) {
30
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randint_1.randint)(-10, 10) + "");
31
+ }
32
+ return (0, exercise_1.shuffleProps)(propositions, n);
33
+ };
34
+ const isAnswerValid = (ans, { a, b, c }) => {
35
+ const node = new rational_1.Rational(-b, 2 * a).simplify().toTree();
36
+ const texs = node.toAllValidTexs({
37
+ allowFractionToDecimal: true,
38
+ allowMinusAnywhereInFraction: true,
39
+ });
40
+ return texs.includes(ans);
41
+ };
42
+ exports.summitAbscissFromDevForm = {
43
+ id: "summitAbscissFromDevForm",
44
+ connector: "=",
45
+ label: "Déterminer l'abscisse du sommet d'une parabole en connaissant la forme développée",
46
+ levels: ["1rePro", "1reSpé", "1reTech"],
47
+ isSingleStep: true,
48
+ sections: ["Second degré"],
49
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSummitAbscissFromDevFormQuestion, nb),
50
+ qcmTimer: 60,
51
+ freeTimer: 60,
52
+ getPropositions,
53
+ isAnswerValid,
54
+ };
@@ -0,0 +1,9 @@
1
+ import { MathExercise } from "../../../exercises/exercise";
2
+ type Identifiers = {
3
+ a: number;
4
+ b: number;
5
+ c: number;
6
+ };
7
+ export declare const summitAbscissFromRoots: MathExercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=summitAbscissFromRoots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summitAbscissFromRoots.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/trinoms/summitAbscissFromRoots.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EASb,MAAM,0BAA0B,CAAC;AAOlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAgDF,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,WAAW,CAc5D,CAAC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.summitAbscissFromRoots = void 0;
4
+ const exercise_1 = require("../../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
6
+ const rational_1 = require("../../../math/numbers/rationals/rational");
7
+ const trinom_1 = require("../../../math/polynomials/trinom");
8
+ const randint_1 = require("../../../math/utils/random/randint");
9
+ const getSummitAbscissFromRootsQuestion = () => {
10
+ const trinom = trinom_1.TrinomConstructor.randomNiceRoots(2);
11
+ const roots = trinom.getRoots();
12
+ console.log("roots", roots);
13
+ const answer = new rational_1.Rational(roots[0] + roots[1], 2)
14
+ .simplify()
15
+ .toTree()
16
+ .toTex();
17
+ const question = {
18
+ answer,
19
+ instruction: `Soit $f(x) = ax^2+bx+c$ une fonction polynôme du second degé, dont les racines sont $${roots[0]}$ et $${roots[1]}$. Quelle est l'abscisse du sommet de la parabole représentant $f$ ?`,
20
+ keys: [],
21
+ answerFormat: "tex",
22
+ identifiers: { a: trinom.a, b: trinom.b, c: trinom.c },
23
+ };
24
+ return question;
25
+ };
26
+ const getPropositions = (n, { answer, a, b, c }) => {
27
+ const propositions = [];
28
+ (0, exercise_1.addValidProp)(propositions, answer);
29
+ const roots = new trinom_1.Trinom(a, b, c).getRoots();
30
+ (0, exercise_1.tryToAddWrongProp)(propositions, roots[0] + roots[1] + "");
31
+ (0, exercise_1.tryToAddWrongProp)(propositions, new rational_1.Rational(roots[0] - roots[1], 2).simplify().toTree().toTex());
32
+ while (propositions.length < n) {
33
+ (0, exercise_1.tryToAddWrongProp)(propositions, (0, randint_1.randint)(-10, 11) + "");
34
+ }
35
+ return (0, exercise_1.shuffleProps)(propositions, n);
36
+ };
37
+ const isAnswerValid = (ans, { answer, a, b, c }) => {
38
+ const trinom = new trinom_1.Trinom(a, b, c);
39
+ console.log(ans, answer);
40
+ const node = trinom.getAlphaNode();
41
+ const texs = node.toAllValidTexs({
42
+ allowFractionToDecimal: true,
43
+ allowMinusAnywhereInFraction: true,
44
+ });
45
+ return texs.includes(ans);
46
+ };
47
+ exports.summitAbscissFromRoots = {
48
+ id: "summitAbscissFromRoots",
49
+ connector: "=",
50
+ label: "Déterminer l'abscisse du sommet d'une parabole en connaissant ses racines",
51
+ levels: ["1reSpé", "1rePro", "1reTech"],
52
+ isSingleStep: true,
53
+ sections: ["Second degré"],
54
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getSummitAbscissFromRootsQuestion, nb),
55
+ qcmTimer: 60,
56
+ freeTimer: 60,
57
+ getPropositions,
58
+ isAnswerValid,
59
+ };
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./matrixInversibilityDomain"), exports);
18
18
  __exportStar(require("./productCell"), exports);
19
+ // export * from "./matrixGeneralTerm";
@@ -0,0 +1,10 @@
1
+ import { MathExercise } from "../../exercises/exercise";
2
+ type Identifiers = {
3
+ n: number;
4
+ p: number;
5
+ alpha: number;
6
+ beta: number;
7
+ };
8
+ export declare const matrixGeneralTerm: MathExercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=matrixGeneralTerm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrixGeneralTerm.d.ts","sourceRoot":"","sources":["../../../src/exercises/matrices/matrixGeneralTerm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EASb,MAAM,0BAA0B,CAAC;AASlC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAsDF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAavD,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matrixGeneralTerm = void 0;
4
+ const exercise_1 = require("../../exercises/exercise");
5
+ const getDistinctQuestions_1 = require("../../exercises/utils/getDistinctQuestions");
6
+ const matrix_1 = require("../../math/matrices/matrix");
7
+ const randint_1 = require("../../math/utils/random/randint");
8
+ const addNode_1 = require("../../tree/nodes/operators/addNode");
9
+ const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
10
+ const variableNode_1 = require("../../tree/nodes/variables/variableNode");
11
+ const doWhile_1 = require("../../utils/doWhile");
12
+ //A d'ordre nxp avec a_(i,j) = alpha*i + beta*j
13
+ const getMatrixGeneralTermQuestion = () => {
14
+ const n = (0, randint_1.randint)(1, 5);
15
+ const p = (0, doWhile_1.doWhile)(() => (0, randint_1.randint)(1, 5), (res) => n === 1 && res === 1);
16
+ const alpha = (0, randint_1.randint)(-5, 6, [0]);
17
+ const beta = (0, randint_1.randint)(-5, 6, [0]);
18
+ const aij = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(alpha.toTree(), new variableNode_1.VariableNode("i")), new multiplyNode_1.MultiplyNode(beta.toTree(), new variableNode_1.VariableNode("j"))).simplify();
19
+ const elements = Array.from(Array(n), (_, rowIndex) => Array.from(Array(p), (__, colIndex) => (alpha * (rowIndex + 1) + beta * (colIndex + 1)).toTree()));
20
+ const matrix = new matrix_1.Matrix(elements);
21
+ const answer = matrix.toTex();
22
+ const question = {
23
+ answer,
24
+ instruction: `Soit $A = (a_{i,j})$ une matrice d'ordre $n \\times p$ telle que : $n = ${n}$, $p = ${p}$ et pour tout $1\\leq i \\leq n$ et $1\\leq j \\leq p$, $a_{i,j} = ${aij.toTex()}$. Quelle est l'expression de la matrice $A$ ? `,
25
+ keys: [],
26
+ answerFormat: "tex",
27
+ identifiers: { n, p, alpha, beta },
28
+ };
29
+ return question;
30
+ };
31
+ const getPropositions = (nb, { answer, n, p, alpha, beta }) => {
32
+ const propositions = [];
33
+ (0, exercise_1.addValidProp)(propositions, answer);
34
+ const transposedElements = Array.from(Array(p), (_, rowIndex) => Array.from(Array(n), (__, colIndex) => (alpha * (rowIndex + 1) + beta * (colIndex + 1)).toTree()));
35
+ const matrix = new matrix_1.Matrix(transposedElements);
36
+ (0, exercise_1.tryToAddWrongProp)(propositions, matrix.toTex());
37
+ while (propositions.length < nb) {
38
+ (0, exercise_1.tryToAddWrongProp)(propositions, matrix_1.MatrixConstructor.random(n, p).toTex());
39
+ }
40
+ return (0, exercise_1.shuffleProps)(propositions, nb);
41
+ };
42
+ const isAnswerValid = (ans, { answer }) => {
43
+ return ans === answer;
44
+ };
45
+ exports.matrixGeneralTerm = {
46
+ id: "matrixGeneralTerm",
47
+ label: "Déterminer l'expression d'une matrice",
48
+ levels: ["MathExp"],
49
+ isSingleStep: true,
50
+ sections: ["Matrices"],
51
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getMatrixGeneralTermQuestion, nb),
52
+ qcmTimer: 60,
53
+ freeTimer: 60,
54
+ getPropositions,
55
+ isAnswerValid,
56
+ answerType: "QCM",
57
+ };
@@ -29,7 +29,7 @@ const getProbaFromTableWithContextQuestion = () => {
29
29
  [event, proba] = (0, random_1.random)([
30
30
  ["une fille", [aTotal, total]],
31
31
  ["une élève qui porte des lunettes", [bTotal, total]],
32
- ["un garçons", [aBarreTotal, total]],
32
+ ["un garçon", [aBarreTotal, total]],
33
33
  ["une élève qui ne porte pas de lunettes", [bBarreTotal, total]],
34
34
  ]);
35
35
  break;
package/lib/index.d.ts CHANGED
@@ -486,6 +486,14 @@ declare const mathExercises: (import("./exercises/exercise").MathExercise<{
486
486
  a: number;
487
487
  b: number;
488
488
  c: number;
489
+ }> | import("./exercises/exercise").MathExercise<{
490
+ a: number;
491
+ b: number;
492
+ c: number;
493
+ }> | import("./exercises/exercise").MathExercise<{
494
+ a: number;
495
+ b: number;
496
+ c: number;
489
497
  }> | import("./exercises/exercise").MathExercise<{
490
498
  a: number;
491
499
  k: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,aAAa,CAAC;KAC7B;CACF;AA6CD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAtCnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+BE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA/BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+BE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA/BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+BE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAO4C,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,aAAa,CAAC;KAC7B;CACF;AA6CD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAtCnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+BE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA/BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+BE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA/BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+BE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAO4C,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { AlgebraicNode } from "../../tree/nodes/algebraicNode";
2
+ export declare abstract class MatrixConstructor {
3
+ static random(rows: number, cols: number): Matrix;
4
+ }
2
5
  export declare class Matrix {
3
6
  elements: AlgebraicNode[][];
4
7
  rows: number;
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/math/matrices/matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,qBAAa,MAAM;IACjB,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;gBACJ,QAAQ,EAAE,aAAa,EAAE,EAAE;IAKvC,WAAW;IAUX,KAAK;CAKN"}
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/math/matrices/matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAK/D,8BAAsB,iBAAiB;IACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAMzC;AACD,qBAAa,MAAM;IACjB,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;gBACJ,QAAQ,EAAE,aAAa,EAAE,EAAE;IAKvC,WAAW;IAUX,KAAK;CAUN"}
@@ -1,8 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Matrix = void 0;
3
+ exports.Matrix = exports.MatrixConstructor = void 0;
4
4
  const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
5
5
  const substractNode_1 = require("../../tree/nodes/operators/substractNode");
6
+ const randint_1 = require("../utils/random/randint");
7
+ class MatrixConstructor {
8
+ static random(rows, cols) {
9
+ const elts = Array.from(Array(rows), (_, rowIndex) => Array.from(Array(cols), (__, colIndex) => (0, randint_1.randint)(-10, 11).toTree()));
10
+ return new Matrix(elts);
11
+ }
12
+ }
13
+ exports.MatrixConstructor = MatrixConstructor;
6
14
  class Matrix {
7
15
  constructor(elements) {
8
16
  this.elements = elements;
@@ -17,7 +25,7 @@ class Matrix {
17
25
  }
18
26
  toTex() {
19
27
  return `\\begin{pmatrix}${this.elements
20
- .map((row) => `${row.map((cell) => cell.toTex()).join("&")} \\\\[6pt]`)
28
+ .map((row, index) => `${row.map((cell) => cell.toTex()).join("&")} ${index < this.elements.length - 1 ? "\\\\[6pt]" : ""}`)
21
29
  .join("")}\\end{pmatrix}`;
22
30
  }
23
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trinom.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/trinom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trinom.d.ts","sourceRoot":"","sources":["../../../src/math/polynomials/trinom.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,10 @@ class TrinomConstructor {
56
56
  return new Trinom(a, -2 * a * root, a * root ** 2);
57
57
  }
58
58
  else {
59
- return TrinomConstructor.randomFactorized();
59
+ const a = (0, randint_1.randint)(-9, 10, [0]);
60
+ const x1 = (0, randint_1.randint)(-9, 10, []);
61
+ const x2 = (0, randint_1.randint)(-9, 10, [x1]);
62
+ return new Trinom(a, -a * (x1 + x2), a * x1 * x2);
60
63
  }
61
64
  }
62
65
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "math-exercises",
3
- "version": "2.0.35",
3
+ "version": "2.0.36",
4
4
  "description": "Math exercises generator for middle school and high school",
5
5
  "main": "lib/index.js",
6
6
  "files": [