math-exercises 2.0.22 → 2.0.24

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 (41) hide show
  1. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +2 -2
  2. package/lib/exercises/calculLitteral/equation/fractionEquation.js +2 -2
  3. package/lib/exercises/equaDiff/equaDiffCheckSolutionFirstOrderTrinom.d.ts +1 -0
  4. package/lib/exercises/equaDiff/equaDiffCheckSolutionFirstOrderTrinom.d.ts.map +1 -0
  5. package/lib/exercises/equaDiff/equaDiffCheckSolutionFirstOrderTrinom.js +53 -0
  6. package/lib/exercises/functions/absolute/absoluteValueEquations.js +3 -3
  7. package/lib/exercises/functions/absolute/absoluteValueInequations.js +1 -1
  8. package/lib/exercises/functions/basics/graphicEquation.js +1 -1
  9. package/lib/exercises/functions/basics/graphicInequation.js +1 -1
  10. package/lib/exercises/functions/logarithm/log10Simplifying.d.ts.map +1 -1
  11. package/lib/exercises/functions/logarithm/log10Simplifying.js +2 -1
  12. package/lib/exercises/functions/logarithm/logSimplifiying.js +1 -1
  13. package/lib/exercises/functions/trinoms/niceRootsFromDevForm.js +2 -2
  14. package/lib/exercises/functions/trinoms/rootsFromDevForm.js +2 -2
  15. package/lib/exercises/functions/trinoms/rootsFromFactorizedForm.js +1 -1
  16. package/lib/exercises/functions/trinoms/secondDegreeInequation.js +1 -1
  17. package/lib/exercises/sets/intervals/intervalsIntersection.js +1 -1
  18. package/lib/exercises/sets/setBelonging.js +1 -1
  19. package/lib/exercises/squareRoots/squareRootEquation.js +3 -3
  20. package/lib/exercises/utils/keys/equationKeys.js +1 -1
  21. package/lib/exercises/utils/keys/inequationKeys.js +1 -1
  22. package/lib/geogebra/geogebraConstructor.d.ts +7 -0
  23. package/lib/geogebra/geogebraConstructor.d.ts.map +1 -0
  24. package/lib/geogebra/geogebraConstructor.js +15 -0
  25. package/lib/math/polynomials/trinom.js +1 -1
  26. package/lib/math/sets/emptySet.js +1 -1
  27. package/lib/math/sets/intervals/intervals.js +1 -1
  28. package/lib/math/utils/arithmetic/maxPowerDecomposition.d.ts +11 -0
  29. package/lib/math/utils/arithmetic/maxPowerDecomposition.d.ts.map +1 -0
  30. package/lib/math/utils/arithmetic/maxPowerDecomposition.js +26 -0
  31. package/lib/math/utils/arithmetic/primeDecomposition.d.ts +5 -0
  32. package/lib/math/utils/arithmetic/primeDecomposition.d.ts.map +1 -0
  33. package/lib/math/utils/arithmetic/primeDecomposition.js +22 -0
  34. package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
  35. package/lib/tree/nodes/functions/log10Node.js +13 -6
  36. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  37. package/lib/tree/nodes/functions/logNode.js +16 -9
  38. package/lib/tree/nodes/sets/discreteSetNode.js +1 -1
  39. package/lib/types/keyIds.d.ts +1 -1
  40. package/lib/types/keyIds.d.ts.map +1 -1
  41. package/package.json +1 -1
@@ -77,7 +77,7 @@ const getPropositions = (n, { answer, randNbr }) => {
77
77
  const tempAns = sqrt + (0, randint_1.randint)(-sqrt + 1, 7, [0]);
78
78
  (0, exercise_1.tryToAddWrongProp)(propositions, (0, coinFlip_1.coinFlip)()
79
79
  ? `S=\\left\\{-${tempAns};${tempAns}\\right\\}`
80
- : `S=\\emptyset`);
80
+ : `S=\\varnothing`);
81
81
  }
82
82
  }
83
83
  else {
@@ -92,7 +92,7 @@ const getPropositions = (n, { answer, randNbr }) => {
92
92
  const tempRadicand = radicand + (0, randint_1.randint)(-radicand + 1, 7, [0]);
93
93
  (0, exercise_1.tryToAddWrongProp)(propositions, (0, coinFlip_1.coinFlip)()
94
94
  ? `S=\\left\\{-${tempFactor}\\sqrt{${tempRadicand}};${tempFactor}\\sqrt{${tempRadicand}}\\right\\}`
95
- : `S=\\emptyset`);
95
+ : `S=\\varnothing`);
96
96
  }
97
97
  }
98
98
  return (0, exercise_1.shuffleProps)(propositions, n);
@@ -18,7 +18,7 @@ const getFractionEquation = () => {
18
18
  const polynome1 = new polynomial_1.Polynomial([b, a]);
19
19
  const polynome2 = new polynomial_1.Polynomial([d, c]);
20
20
  const answer = -d / c === -b / a
21
- ? `S=\\emptyset`
21
+ ? `S=\\varnothing`
22
22
  : `S=\\left\\{${new rational_1.Rational(-b, a)
23
23
  .simplify()
24
24
  .toTree()
@@ -35,7 +35,7 @@ const getFractionEquation = () => {
35
35
  "rbrace",
36
36
  "semicolon",
37
37
  "ou",
38
- "emptyset",
38
+ "varnothing",
39
39
  ],
40
40
  answerFormat: "tex",
41
41
  identifiers: { a, b, c, d },
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=equaDiffCheckSolutionFirstOrderTrinom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equaDiffCheckSolutionFirstOrderTrinom.d.ts","sourceRoot":"","sources":["../../../src/exercises/equaDiff/equaDiffCheckSolutionFirstOrderTrinom.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ // import {
3
+ // MathExercise,
4
+ // Proposition,
5
+ // QCMGenerator,
6
+ // Question,
7
+ // QuestionGenerator,
8
+ // VEA,
9
+ // addValidProp,
10
+ // shuffleProps,
11
+ // tryToAddWrongProp,
12
+ // } from "../../exercises/exercise";
13
+ // import { getDistinctQuestions } from "../../exercises/utils/getDistinctQuestions";
14
+ // import { TrinomConstructor } from "../../math/polynomials/trinom";
15
+ // type Identifiers = {};
16
+ // /**y = y' + dx^2+ex+f, alors y = ax^2+bx+c */
17
+ // const getEquaDiffCheckSolutionFirstOrderQuestion: QuestionGenerator<
18
+ // Identifiers
19
+ // > = () => {
20
+ // const trinom = TrinomConstructor.random();
21
+ // const d = trinom.a;
22
+ // const e = trinom.b - 2 * trinom.a;
23
+ // const f = trinom.c - trinom.b;
24
+ // const question: Question<Identifiers> = {
25
+ // answer,
26
+ // instruction: ``,
27
+ // keys: [],
28
+ // answerFormat: "tex",
29
+ // identifiers: {},
30
+ // };
31
+ // return question;
32
+ // };
33
+ // const getPropositions: QCMGenerator<Identifiers> = (n, { answer }) => {
34
+ // const propositions: Proposition[] = [];
35
+ // addValidProp(propositions, answer);
36
+ // while (propositions.length < n) {}
37
+ // return shuffleProps(propositions, n);
38
+ // };
39
+ // const isAnswerValid: VEA<Identifiers> = (ans, { answer }) => {};
40
+ // export const equaDiffCheckSolutionFirstOrder: MathExercise<Identifiers> = {
41
+ // id: "equaDiffCheckSolutionFirstOrder",
42
+ // connector: "",
43
+ // label: "",
44
+ // levels: [],
45
+ // isSingleStep: true,
46
+ // sections: [],
47
+ // generator: (nb: number) =>
48
+ // getDistinctQuestions(getEquaDiffCheckSolutionFirstOrderQuestion, nb),
49
+ // qcmTimer: 60,
50
+ // freeTimer: 60,
51
+ // getPropositions,
52
+ // isAnswerValid,
53
+ // };
@@ -18,12 +18,12 @@ const getAbsoluteValueEquationsQuestion = () => {
18
18
  const answer = a === 0
19
19
  ? `S=\\left\\{${b}\\right\\}`
20
20
  : a < 0
21
- ? `S=\\emptyset`
21
+ ? `S=\\varnothing`
22
22
  : `S=\\left\\{${b - a};${b + a}\\right\\}`;
23
23
  const question = {
24
24
  answer: answer,
25
25
  instruction: `Résoudre l'équation $|${poly.toTree().toTex()}| = ${a}$.`,
26
- keys: ["S", "equal", "emptyset", "lbrace", "semicolon", "rbrace"],
26
+ keys: ["S", "equal", "varnothing", "lbrace", "semicolon", "rbrace"],
27
27
  answerFormat: "tex",
28
28
  identifiers: { a, b },
29
29
  };
@@ -37,7 +37,7 @@ const getPropositions = (n, { answer, a, b }) => {
37
37
  (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\left\\{${b + a}\\right\\}`);
38
38
  }
39
39
  else if (a === 0) {
40
- (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\emptyset`);
40
+ (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\varnothing`);
41
41
  }
42
42
  else if (a > 0) {
43
43
  (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\left\\{${b + a}\\right\\}`);
@@ -25,7 +25,7 @@ const getAbsoluteValueInequationsQuestion = () => {
25
25
  "lbracket",
26
26
  "semicolon",
27
27
  "rbracket",
28
- "emptyset",
28
+ "varnothing",
29
29
  "x",
30
30
  "leq",
31
31
  "geq",
@@ -73,7 +73,7 @@ const getGraphicEquationQuestion = () => {
73
73
  const getPropositions = (n, { answer }) => {
74
74
  const propositions = [];
75
75
  (0, exercise_1.addValidProp)(propositions, answer);
76
- (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\emptyset`);
76
+ (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\varnothing`);
77
77
  while (propositions.length < n) {
78
78
  const nbs = [];
79
79
  const nbSol = (0, randint_1.randint)(2, 4);
@@ -114,7 +114,7 @@ const getGraphicInequationQuestion = () => {
114
114
  const getPropositions = (n, { answer, intervals, splinePoints, yValue }) => {
115
115
  const propositions = [];
116
116
  (0, exercise_1.addValidProp)(propositions, answer);
117
- (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\emptyset`);
117
+ (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\varnothing`);
118
118
  (0, exercise_1.tryToAddWrongProp)(propositions, `S=${new intervalNode_1.IntervalNode(new numberNode_1.NumberNode(splinePoints[0][0]), new numberNode_1.NumberNode(yValue), intervalNode_1.ClosureType.FF).toTex()}`);
119
119
  while (propositions.length < n) {
120
120
  const a = (0, randint_1.randint)(-9, 3);
@@ -1 +1 @@
1
- {"version":3,"file":"log10Simplifying.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/logarithm/log10Simplifying.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EASb,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAsFF,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,WAAW,CAgBzD,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAgBvD,CAAC"}
1
+ {"version":3,"file":"log10Simplifying.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/logarithm/log10Simplifying.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EASb,MAAM,0BAA0B,CAAC;AAalC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AA0FF,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,WAAW,CAgBzD,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAgBvD,CAAC"}
@@ -15,6 +15,7 @@ const operatorComposition_1 = require("../../../tree/utilities/operatorCompositi
15
15
  const random_1 = require("../../../utils/random");
16
16
  const getLog10SumSimplifyingQuestion = (opts) => {
17
17
  const nb = (0, randint_1.randint)(2, 10);
18
+ const trueNb = [2, 4, 8].includes(nb) ? 2 : [3, 9].includes(nb) ? 3 : nb;
18
19
  const nbTerms = (0, randint_1.randint)(2, 4);
19
20
  const powers = [];
20
21
  const signs = [];
@@ -36,7 +37,7 @@ const getLog10SumSimplifyingQuestion = (opts) => {
36
37
  const answer = statement.simplify();
37
38
  const question = {
38
39
  answer: answer.toTex(),
39
- instruction: `Simplifier le plus possible l'expression suivante : $${statement.toTex()}$`,
40
+ instruction: `Exprimer le nombre suivant sous la forme $a${opts?.isLog10 ? "\\log" : "\\ln"}\\left(${trueNb}\\right)$ : $\\newline ${statement.toTex()}$`,
40
41
  keys: [opts?.isLog10 ? "log" : "ln"],
41
42
  answerFormat: "tex",
42
43
  identifiers: { nb, powers, signs, isLog10: opts?.isLog10 ?? false },
@@ -31,7 +31,7 @@ const getExpSimplifiying = () => {
31
31
  }
32
32
  const answer = simplifiedExpression.toTex();
33
33
  const question = {
34
- instruction: `Simplifier l'expression suivante : $${expression.toTex()}$.`,
34
+ instruction: `Ecrire le nombre suivant sous la forme $\\ln\\left(a\\right)$ : $\\newline ${expression.toTex()}$.`,
35
35
  answer,
36
36
  keys: ["ln"],
37
37
  answerFormat: "tex",
@@ -16,7 +16,7 @@ const getRootsFromDevFormQuestion = () => {
16
16
  instruction: `Soit $f(x) = ${trinom
17
17
  .toTree()
18
18
  .toTex()}$. Résoudre l'équation $f(x) = 0$.`,
19
- keys: ["S", "equal", "lbrace", "semicolon", "rbrace", "emptyset"],
19
+ keys: ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"],
20
20
  identifiers: { a: trinom.a, b: trinom.b, c: trinom.c },
21
21
  answerFormat: "tex",
22
22
  };
@@ -25,7 +25,7 @@ const getRootsFromDevFormQuestion = () => {
25
25
  const getPropositions = (n, { answer }) => {
26
26
  const propositions = [];
27
27
  (0, exercise_1.addValidProp)(propositions, answer);
28
- (0, exercise_1.tryToAddWrongProp)(propositions, "S=\\emptyset");
28
+ (0, exercise_1.tryToAddWrongProp)(propositions, "S=\\varnothing");
29
29
  while (propositions.length < n) {
30
30
  let wrongX1 = (0, randint_1.randint)(-19, 0);
31
31
  let wrongX2 = (0, randint_1.randint)(0, 20);
@@ -16,7 +16,7 @@ const getRootsFromDevFormQuestion = () => {
16
16
  instruction: `Soit $f(x) = ${trinom
17
17
  .toTree()
18
18
  .toTex()}$. Résoudre l'équation $f(x) = 0$.`,
19
- keys: ["S", "equal", "lbrace", "semicolon", "rbrace", "emptyset"],
19
+ keys: ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"],
20
20
  answerFormat: "tex",
21
21
  identifiers: { a: trinom.a, b: trinom.b, c: trinom.c },
22
22
  };
@@ -25,7 +25,7 @@ const getRootsFromDevFormQuestion = () => {
25
25
  const getPropositions = (n, { answer }) => {
26
26
  const propositions = [];
27
27
  (0, exercise_1.addValidProp)(propositions, answer);
28
- (0, exercise_1.tryToAddWrongProp)(propositions, "S=\\emptyset");
28
+ (0, exercise_1.tryToAddWrongProp)(propositions, "S=\\varnothing");
29
29
  while (propositions.length < n) {
30
30
  let wrongX1 = (0, randint_1.randint)(-19, 0);
31
31
  let wrongX2 = (0, randint_1.randint)(0, 20);
@@ -18,7 +18,7 @@ const getRootsFromFactorizedFormQuestion = () => {
18
18
  instruction: `Soit $f(x) = ${trinom
19
19
  .getFactorizedForm()
20
20
  .toTex()}$. Résoudre l'équation $f(x) = 0$.`,
21
- keys: ["S", "equal", "lbrace", "semicolon", "rbrace", "emptyset"],
21
+ keys: ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"],
22
22
  answerFormat: "tex",
23
23
  identifiers: { a: trinom.a, b: trinom.b, c: trinom.c },
24
24
  };
@@ -52,7 +52,7 @@ const getSecondDegreeInequationQuestion = () => {
52
52
  "rbracket",
53
53
  "cup",
54
54
  "infty",
55
- "emptyset",
55
+ "varnothing",
56
56
  ],
57
57
  answerFormat: "tex",
58
58
  identifiers: {
@@ -14,7 +14,7 @@ const getIntervalsIntersectionQuestion = () => {
14
14
  instruction: `Soit $I = ${int1.toTex()}$ et $J = ${int2.toTex()}$. Déterminer $I\\cap J$.`,
15
15
  keys: [
16
16
  "infty",
17
- "emptyset",
17
+ "varnothing",
18
18
  "lbracket",
19
19
  "rbracket",
20
20
  "semicolon",
@@ -42,7 +42,7 @@ const getSetBelongingQuestion = () => {
42
42
  answer,
43
43
  instruction: `Donner le plus petit ensemble auquel le nombre $${nb}$ appartient.`,
44
44
  keys: [
45
- "emptyset",
45
+ "varnothing",
46
46
  "naturals",
47
47
  "integers",
48
48
  "decimals",
@@ -10,11 +10,11 @@ const discreteSetNode_1 = require("../../tree/nodes/sets/discreteSetNode");
10
10
  const shuffle_1 = require("../../utils/shuffle");
11
11
  const getSquareRootEquationQuestion = () => {
12
12
  const k = Math.random() < 0.2 ? (0, randint_1.randint)(-20, 0) : (0, randint_1.randint)(0, 11);
13
- const answer = k < 0 ? "S=\\emptyset" : `S=\\left\\{${k ** 2}\\right\\}`;
13
+ const answer = k < 0 ? "S=\\varnothing" : `S=\\left\\{${k ** 2}\\right\\}`;
14
14
  const question = {
15
15
  answer: answer,
16
16
  instruction: `Résoudre l'équation suivante : $\\sqrt x = ${k}$`,
17
- keys: ["S", "equal", "lbrace", "semicolon", "rbrace", "emptyset"],
17
+ keys: ["S", "equal", "lbrace", "semicolon", "rbrace", "varnothing"],
18
18
  answerFormat: "tex",
19
19
  identifiers: { k },
20
20
  };
@@ -24,7 +24,7 @@ const getPropositions = (n, { answer, k }) => {
24
24
  const propositions = [];
25
25
  (0, exercise_1.addValidProp)(propositions, answer);
26
26
  if (k >= 0)
27
- (0, exercise_1.tryToAddWrongProp)(propositions, "S=\\emptyset");
27
+ (0, exercise_1.tryToAddWrongProp)(propositions, "S=\\varnothing");
28
28
  if (Math.sqrt(k) !== k ** 2)
29
29
  (0, exercise_1.tryToAddWrongProp)(propositions, `S=\\left\\{\\sqrt{${k}}\\right\\}`);
30
30
  while (propositions.length < n) {
@@ -8,5 +8,5 @@ exports.equationKeys = [
8
8
  "lbrace",
9
9
  "semicolon",
10
10
  "rbrace",
11
- "emptyset",
11
+ "varnothing",
12
12
  ];
@@ -13,5 +13,5 @@ exports.inequationKeys = [
13
13
  "semicolon",
14
14
  "rbracket",
15
15
  "infty",
16
- "emptyset",
16
+ "varnothing",
17
17
  ];
@@ -0,0 +1,7 @@
1
+ export declare class GeogebraConstructor {
2
+ commands: string[];
3
+ constructor();
4
+ addCommand(...s: string[]): void;
5
+ getCommands(): string[];
6
+ }
7
+ //# sourceMappingURL=geogebraConstructor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geogebraConstructor.d.ts","sourceRoot":"","sources":["../../src/geogebra/geogebraConstructor.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAM;;IAIxB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE;IAGzB,WAAW;CAGZ"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeogebraConstructor = void 0;
4
+ class GeogebraConstructor {
5
+ constructor() {
6
+ this.commands = [];
7
+ }
8
+ addCommand(...s) {
9
+ this.commands.push(...s);
10
+ }
11
+ getCommands() {
12
+ return this.commands;
13
+ }
14
+ }
15
+ exports.GeogebraConstructor = GeogebraConstructor;
@@ -119,7 +119,7 @@ class Trinom extends polynomial_1.Polynomial {
119
119
  getRootsEquationSolutionTex() {
120
120
  const roots = this.getRootsNode();
121
121
  if (!roots.length)
122
- return `S=\\emptyset`;
122
+ return `S=\\varnothing`;
123
123
  if (roots.length === 1)
124
124
  return `S=\\left\\{${roots[0].toTex()}\\right\\}`;
125
125
  return `S=\\left\\{${roots[0].toTex()};${roots[1].toTex()}\\right\\}`;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  // import { MathSetInterface } from "./mathSetInterface";
3
3
  // export abstract class EmptySet implements MathSetInterface {
4
- // tex: string = "\\emptyset";
4
+ // tex: string = "\\varnothing";
5
5
  // getRandomElement = () => null;
6
6
  // }
@@ -170,7 +170,7 @@ class Interval {
170
170
  (this.rightBracket === "[" || interval.leftBracket === "]")) ||
171
171
  (a === d && (interval.rightBracket === "[" || this.leftBracket === "]"));
172
172
  if (isDisjoint) {
173
- return new mathSet_1.MathSet("\\emptyset", () => null);
173
+ return new mathSet_1.MathSet("\\varnothing", () => null);
174
174
  }
175
175
  const winningLeftBracket = (brack1, brack2) => brack1 === "]" || brack2 === "]" ? "]" : "[";
176
176
  const winningRightBracket = (brack1, brack2) => brack1 === "[" || brack2 === "[" ? "[" : "]";
@@ -0,0 +1,11 @@
1
+ /**
2
+ *
3
+ * @param n
4
+ * eg for n = 36 will return 6^2
5
+ * for n = 12 will return 2^2*3
6
+ */
7
+ export declare const maxPowerDecomposition: (n: number) => {
8
+ value: number;
9
+ power: number;
10
+ }[];
11
+ //# sourceMappingURL=maxPowerDecomposition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maxPowerDecomposition.d.ts","sourceRoot":"","sources":["../../../../src/math/utils/arithmetic/maxPowerDecomposition.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,MAAO,MAAM;WAEzB,MAAM;WAAS,MAAM;GAW1C,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maxPowerDecomposition = void 0;
4
+ const primeDecomposition_1 = require("./primeDecomposition");
5
+ /**
6
+ *
7
+ * @param n
8
+ * eg for n = 36 will return 6^2
9
+ * for n = 12 will return 2^2*3
10
+ */
11
+ const maxPowerDecomposition = (n) => {
12
+ const decomposition = (0, primeDecomposition_1.primeDecomposition)(n);
13
+ const res = [];
14
+ for (const item of decomposition) {
15
+ const { value, power } = item;
16
+ const matchingPower = res.find((el) => el.power === power);
17
+ if (matchingPower) {
18
+ matchingPower.value *= value;
19
+ }
20
+ else {
21
+ res.push(item);
22
+ }
23
+ }
24
+ return res;
25
+ };
26
+ exports.maxPowerDecomposition = maxPowerDecomposition;
@@ -0,0 +1,5 @@
1
+ export declare const primeDecomposition: (n: number) => {
2
+ value: number;
3
+ power: number;
4
+ }[];
5
+ //# sourceMappingURL=primeDecomposition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primeDecomposition.d.ts","sourceRoot":"","sources":["../../../../src/math/utils/arithmetic/primeDecomposition.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,MAAO,MAAM;WAEtB,MAAM;WAAS,MAAM;GAa1C,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.primeDecomposition = void 0;
4
+ const primeFactors_1 = require("./primeFactors");
5
+ const primeDecomposition = (n) => {
6
+ const factors = (0, primeFactors_1.primeFactors)(n);
7
+ const res = [];
8
+ for (const factor of factors) {
9
+ const data = res.find((el) => el.value === factor);
10
+ if (data) {
11
+ data.power++;
12
+ }
13
+ else {
14
+ res.push({
15
+ value: factor,
16
+ power: 1,
17
+ });
18
+ }
19
+ }
20
+ return res;
21
+ };
22
+ exports.primeDecomposition = primeDecomposition;
@@ -1 +1 @@
1
- {"version":3,"file":"log10Node.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/log10Node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AACD,qBAAa,SAAU,YAAW,YAAY;IAC5C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAQpD,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,aAAa;IA0BzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"log10Node.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/log10Node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AACD,qBAAa,SAAU,YAAW,YAAY;IAC5C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAQpD,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,aAAa;IAgCzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -9,7 +9,7 @@ const numberNode_1 = require("../numbers/numberNode");
9
9
  const isInt_1 = require("../../../utils/isInt");
10
10
  const powerNode_1 = require("../operators/powerNode");
11
11
  const multiplyNode_1 = require("../operators/multiplyNode");
12
- const primeFactors_1 = require("../../../math/utils/arithmetic/primeFactors");
12
+ const maxPowerDecomposition_1 = require("../../../math/utils/arithmetic/maxPowerDecomposition");
13
13
  function isLog10Node(a) {
14
14
  return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.log10;
15
15
  }
@@ -58,11 +58,18 @@ class Log10Node {
58
58
  if ((0, isInt_1.isInt)(log10))
59
59
  return new numberNode_1.NumberNode(log10);
60
60
  if ((0, isInt_1.isInt)(value)) {
61
- const factors = (0, primeFactors_1.primeFactors)(value);
62
- if (factors.length === 1)
63
- return this; //isPrime
64
- if (factors.every((nb) => nb === factors[0])) {
65
- return new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(factors.length), new Log10Node(new numberNode_1.NumberNode(factors[0]))).simplify();
61
+ const decomposition = (0, maxPowerDecomposition_1.maxPowerDecomposition)(value);
62
+ if (decomposition.length === 1) {
63
+ const el = decomposition[0];
64
+ if (el.power === 1)
65
+ return this; //isPrime
66
+ else
67
+ return new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(el.power), new Log10Node(new numberNode_1.NumberNode(el.value)));
68
+ }
69
+ else {
70
+ //! things like log(6) will return themselves
71
+ //! even true for log(12). Should they be simplified into 2ln(2)+ln(3) ?
72
+ return new Log10Node(simplifiedChild);
66
73
  }
67
74
  }
68
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/logNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAQpD,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,aAAa;IA6BzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"logNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/logNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAQpD,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,IAAI,aAAa;IAmCzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -9,8 +9,8 @@ const multiplyNode_1 = require("../operators/multiplyNode");
9
9
  const powerNode_1 = require("../operators/powerNode");
10
10
  const numberNode_1 = require("../numbers/numberNode");
11
11
  const isInt_1 = require("../../../utils/isInt");
12
- const primeFactors_1 = require("../../../math/utils/arithmetic/primeFactors");
13
12
  const expNode_1 = require("./expNode");
13
+ const maxPowerDecomposition_1 = require("../../../math/utils/arithmetic/maxPowerDecomposition");
14
14
  function isLogNode(a) {
15
15
  return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.log;
16
16
  }
@@ -55,15 +55,22 @@ class LogNode {
55
55
  const simplifiedChild = this.child.simplify();
56
56
  if ((0, numberNode_1.isNumberNode)(simplifiedChild)) {
57
57
  const value = simplifiedChild.value;
58
- const log = Math.log(value);
59
- if ((0, isInt_1.isInt)(log))
60
- return new numberNode_1.NumberNode(log);
58
+ const log10 = Math.log10(value);
59
+ if ((0, isInt_1.isInt)(log10))
60
+ return new numberNode_1.NumberNode(log10);
61
61
  if ((0, isInt_1.isInt)(value)) {
62
- const factors = (0, primeFactors_1.primeFactors)(value);
63
- if (factors.length === 1)
64
- return this; //isPrime
65
- if (factors.every((nb) => nb === factors[0])) {
66
- return new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(factors.length), new LogNode(new numberNode_1.NumberNode(factors[0]))).simplify();
62
+ const decomposition = (0, maxPowerDecomposition_1.maxPowerDecomposition)(value);
63
+ if (decomposition.length === 1) {
64
+ const el = decomposition[0];
65
+ if (el.power === 1)
66
+ return this; //isPrime
67
+ else
68
+ return new multiplyNode_1.MultiplyNode(new numberNode_1.NumberNode(el.power), new LogNode(new numberNode_1.NumberNode(el.value)));
69
+ }
70
+ else {
71
+ //! things like log(6) will return themselves
72
+ //! even true for log(12). Should they be simplified into 2ln(2)+ln(3) ?
73
+ return new LogNode(simplifiedChild);
67
74
  }
68
75
  }
69
76
  }
@@ -50,7 +50,7 @@ class DiscreteSetNode {
50
50
  }
51
51
  toTex() {
52
52
  if (!this.elements.length)
53
- return `\\emptyset`;
53
+ return `\\varnothing`;
54
54
  return `\\left\\{${this.elements
55
55
  .map((el) => el.toTex())
56
56
  .join(";")}\\right\\}`;
@@ -10,7 +10,7 @@ export type KeyId =
10
10
  /**operations */
11
11
  | "plus" | "minus" | "times" | "frac" | "obelus" | "sqrt" | "sqrtCub" | "square" | "cube" | "power" | "percent" | "leftParenthesis" | "rightParenthesis" | "equal" | "comma" | "semicolon" | "dot" | "sup" | "inf" | "geq" | "leq" | "approx" | "xsquare" | "xcube"
12
12
  /**sets */
13
- | "belongs" | "notin" | "cap" | "cup" | "lbrace" | "rbrace" | "lbracket" | "rbracket" | "emptyset" | "naturals" | "integers" | "rationals" | "decimals" | "reals" | "complex" | "ast" | "del" | "right" | "left" | "rightarrow" | "overrightarrow" | "infty"
13
+ | "belongs" | "notin" | "cap" | "cup" | "lbrace" | "rbrace" | "lbracket" | "rbracket" | "varnothing" | "naturals" | "integers" | "rationals" | "decimals" | "reals" | "complex" | "ast" | "del" | "right" | "left" | "rightarrow" | "overrightarrow" | "infty"
14
14
  /**fcts */
15
15
  | "log" | "ln" | "exp" | "epower" | "sin" | "cos" | "tan" | "arccos" | "arcsin" | "arctan" | "abs" | "fx"
16
16
  /**sequences */
@@ -1 +1 @@
1
- {"version":3,"file":"keyIds.d.ts","sourceRoot":"","sources":["../../src/types/keyIds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyIds.d.ts","sourceRoot":"","sources":["../../src/types/keyIds.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "math-exercises",
3
- "version": "2.0.22",
3
+ "version": "2.0.24",
4
4
  "description": "Math exercises generator for middle school and high school",
5
5
  "main": "lib/index.js",
6
6
  "files": [