math-exercises 1.3.33 → 1.3.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.
Files changed (381) hide show
  1. package/README.md +73 -73
  2. package/lib/exercises/calcul/addAndSub.d.ts +6 -6
  3. package/lib/exercises/calcul/addAndSub.js +41 -41
  4. package/lib/exercises/calcul/addAndSubWithoutRelatives.d.ts +6 -6
  5. package/lib/exercises/calcul/addAndSubWithoutRelatives.js +51 -51
  6. package/lib/exercises/calcul/arithmetics/primeNumbers.d.ts +7 -0
  7. package/lib/exercises/calcul/arithmetics/primeNumbers.d.ts.map +1 -0
  8. package/lib/exercises/calcul/arithmetics/primeNumbers.js +48 -0
  9. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.d.ts +3 -3
  10. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.js +37 -37
  11. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.d.ts +3 -3
  12. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.js +34 -34
  13. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.d.ts +3 -3
  14. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.js +34 -34
  15. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.d.ts +3 -3
  16. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.js +69 -69
  17. package/lib/exercises/calcul/fractions/fractionsDivision.d.ts +3 -3
  18. package/lib/exercises/calcul/fractions/fractionsDivision.js +31 -31
  19. package/lib/exercises/calcul/fractions/fractionsProduct.d.ts +3 -3
  20. package/lib/exercises/calcul/fractions/fractionsProduct.js +30 -30
  21. package/lib/exercises/calcul/fractions/fractionsSum.d.ts +3 -3
  22. package/lib/exercises/calcul/fractions/fractionsSum.js +30 -30
  23. package/lib/exercises/calcul/fractions/simplifyFraction.d.ts +3 -3
  24. package/lib/exercises/calcul/fractions/simplifyFraction.js +26 -26
  25. package/lib/exercises/calcul/mentalCaluls.ts/mentalAddAndSub.d.ts +3 -3
  26. package/lib/exercises/calcul/mentalCaluls.ts/mentalAddAndSub.js +46 -46
  27. package/lib/exercises/calcul/mentalCaluls.ts/mentalDivisions.d.ts +3 -3
  28. package/lib/exercises/calcul/mentalCaluls.ts/mentalDivisions.js +64 -64
  29. package/lib/exercises/calcul/mentalCaluls.ts/mentalMultiplications.d.ts +3 -3
  30. package/lib/exercises/calcul/mentalCaluls.ts/mentalMultiplications.js +51 -51
  31. package/lib/exercises/calcul/mentalCaluls.ts/mentalPercentage.d.ts +3 -3
  32. package/lib/exercises/calcul/mentalCaluls.ts/mentalPercentage.js +67 -67
  33. package/lib/exercises/calcul/operations/operationsPriorities.d.ts +10 -10
  34. package/lib/exercises/calcul/operations/operationsPriorities.js +100 -100
  35. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.d.ts +10 -10
  36. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.js +181 -181
  37. package/lib/exercises/calcul/rounding/rounding.d.ts +19 -19
  38. package/lib/exercises/calcul/rounding/rounding.js +87 -87
  39. package/lib/exercises/calculLitteral/distributivity/allIdentities.d.ts +3 -3
  40. package/lib/exercises/calculLitteral/distributivity/allIdentities.js +27 -27
  41. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.d.ts +3 -3
  42. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.js +32 -32
  43. package/lib/exercises/calculLitteral/distributivity/firstIdentity.d.ts +3 -3
  44. package/lib/exercises/calculLitteral/distributivity/firstIdentity.js +33 -33
  45. package/lib/exercises/calculLitteral/distributivity/secondIdentity.d.ts +3 -3
  46. package/lib/exercises/calculLitteral/distributivity/secondIdentity.js +34 -34
  47. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.d.ts +3 -3
  48. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.js +34 -34
  49. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.d.ts +3 -3
  50. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.js +33 -33
  51. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.d.ts +3 -3
  52. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +47 -47
  53. package/lib/exercises/calculLitteral/equation/equationType1Exercise.d.ts +6 -6
  54. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +39 -39
  55. package/lib/exercises/calculLitteral/equation/equationType2Exercise.d.ts +6 -6
  56. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +42 -42
  57. package/lib/exercises/calculLitteral/equation/equationType3Exercise.d.ts +6 -6
  58. package/lib/exercises/calculLitteral/equation/equationType3Exercise.js +43 -43
  59. package/lib/exercises/calculLitteral/equation/equationType4Exercise.d.ts +6 -6
  60. package/lib/exercises/calculLitteral/equation/equationType4Exercise.js +45 -45
  61. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.d.ts +3 -3
  62. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.js +30 -30
  63. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.d.ts +3 -3
  64. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.js +32 -32
  65. package/lib/exercises/calculLitteral/equation/fractionEquation.d.ts +3 -3
  66. package/lib/exercises/calculLitteral/equation/fractionEquation.js +39 -39
  67. package/lib/exercises/calculLitteral/equation/multiplicationEquation.d.ts +3 -3
  68. package/lib/exercises/calculLitteral/equation/multiplicationEquation.js +39 -39
  69. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.d.ts +3 -3
  70. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.js +34 -34
  71. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.d.ts +3 -3
  72. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.js +35 -35
  73. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.d.ts +3 -3
  74. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.js +34 -34
  75. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.d.ts +6 -6
  76. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.js +40 -40
  77. package/lib/exercises/conversion/aeraConversion.d.ts +3 -3
  78. package/lib/exercises/conversion/aeraConversion.js +32 -32
  79. package/lib/exercises/conversion/capacityConversion.d.ts +3 -3
  80. package/lib/exercises/conversion/capacityConversion.js +30 -30
  81. package/lib/exercises/conversion/lengthConversion.d.ts +3 -3
  82. package/lib/exercises/conversion/lengthConversion.js +30 -30
  83. package/lib/exercises/conversion/massConversion.d.ts +3 -3
  84. package/lib/exercises/conversion/massConversion.js +30 -30
  85. package/lib/exercises/conversion/volumeCapacityConversion.d.ts +3 -3
  86. package/lib/exercises/conversion/volumeCapacityConversion.js +47 -47
  87. package/lib/exercises/conversion/volumeConversion.d.ts +3 -3
  88. package/lib/exercises/conversion/volumeConversion.js +32 -32
  89. package/lib/exercises/derivation/derivative/constanteDerivative.d.ts +3 -3
  90. package/lib/exercises/derivation/derivative/constanteDerivative.js +27 -27
  91. package/lib/exercises/derivation/derivative/firstDegreeDerivative.d.ts +3 -3
  92. package/lib/exercises/derivation/derivative/firstDegreeDerivative.js +29 -29
  93. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.d.ts +3 -3
  94. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.js +27 -27
  95. package/lib/exercises/derivation/derivative/powerFunctionDerivative.d.ts +3 -3
  96. package/lib/exercises/derivation/derivative/powerFunctionDerivative.js +35 -35
  97. package/lib/exercises/derivation/derivative/rootFunctionDerivative.d.ts +3 -3
  98. package/lib/exercises/derivation/derivative/rootFunctionDerivative.js +40 -40
  99. package/lib/exercises/derivation/derivative/secondDegreeDerivative.d.ts +3 -3
  100. package/lib/exercises/derivation/derivative/secondDegreeDerivative.js +30 -30
  101. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.d.ts +3 -3
  102. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.js +33 -33
  103. package/lib/exercises/derivation/derivative/usualderivative.d.ts +3 -3
  104. package/lib/exercises/derivation/derivative/usualderivative.js +36 -36
  105. package/lib/exercises/exercise.d.ts +21 -21
  106. package/lib/exercises/exercise.js +7 -7
  107. package/lib/exercises/exercises.d.ts +1 -1
  108. package/lib/exercises/exercises.d.ts.map +1 -1
  109. package/lib/exercises/exercises.js +242 -224
  110. package/lib/exercises/geometry/cartesian/derivativeNumberReading.d.ts +3 -3
  111. package/lib/exercises/geometry/cartesian/derivativeNumberReading.js +51 -51
  112. package/lib/exercises/geometry/cartesian/derivativeNumberReading2.js +91 -91
  113. package/lib/exercises/geometry/cartesian/leadingCoefficient.d.ts +3 -3
  114. package/lib/exercises/geometry/cartesian/leadingCoefficient.js +60 -60
  115. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV1.d.ts +3 -3
  116. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV1.js +30 -30
  117. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV2.d.ts +3 -3
  118. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV2.js +29 -29
  119. package/lib/exercises/geometry/cartesian/midpoint.d.ts +3 -3
  120. package/lib/exercises/geometry/cartesian/midpoint.js +31 -31
  121. package/lib/exercises/geometry/euclidean/TriangleArea.d.ts +4 -4
  122. package/lib/exercises/geometry/euclidean/TriangleArea.d.ts.map +1 -1
  123. package/lib/exercises/geometry/euclidean/TriangleArea.js +53 -53
  124. package/lib/exercises/geometry/euclidean/circleArea.d.ts +4 -0
  125. package/lib/exercises/geometry/euclidean/circleArea.d.ts.map +1 -0
  126. package/lib/exercises/geometry/euclidean/circleArea.js +28 -0
  127. package/lib/exercises/geometry/euclidean/circleCircumference.d.ts +4 -0
  128. package/lib/exercises/geometry/euclidean/circleCircumference.d.ts.map +1 -0
  129. package/lib/exercises/geometry/euclidean/circleCircumference.js +28 -0
  130. package/lib/exercises/geometry/euclidean/pythagore.d.ts +3 -3
  131. package/lib/exercises/geometry/euclidean/pythagore.js +31 -31
  132. package/lib/exercises/geometry/euclidean/pythagoreCalcul.d.ts +3 -3
  133. package/lib/exercises/geometry/euclidean/pythagoreCalcul.js +60 -60
  134. package/lib/exercises/geometry/euclidean/rectangleArea.d.ts +4 -0
  135. package/lib/exercises/geometry/euclidean/rectangleArea.d.ts.map +1 -0
  136. package/lib/exercises/geometry/euclidean/rectangleArea.js +25 -0
  137. package/lib/exercises/geometry/euclidean/rectanglePerimeter.d.ts +4 -0
  138. package/lib/exercises/geometry/euclidean/rectanglePerimeter.d.ts.map +1 -0
  139. package/lib/exercises/geometry/euclidean/rectanglePerimeter.js +25 -0
  140. package/lib/exercises/geometry/euclidean/rightTriangleArea.d.ts +3 -3
  141. package/lib/exercises/geometry/euclidean/rightTriangleArea.js +39 -39
  142. package/lib/exercises/geometry/euclidean/squareArea.d.ts +4 -0
  143. package/lib/exercises/geometry/euclidean/squareArea.d.ts.map +1 -0
  144. package/lib/exercises/geometry/euclidean/squareArea.js +24 -0
  145. package/lib/exercises/geometry/euclidean/squarePerimeter.d.ts +4 -0
  146. package/lib/exercises/geometry/euclidean/squarePerimeter.d.ts.map +1 -0
  147. package/lib/exercises/geometry/euclidean/squarePerimeter.js +24 -0
  148. package/lib/exercises/geometry/euclidean/thales.d.ts +3 -3
  149. package/lib/exercises/geometry/euclidean/thales.js +67 -67
  150. package/lib/exercises/geometry/euclidean/thalesCalcul.d.ts +3 -3
  151. package/lib/exercises/geometry/euclidean/thalesCalcul.js +104 -104
  152. package/lib/exercises/geometry/euclidean/triangleAreaV2.d.ts +4 -0
  153. package/lib/exercises/geometry/euclidean/triangleAreaV2.d.ts.map +1 -0
  154. package/lib/exercises/geometry/euclidean/triangleAreaV2.js +42 -0
  155. package/lib/exercises/geometry/euclidean/trianglePerimeter.d.ts +4 -0
  156. package/lib/exercises/geometry/euclidean/trianglePerimeter.d.ts.map +1 -0
  157. package/lib/exercises/geometry/euclidean/trianglePerimeter.js +24 -0
  158. package/lib/exercises/geometry/euclidean/trigonometry.d.ts +3 -3
  159. package/lib/exercises/geometry/euclidean/trigonometry.js +55 -55
  160. package/lib/exercises/geometry/euclidean/trigonometryAngleCalcul.d.ts +3 -3
  161. package/lib/exercises/geometry/euclidean/trigonometryAngleCalcul.js +42 -42
  162. package/lib/exercises/geometry/euclidean/trigonometrySideCalcul.d.ts +3 -3
  163. package/lib/exercises/geometry/euclidean/trigonometrySideCalcul.js +52 -52
  164. package/lib/exercises/geometry/vectors/scalarProductViaCoords.d.ts +3 -3
  165. package/lib/exercises/geometry/vectors/scalarProductViaCoords.js +30 -30
  166. package/lib/exercises/geometry/vectors/scalarProductViaNorms.js +27 -27
  167. package/lib/exercises/percent/applyPercent.d.ts +3 -3
  168. package/lib/exercises/percent/applyPercent.js +41 -41
  169. package/lib/exercises/percent/averageEvolutionRate.d.ts +3 -3
  170. package/lib/exercises/percent/averageEvolutionRate.js +30 -30
  171. package/lib/exercises/percent/globalPercent.d.ts +3 -3
  172. package/lib/exercises/percent/globalPercent.js +44 -44
  173. package/lib/exercises/percent/reciprocalPercentage.d.ts +3 -3
  174. package/lib/exercises/percent/reciprocalPercentage.js +32 -32
  175. package/lib/exercises/powers/powersDivision.d.ts +7 -7
  176. package/lib/exercises/powers/powersDivision.js +46 -46
  177. package/lib/exercises/powers/powersOfTenToDecimal.d.ts +6 -6
  178. package/lib/exercises/powers/powersOfTenToDecimal.js +34 -34
  179. package/lib/exercises/powers/powersPower.d.ts +7 -7
  180. package/lib/exercises/powers/powersPower.js +45 -45
  181. package/lib/exercises/powers/powersProduct.d.ts +7 -7
  182. package/lib/exercises/powers/powersProduct.js +46 -46
  183. package/lib/exercises/powers/scientificToDecimal.d.ts +6 -6
  184. package/lib/exercises/powers/scientificToDecimal.js +39 -39
  185. package/lib/exercises/proba/conditionalProbability.d.ts +3 -3
  186. package/lib/exercises/proba/conditionalProbability.js +74 -74
  187. package/lib/exercises/proba/marginalAndConditionalFrequency.d.ts +3 -3
  188. package/lib/exercises/proba/marginalAndConditionalFrequency.js +81 -81
  189. package/lib/exercises/proba/probabilityTree.d.ts +3 -3
  190. package/lib/exercises/proba/probabilityTree.js +105 -105
  191. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.d.ts +3 -3
  192. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.js +31 -31
  193. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.d.ts +3 -3
  194. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.js +31 -31
  195. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.d.ts +3 -3
  196. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.js +31 -31
  197. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.d.ts +3 -3
  198. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.js +30 -30
  199. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts +3 -3
  200. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +30 -30
  201. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.d.ts +3 -3
  202. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.js +40 -40
  203. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.d.ts +3 -3
  204. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.js +36 -36
  205. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.d.ts +3 -3
  206. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.js +35 -35
  207. package/lib/exercises/sequences/geometric/geometricFindReason.d.ts +3 -3
  208. package/lib/exercises/sequences/geometric/geometricFindReason.js +31 -31
  209. package/lib/exercises/sequences/geometric/geometricReasonUsage.d.ts +3 -3
  210. package/lib/exercises/sequences/geometric/geometricReasonUsage.js +30 -30
  211. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts +7 -7
  212. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.js +30 -30
  213. package/lib/exercises/squareRoots/simpifySquareRoot.d.ts +3 -3
  214. package/lib/exercises/squareRoots/simpifySquareRoot.js +29 -29
  215. package/lib/exercises/trigonometry/mainRemarkableValues.d.ts +3 -3
  216. package/lib/exercises/trigonometry/mainRemarkableValues.js +30 -30
  217. package/lib/exercises/trigonometry/remarkableValues.d.ts +3 -3
  218. package/lib/exercises/trigonometry/remarkableValues.js +30 -30
  219. package/lib/exercises/utils/getDistinctQuestions.d.ts +3 -3
  220. package/lib/exercises/utils/getDistinctQuestions.d.ts.map +1 -1
  221. package/lib/exercises/utils/getDistinctQuestions.js +30 -28
  222. package/lib/index.d.ts +2 -2
  223. package/lib/index.js +6 -6
  224. package/lib/math/geometry/droite.d.ts +19 -19
  225. package/lib/math/geometry/droite.js +62 -62
  226. package/lib/math/geometry/point.d.ts +29 -29
  227. package/lib/math/geometry/point.js +55 -55
  228. package/lib/math/geometry/triangles.d.ts +53 -53
  229. package/lib/math/geometry/triangles.js +183 -183
  230. package/lib/math/geometry/vector.d.ts +15 -15
  231. package/lib/math/geometry/vector.js +31 -31
  232. package/lib/math/numbers/decimals/decimal.d.ts +24 -24
  233. package/lib/math/numbers/decimals/decimal.js +140 -140
  234. package/lib/math/numbers/epsilon.d.ts +1 -1
  235. package/lib/math/numbers/epsilon.js +10 -10
  236. package/lib/math/numbers/integer/integer.d.ts +14 -14
  237. package/lib/math/numbers/integer/integer.js +68 -68
  238. package/lib/math/numbers/integer/power.d.ts +13 -13
  239. package/lib/math/numbers/integer/power.js +52 -52
  240. package/lib/math/numbers/nombre.d.ts +13 -13
  241. package/lib/math/numbers/nombre.js +10 -10
  242. package/lib/math/numbers/rationals/rational.d.ts +25 -25
  243. package/lib/math/numbers/rationals/rational.js +113 -113
  244. package/lib/math/numbers/reals/real.d.ts +9 -9
  245. package/lib/math/numbers/reals/real.js +16 -16
  246. package/lib/math/numbers/reals/squareRoot.d.ts +18 -18
  247. package/lib/math/numbers/reals/squareRoot.js +63 -63
  248. package/lib/math/polynomials/affine.d.ts +15 -15
  249. package/lib/math/polynomials/affine.js +42 -42
  250. package/lib/math/polynomials/polynomial.d.ts +25 -25
  251. package/lib/math/polynomials/polynomial.js +131 -131
  252. package/lib/math/sequences/arithmeticSequence.js +1 -1
  253. package/lib/math/sequences/geometricSequence.d.ts +3 -3
  254. package/lib/math/sequences/geometricSequence.js +8 -8
  255. package/lib/math/sequences/sequence.d.ts +22 -22
  256. package/lib/math/sequences/sequence.js +21 -21
  257. package/lib/math/sets/discreteSet.d.ts +10 -10
  258. package/lib/math/sets/discreteSet.js +28 -28
  259. package/lib/math/sets/emptySet.js +6 -6
  260. package/lib/math/sets/intervals/intervals.d.ts +26 -26
  261. package/lib/math/sets/intervals/intervals.js +104 -104
  262. package/lib/math/sets/mathSet.d.ts +7 -7
  263. package/lib/math/sets/mathSet.js +10 -10
  264. package/lib/math/sets/mathSetInterface.d.ts +5 -5
  265. package/lib/math/sets/mathSetInterface.js +2 -2
  266. package/lib/math/trigonometry/remarkableValue.d.ts +10 -10
  267. package/lib/math/trigonometry/remarkableValue.js +29 -29
  268. package/lib/math/trigonometry/remarkableValues.d.ts +2 -2
  269. package/lib/math/trigonometry/remarkableValues.js +51 -51
  270. package/lib/math/utils/arithmetic/coprimesOf.d.ts +1 -1
  271. package/lib/math/utils/arithmetic/coprimesOf.js +13 -13
  272. package/lib/math/utils/arithmetic/dividersOf.d.ts +1 -1
  273. package/lib/math/utils/arithmetic/dividersOf.js +12 -12
  274. package/lib/math/utils/arithmetic/gcd.d.ts +1 -1
  275. package/lib/math/utils/arithmetic/gcd.js +7 -7
  276. package/lib/math/utils/arithmetic/isSquare.d.ts +1 -1
  277. package/lib/math/utils/arithmetic/isSquare.js +7 -7
  278. package/lib/math/utils/arithmetic/lcd.d.ts +1 -1
  279. package/lib/math/utils/arithmetic/lcd.js +12 -12
  280. package/lib/math/utils/arithmetic/nonCoprimesOf.d.ts +1 -1
  281. package/lib/math/utils/arithmetic/nonCoprimesOf.js +13 -13
  282. package/lib/math/utils/arithmetic/nonDividersOf.d.ts +1 -1
  283. package/lib/math/utils/arithmetic/nonDividersOf.js +14 -14
  284. package/lib/math/utils/arithmetic/primeFactors.d.ts +5 -5
  285. package/lib/math/utils/arithmetic/primeFactors.js +22 -22
  286. package/lib/math/utils/decimals/decimalPartLengthOf.d.ts +1 -1
  287. package/lib/math/utils/decimals/decimalPartLengthOf.js +14 -14
  288. package/lib/math/utils/random/randTupleInt.d.ts +13 -13
  289. package/lib/math/utils/random/randTupleInt.js +30 -30
  290. package/lib/math/utils/random/randint.d.ts +4 -4
  291. package/lib/math/utils/random/randint.js +18 -18
  292. package/lib/math/utils/round.d.ts +1 -1
  293. package/lib/math/utils/round.js +8 -8
  294. package/lib/server.d.ts +1 -1
  295. package/lib/server.js +53 -53
  296. package/lib/tree/nodes/functions/cosNode.d.ts +9 -9
  297. package/lib/tree/nodes/functions/cosNode.js +21 -21
  298. package/lib/tree/nodes/functions/functionNode.d.ts +14 -14
  299. package/lib/tree/nodes/functions/functionNode.js +20 -20
  300. package/lib/tree/nodes/functions/oppositeNode.d.ts +7 -7
  301. package/lib/tree/nodes/functions/oppositeNode.js +26 -26
  302. package/lib/tree/nodes/functions/sinNode.js +1 -1
  303. package/lib/tree/nodes/functions/sqrtNode.d.ts +8 -8
  304. package/lib/tree/nodes/functions/sqrtNode.js +18 -18
  305. package/lib/tree/nodes/node.d.ts +12 -12
  306. package/lib/tree/nodes/node.js +11 -11
  307. package/lib/tree/nodes/numbers/constantNode.d.ts +9 -9
  308. package/lib/tree/nodes/numbers/constantNode.js +18 -18
  309. package/lib/tree/nodes/numbers/numberNode.d.ts +10 -10
  310. package/lib/tree/nodes/numbers/numberNode.js +19 -19
  311. package/lib/tree/nodes/numbers/piNode.d.ts +2 -2
  312. package/lib/tree/nodes/numbers/piNode.js +5 -5
  313. package/lib/tree/nodes/operators/addNode.d.ts +7 -7
  314. package/lib/tree/nodes/operators/addNode.js +19 -19
  315. package/lib/tree/nodes/operators/divideNode.d.ts +11 -11
  316. package/lib/tree/nodes/operators/divideNode.js +34 -34
  317. package/lib/tree/nodes/operators/equalNode.d.ts +7 -7
  318. package/lib/tree/nodes/operators/equalNode.js +16 -16
  319. package/lib/tree/nodes/operators/fractionNode.d.ts +11 -11
  320. package/lib/tree/nodes/operators/fractionNode.js +20 -20
  321. package/lib/tree/nodes/operators/multiplyNode.d.ts +7 -7
  322. package/lib/tree/nodes/operators/multiplyNode.js +43 -43
  323. package/lib/tree/nodes/operators/operatorNode.d.ts +21 -21
  324. package/lib/tree/nodes/operators/operatorNode.js +35 -35
  325. package/lib/tree/nodes/operators/powerNode.d.ts +7 -7
  326. package/lib/tree/nodes/operators/powerNode.js +33 -33
  327. package/lib/tree/nodes/operators/substractNode.d.ts +7 -7
  328. package/lib/tree/nodes/operators/substractNode.js +24 -24
  329. package/lib/tree/nodes/variables/variableNode.d.ts +8 -8
  330. package/lib/tree/nodes/variables/variableNode.js +19 -19
  331. package/lib/tree/parsers/derivateParser.js +62 -62
  332. package/lib/tree/parsers/simplify.d.ts +2 -2
  333. package/lib/tree/parsers/simplify.js +52 -52
  334. package/lib/utils/arrayEqual.d.ts +1 -1
  335. package/lib/utils/arrayEqual.js +13 -13
  336. package/lib/utils/coinFlip.d.ts +1 -1
  337. package/lib/utils/coinFlip.js +7 -7
  338. package/lib/utils/random.d.ts +1 -1
  339. package/lib/utils/random.js +7 -7
  340. package/lib/utils/shuffle.d.ts +1 -1
  341. package/lib/utils/shuffle.js +15 -15
  342. package/package.json +50 -50
  343. package/lib/exercises/calcul/operationsPriorities.js +0 -88
  344. package/lib/exercises/derivation/derivative/affineDerivative.d.ts +0 -4
  345. package/lib/exercises/derivation/derivative/affineDerivative.d.ts.map +0 -1
  346. package/lib/exercises/derivation/derivative/affineDerivative.js +0 -27
  347. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts +0 -1
  348. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts.map +0 -1
  349. package/lib/exercises/derivation/derivative/thridDegreeDerivative.js +0 -1
  350. package/lib/geometry/point.js +0 -27
  351. package/lib/geometry/vector.js +0 -31
  352. package/lib/mathutils/arithmetic/coprimesOf.js +0 -13
  353. package/lib/mathutils/arithmetic/dividersOf.js +0 -12
  354. package/lib/mathutils/arithmetic/gcd.js +0 -7
  355. package/lib/mathutils/arithmetic/isSquare.js +0 -7
  356. package/lib/mathutils/arithmetic/lcd.js +0 -12
  357. package/lib/mathutils/arithmetic/nonCoprimesOf.js +0 -13
  358. package/lib/mathutils/arithmetic/nonDividersOf.js +0 -14
  359. package/lib/mathutils/arithmetic/primeFactors.js +0 -22
  360. package/lib/mathutils/decimals/decimalPartLengthOf.js +0 -14
  361. package/lib/mathutils/random/randTupleInt.js +0 -30
  362. package/lib/mathutils/random/randint.js +0 -18
  363. package/lib/mathutils/round.js +0 -8
  364. package/lib/numbers/decimals/decimal.js +0 -140
  365. package/lib/numbers/epsilon.js +0 -10
  366. package/lib/numbers/integer/integer.js +0 -68
  367. package/lib/numbers/integer/power.js +0 -52
  368. package/lib/numbers/nombre.js +0 -10
  369. package/lib/numbers/rationals/rational.js +0 -113
  370. package/lib/numbers/reals/real.js +0 -16
  371. package/lib/numbers/reals/squareRoot.js +0 -63
  372. package/lib/polynomials/affine.js +0 -42
  373. package/lib/polynomials/polynomial.js +0 -125
  374. package/lib/sets/discreteSet.js +0 -28
  375. package/lib/sets/emptySet.js +0 -6
  376. package/lib/sets/intervals/intervals.js +0 -108
  377. package/lib/sets/intervals/union.js +0 -1
  378. package/lib/sets/mathSet.js +0 -10
  379. package/lib/sets/mathSetInterface.js +0 -2
  380. package/lib/tree/parsers/latexParser.js +0 -110
  381. package/lib/utils/coin.js +0 -7
@@ -1,4 +1,4 @@
1
- import { Exercise, Question } from '../../../exercises/exercise';
2
- export declare const thales: Exercise;
3
- export declare function getThales(): Question;
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const thales: Exercise;
3
+ export declare function getThales(): Question;
4
4
  //# sourceMappingURL=thales.d.ts.map
@@ -1,67 +1,67 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getThales = exports.thales = void 0;
4
- const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
- const randint_1 = require("../../../math/utils/random/randint");
6
- exports.thales = {
7
- id: 'thales',
8
- connector: '=',
9
- instruction: '',
10
- label: "Ecrire l'égalité de Thalès",
11
- levels: ['5', '4', '3', '2'],
12
- isSingleStep: false,
13
- section: 'Géométrie euclidienne',
14
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThales, nb),
15
- };
16
- function getThales() {
17
- const vertices = [];
18
- const code = 65 + (0, randint_1.randint)(0, 22); // Générer un code de caractère majuscule aléatoire (A-Z)
19
- for (let i = 0; i < 5; i++)
20
- vertices.push(String.fromCharCode(code + i));
21
- const [xA, yA] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
22
- let xB, yB, xC, yC;
23
- let d1, d2; // distance entre le point A et B
24
- let theta = 0; // angle entre AB et AC
25
- do {
26
- [xB, yB, xC, yC] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
27
- d1 = Math.hypot(xB - xA, yB - yA); // Calculer la distance entre A et B
28
- d2 = Math.hypot(xC - xA, yC - yA); // Calculer la distance entre A et C
29
- theta = Math.acos(((xB - xA) * (xC - xA) + (yB - yA) * (yC - yA)) / (d1 * d2));
30
- } while (!theta || theta < 0.35 || theta > 2.1 || d1 / d2 > 1.3 || d1 / d2 < 0.7);
31
- const factor = (0, randint_1.randint)(-5, 6, [-2, -1, 0, 1, 2]) / 10; // facteur = AB/AE, Pour que l'affichage soit acceptable, les valeurs de factor sont +- 0.5 0.4 0.3
32
- const [xD, yD] = [xA + factor * (xB - xA), yA + factor * (yB - yA)];
33
- const [xE, yE] = [xA + factor * (xC - xA), yA + factor * (yC - yA)];
34
- const xMin = Math.min(xA, xB, xC, xD, xE);
35
- const xMax = Math.max(xA, xB, xC, xD, xE);
36
- const yMin = Math.min(yA, yB, yC, yD, yE);
37
- const yMax = Math.max(yA, yB, yC, yD, yE);
38
- const commands = [
39
- `${vertices[0]} = Point({${xA}, ${yA}})`,
40
- `${vertices[1]} = Point({${xB}, ${yB}})`,
41
- `${vertices[2]} = Point({${xC}, ${yC}})`,
42
- `${vertices[3]} = Point(${vertices[0]}, Vector(${factor}Vector(${vertices[0]},${vertices[1]})))`,
43
- `${vertices[4]} = Intersect(Line(${vertices[3]}, Line(${vertices[1]}, ${vertices[2]})) , Line(${vertices[0]}, ${vertices[2]}))`,
44
- `l = Segment(${vertices[0]}, ${vertices[1]})`,
45
- `i = Segment(${vertices[0]}, ${vertices[2]})`,
46
- `j = Segment(${vertices[1]}, ${vertices[2]})`,
47
- `k = Segment(${vertices[3]}, ${vertices[4]})`,
48
- `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[3]}))`,
49
- `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[4]}))`,
50
- `ShowAxes(false)`,
51
- `ShowGrid(false)`,
52
- `ShowLabel(${vertices[0]}, true)`,
53
- `ShowLabel(${vertices[1]}, true)`,
54
- `ShowLabel(${vertices[2]}, true)`,
55
- `ShowLabel(${vertices[3]}, true)`,
56
- `ShowLabel(${vertices[4]}, true)`,
57
- ];
58
- const question = {
59
- instruction: `En utilisant le théoreme de Thalès, Écrire l'égalité des quotients sachant que :$\\\\$ (${vertices[3]}${vertices[4]})//(${vertices[1]}${vertices[2]})`,
60
- answer: `\\frac{${vertices[0]}${vertices[3]}}{${vertices[0]}${vertices[1]}} = \\frac{${vertices[0]}${vertices[4]}}{${vertices[0]}${vertices[2]}} = \\frac{${vertices[3]}${vertices[4]}}{${vertices[1]}${vertices[2]}}`,
61
- keys: [...vertices, 'equal'],
62
- commands,
63
- coords: [xMin - 1, xMax + 1, yMin - 1, yMax + 1],
64
- };
65
- return question;
66
- }
67
- exports.getThales = getThales;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getThales = exports.thales = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const randint_1 = require("../../../math/utils/random/randint");
6
+ exports.thales = {
7
+ id: 'thales',
8
+ connector: '=',
9
+ instruction: '',
10
+ label: "Ecrire l'égalité de Thalès",
11
+ levels: ['5', '4', '3', '2'],
12
+ isSingleStep: false,
13
+ section: 'Géométrie euclidienne',
14
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThales, nb),
15
+ };
16
+ function getThales() {
17
+ const vertices = [];
18
+ const code = 65 + (0, randint_1.randint)(0, 22); // Générer un code de caractère majuscule aléatoire (A-Z)
19
+ for (let i = 0; i < 5; i++)
20
+ vertices.push(String.fromCharCode(code + i));
21
+ const [xA, yA] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
22
+ let xB, yB, xC, yC;
23
+ let d1, d2; // distance entre le point A et B
24
+ let theta = 0; // angle entre AB et AC
25
+ do {
26
+ [xB, yB, xC, yC] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
27
+ d1 = Math.hypot(xB - xA, yB - yA); // Calculer la distance entre A et B
28
+ d2 = Math.hypot(xC - xA, yC - yA); // Calculer la distance entre A et C
29
+ theta = Math.acos(((xB - xA) * (xC - xA) + (yB - yA) * (yC - yA)) / (d1 * d2));
30
+ } while (!theta || theta < 0.35 || theta > 2.1 || d1 / d2 > 1.3 || d1 / d2 < 0.7);
31
+ const factor = (0, randint_1.randint)(-5, 6, [-2, -1, 0, 1, 2]) / 10; // facteur = AB/AE, Pour que l'affichage soit acceptable, les valeurs de factor sont +- 0.5 0.4 0.3
32
+ const [xD, yD] = [xA + factor * (xB - xA), yA + factor * (yB - yA)];
33
+ const [xE, yE] = [xA + factor * (xC - xA), yA + factor * (yC - yA)];
34
+ const xMin = Math.min(xA, xB, xC, xD, xE);
35
+ const xMax = Math.max(xA, xB, xC, xD, xE);
36
+ const yMin = Math.min(yA, yB, yC, yD, yE);
37
+ const yMax = Math.max(yA, yB, yC, yD, yE);
38
+ const commands = [
39
+ `${vertices[0]} = Point({${xA}, ${yA}})`,
40
+ `${vertices[1]} = Point({${xB}, ${yB}})`,
41
+ `${vertices[2]} = Point({${xC}, ${yC}})`,
42
+ `${vertices[3]} = Point(${vertices[0]}, Vector(${factor}Vector(${vertices[0]},${vertices[1]})))`,
43
+ `${vertices[4]} = Intersect(Line(${vertices[3]}, Line(${vertices[1]}, ${vertices[2]})) , Line(${vertices[0]}, ${vertices[2]}))`,
44
+ `l = Segment(${vertices[0]}, ${vertices[1]})`,
45
+ `i = Segment(${vertices[0]}, ${vertices[2]})`,
46
+ `j = Segment(${vertices[1]}, ${vertices[2]})`,
47
+ `k = Segment(${vertices[3]}, ${vertices[4]})`,
48
+ `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[3]}))`,
49
+ `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[4]}))`,
50
+ `ShowAxes(false)`,
51
+ `ShowGrid(false)`,
52
+ `ShowLabel(${vertices[0]}, true)`,
53
+ `ShowLabel(${vertices[1]}, true)`,
54
+ `ShowLabel(${vertices[2]}, true)`,
55
+ `ShowLabel(${vertices[3]}, true)`,
56
+ `ShowLabel(${vertices[4]}, true)`,
57
+ ];
58
+ const question = {
59
+ instruction: `En utilisant le théoreme de Thalès, Écrire l'égalité des quotients sachant que :$\\\\$ (${vertices[3]}${vertices[4]})//(${vertices[1]}${vertices[2]})`,
60
+ answer: `\\frac{${vertices[0]}${vertices[3]}}{${vertices[0]}${vertices[1]}} = \\frac{${vertices[0]}${vertices[4]}}{${vertices[0]}${vertices[2]}} = \\frac{${vertices[3]}${vertices[4]}}{${vertices[1]}${vertices[2]}}`,
61
+ keys: [...vertices, 'equal'],
62
+ commands,
63
+ coords: [xMin - 1, xMax + 1, yMin - 1, yMax + 1],
64
+ };
65
+ return question;
66
+ }
67
+ exports.getThales = getThales;
@@ -1,4 +1,4 @@
1
- import { Exercise, Question } from '../../../exercises/exercise';
2
- export declare const thalesCalcul: Exercise;
3
- export declare function getThales(): Question;
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const thalesCalcul: Exercise;
3
+ export declare function getThales(): Question;
4
4
  //# sourceMappingURL=thalesCalcul.d.ts.map
@@ -1,104 +1,104 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getThales = exports.thalesCalcul = void 0;
4
- const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
- const randint_1 = require("../../../math/utils/random/randint");
6
- const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
7
- const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
8
- const simplify_1 = require("../../../tree/parsers/simplify");
9
- const coinFlip_1 = require("../../../utils/coinFlip");
10
- exports.thalesCalcul = {
11
- id: 'thalesCalcul',
12
- connector: '=',
13
- instruction: '',
14
- label: 'Utiliser le théoreme de Thalès pour faire des calculs',
15
- levels: ['5', '4', '3', '2'],
16
- isSingleStep: false,
17
- section: 'Géométrie euclidienne',
18
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThales, nb),
19
- };
20
- function getThales() {
21
- const vertices = [];
22
- const code = 65 + (0, randint_1.randint)(0, 22); // Générer un code de caractère majuscule aléatoire (A-Z)
23
- for (let i = 0; i < 5; i++)
24
- vertices.push(String.fromCharCode(code + i));
25
- const [xA, yA] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
26
- let xB, yB, xC, yC;
27
- let d1, d2, d3; // distance entre le point A et B
28
- let theta = 0; // angle entre AB et AC
29
- do {
30
- [xB, yB, xC, yC] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
31
- d1 = Math.hypot(xB - xA, yB - yA); // Calculer la distance entre A et B
32
- d2 = Math.hypot(xC - xA, yC - yA); // Calculer la distance entre A et C
33
- theta = Math.acos(((xB - xA) * (xC - xA) + (yB - yA) * (yC - yA)) / (d1 * d2));
34
- } while (!theta || theta < 0.35 || theta > 2.1 || d1 / d2 > 1.3 || d1 / d2 < 0.7);
35
- d3 = Math.sqrt(d1 ** 2 + d2 ** 2 - 2 * d1 * d2 * Math.cos(theta)); // Calculer la distance entre C et B
36
- // CB² = AB² * AC² - 2*AB*AC*cos(theta) : pythagore généralisé
37
- const factor = (0, randint_1.randint)(-5, 6, [-2, -1, 0, 1, 2]) / 10; // facteur = AB/AE, Pour que l'affichage soit acceptable, les valeurs de factor sont +- 0.5 0.4 0.3
38
- const [xD, yD] = [xA + factor * (xB - xA), yA + factor * (yB - yA)];
39
- const [xE, yE] = [xA + factor * (xC - xA), yA + factor * (yC - yA)];
40
- const xMin = Math.min(xA, xB, xC, xD, xE);
41
- const xMax = Math.max(xA, xB, xC, xD, xE);
42
- const yMin = Math.min(yA, yB, yC, yD, yE);
43
- const yMax = Math.max(yA, yB, yC, yD, yE);
44
- // AB AC BC AD AE
45
- const sides = [
46
- `${vertices[0]}${vertices[1]}`,
47
- `${vertices[0]}${vertices[3]}`,
48
- `${vertices[0]}${vertices[2]}`,
49
- `${vertices[0]}${vertices[4]}`,
50
- `${vertices[1]}${vertices[2]}`,
51
- `${vertices[3]}${vertices[4]}`,
52
- ];
53
- // round pour avoir des valeurs dans N tout en gardant les proportions pour que ça soit cohérent. sides[i] a pour longueur sideLengths[i]
54
- const sideLengths = [d1, factor * d1, d2, factor * d2, d3, factor * d3].map((el) => Math.round(Math.abs(el)));
55
- const rand = (0, randint_1.randint)(0, 3);
56
- let rand2 = (0, randint_1.randint)(0, 3, [rand]);
57
- if (sideLengths[2 * rand] === sideLengths[2 * rand2])
58
- rand2 = (0, randint_1.randint)(0, 3, [rand, rand2]); // condition pour pas prendre 2 longueurs identiques
59
- let instruction = `Dans la figure ci-dessous, nous avons (${vertices[3]}${vertices[4]})//(${vertices[1]}${vertices[2]}), `;
60
- let statement;
61
- let startStatement;
62
- if ((0, coinFlip_1.coinFlip)()) {
63
- // a/b = c/d on cherche c
64
- instruction += `${sides[2 * rand]} = $${sideLengths[2 * rand]}$, ${sides[2 * rand + 1]} = $${sideLengths[2 * rand + 1]}$, ${sides[2 * rand2]} = $${sideLengths[2 * rand2]}$.$\\\\$Déterminer ${sides[2 * rand2 + 1]}`;
65
- startStatement = `${sides[2 * rand2 + 1]}`;
66
- statement = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(sideLengths[2 * rand2] * sideLengths[2 * rand + 1]), new numberNode_1.NumberNode(sideLengths[2 * rand])));
67
- }
68
- else {
69
- // a/b = c/d on cherche d
70
- instruction += `${sides[2 * rand]} = $${sideLengths[2 * rand]}$, ${sides[2 * rand + 1]} = $${sideLengths[2 * rand + 1]}$, ${sides[2 * rand2 + 1]} = $${sideLengths[2 * rand2 + 1]}$.$\\\\$Déterminer ${sides[2 * rand2]}`;
71
- startStatement = `${sides[2 * rand2]}`;
72
- statement = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(sideLengths[2 * rand2 + 1] * sideLengths[2 * rand]), new numberNode_1.NumberNode(sideLengths[2 * rand + 1])));
73
- }
74
- const commands = [
75
- `${vertices[0]} = Point({${xA}, ${yA}})`,
76
- `${vertices[1]} = Point({${xB}, ${yB}})`,
77
- `${vertices[2]} = Point({${xC}, ${yC}})`,
78
- `${vertices[3]} = Point(${vertices[0]}, Vector(${factor}Vector(${vertices[0]},${vertices[1]})))`,
79
- `${vertices[4]} = Intersect(Line(${vertices[3]}, Line(${vertices[1]}, ${vertices[2]})) , Line(${vertices[0]}, ${vertices[2]}))`,
80
- `l = Segment(${vertices[0]}, ${vertices[1]})`,
81
- `i = Segment(${vertices[0]}, ${vertices[2]})`,
82
- `j = Segment(${vertices[1]}, ${vertices[2]})`,
83
- `k = Segment(${vertices[3]}, ${vertices[4]})`,
84
- `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[3]}))`,
85
- `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[4]}))`,
86
- `ShowAxes(false)`,
87
- `ShowGrid(false)`,
88
- `ShowLabel(${vertices[0]}, true)`,
89
- `ShowLabel(${vertices[1]}, true)`,
90
- `ShowLabel(${vertices[2]}, true)`,
91
- `ShowLabel(${vertices[3]}, true)`,
92
- `ShowLabel(${vertices[4]}, true)`,
93
- ];
94
- const question = {
95
- instruction,
96
- startStatement,
97
- answer: statement.toTex(),
98
- keys: [],
99
- commands,
100
- coords: [xMin - 1, xMax + 1, yMin - 1, yMax + 1],
101
- };
102
- return question;
103
- }
104
- exports.getThales = getThales;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getThales = exports.thalesCalcul = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const randint_1 = require("../../../math/utils/random/randint");
6
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
7
+ const fractionNode_1 = require("../../../tree/nodes/operators/fractionNode");
8
+ const simplify_1 = require("../../../tree/parsers/simplify");
9
+ const coinFlip_1 = require("../../../utils/coinFlip");
10
+ exports.thalesCalcul = {
11
+ id: 'thalesCalcul',
12
+ connector: '=',
13
+ instruction: '',
14
+ label: 'Utiliser le théoreme de Thalès pour faire des calculs',
15
+ levels: ['5', '4', '3', '2'],
16
+ isSingleStep: false,
17
+ section: 'Géométrie euclidienne',
18
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getThales, nb),
19
+ };
20
+ function getThales() {
21
+ const vertices = [];
22
+ const code = 65 + (0, randint_1.randint)(0, 22); // Générer un code de caractère majuscule aléatoire (A-Z)
23
+ for (let i = 0; i < 5; i++)
24
+ vertices.push(String.fromCharCode(code + i));
25
+ const [xA, yA] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
26
+ let xB, yB, xC, yC;
27
+ let d1, d2, d3; // distance entre le point A et B
28
+ let theta = 0; // angle entre AB et AC
29
+ do {
30
+ [xB, yB, xC, yC] = [(0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11), (0, randint_1.randint)(-10, 11)];
31
+ d1 = Math.hypot(xB - xA, yB - yA); // Calculer la distance entre A et B
32
+ d2 = Math.hypot(xC - xA, yC - yA); // Calculer la distance entre A et C
33
+ theta = Math.acos(((xB - xA) * (xC - xA) + (yB - yA) * (yC - yA)) / (d1 * d2));
34
+ } while (!theta || theta < 0.35 || theta > 2.1 || d1 / d2 > 1.3 || d1 / d2 < 0.7);
35
+ d3 = Math.sqrt(d1 ** 2 + d2 ** 2 - 2 * d1 * d2 * Math.cos(theta)); // Calculer la distance entre C et B
36
+ // CB² = AB² * AC² - 2*AB*AC*cos(theta) : pythagore généralisé
37
+ const factor = (0, randint_1.randint)(-5, 6, [-2, -1, 0, 1, 2]) / 10; // facteur = AB/AE, Pour que l'affichage soit acceptable, les valeurs de factor sont +- 0.5 0.4 0.3
38
+ const [xD, yD] = [xA + factor * (xB - xA), yA + factor * (yB - yA)];
39
+ const [xE, yE] = [xA + factor * (xC - xA), yA + factor * (yC - yA)];
40
+ const xMin = Math.min(xA, xB, xC, xD, xE);
41
+ const xMax = Math.max(xA, xB, xC, xD, xE);
42
+ const yMin = Math.min(yA, yB, yC, yD, yE);
43
+ const yMax = Math.max(yA, yB, yC, yD, yE);
44
+ // AB AC BC AD AE
45
+ const sides = [
46
+ `${vertices[0]}${vertices[1]}`,
47
+ `${vertices[0]}${vertices[3]}`,
48
+ `${vertices[0]}${vertices[2]}`,
49
+ `${vertices[0]}${vertices[4]}`,
50
+ `${vertices[1]}${vertices[2]}`,
51
+ `${vertices[3]}${vertices[4]}`,
52
+ ];
53
+ // round pour avoir des valeurs dans N tout en gardant les proportions pour que ça soit cohérent. sides[i] a pour longueur sideLengths[i]
54
+ const sideLengths = [d1, factor * d1, d2, factor * d2, d3, factor * d3].map((el) => Math.round(Math.abs(el)));
55
+ const rand = (0, randint_1.randint)(0, 3);
56
+ let rand2 = (0, randint_1.randint)(0, 3, [rand]);
57
+ if (sideLengths[2 * rand] === sideLengths[2 * rand2])
58
+ rand2 = (0, randint_1.randint)(0, 3, [rand, rand2]); // condition pour pas prendre 2 longueurs identiques
59
+ let instruction = `Dans la figure ci-dessous, nous avons (${vertices[3]}${vertices[4]})//(${vertices[1]}${vertices[2]}), `;
60
+ let statement;
61
+ let startStatement;
62
+ if ((0, coinFlip_1.coinFlip)()) {
63
+ // a/b = c/d on cherche c
64
+ instruction += `${sides[2 * rand]} = $${sideLengths[2 * rand]}$, ${sides[2 * rand + 1]} = $${sideLengths[2 * rand + 1]}$, ${sides[2 * rand2]} = $${sideLengths[2 * rand2]}$.$\\\\$Déterminer ${sides[2 * rand2 + 1]}`;
65
+ startStatement = `${sides[2 * rand2 + 1]}`;
66
+ statement = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(sideLengths[2 * rand2] * sideLengths[2 * rand + 1]), new numberNode_1.NumberNode(sideLengths[2 * rand])));
67
+ }
68
+ else {
69
+ // a/b = c/d on cherche d
70
+ instruction += `${sides[2 * rand]} = $${sideLengths[2 * rand]}$, ${sides[2 * rand + 1]} = $${sideLengths[2 * rand + 1]}$, ${sides[2 * rand2 + 1]} = $${sideLengths[2 * rand2 + 1]}$.$\\\\$Déterminer ${sides[2 * rand2]}`;
71
+ startStatement = `${sides[2 * rand2]}`;
72
+ statement = (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new numberNode_1.NumberNode(sideLengths[2 * rand2 + 1] * sideLengths[2 * rand]), new numberNode_1.NumberNode(sideLengths[2 * rand + 1])));
73
+ }
74
+ const commands = [
75
+ `${vertices[0]} = Point({${xA}, ${yA}})`,
76
+ `${vertices[1]} = Point({${xB}, ${yB}})`,
77
+ `${vertices[2]} = Point({${xC}, ${yC}})`,
78
+ `${vertices[3]} = Point(${vertices[0]}, Vector(${factor}Vector(${vertices[0]},${vertices[1]})))`,
79
+ `${vertices[4]} = Intersect(Line(${vertices[3]}, Line(${vertices[1]}, ${vertices[2]})) , Line(${vertices[0]}, ${vertices[2]}))`,
80
+ `l = Segment(${vertices[0]}, ${vertices[1]})`,
81
+ `i = Segment(${vertices[0]}, ${vertices[2]})`,
82
+ `j = Segment(${vertices[1]}, ${vertices[2]})`,
83
+ `k = Segment(${vertices[3]}, ${vertices[4]})`,
84
+ `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[3]}))`,
85
+ `If(${factor} < 0, Segment(${vertices[0]}, ${vertices[4]}))`,
86
+ `ShowAxes(false)`,
87
+ `ShowGrid(false)`,
88
+ `ShowLabel(${vertices[0]}, true)`,
89
+ `ShowLabel(${vertices[1]}, true)`,
90
+ `ShowLabel(${vertices[2]}, true)`,
91
+ `ShowLabel(${vertices[3]}, true)`,
92
+ `ShowLabel(${vertices[4]}, true)`,
93
+ ];
94
+ const question = {
95
+ instruction,
96
+ startStatement,
97
+ answer: statement.toTex(),
98
+ keys: [],
99
+ commands,
100
+ coords: [xMin - 1, xMax + 1, yMin - 1, yMax + 1],
101
+ };
102
+ return question;
103
+ }
104
+ exports.getThales = getThales;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const triangleAreaV2: Exercise;
3
+ export declare function getTriangleAreaV2(): Question;
4
+ //# sourceMappingURL=triangleAreaV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triangleAreaV2.d.ts","sourceRoot":"","sources":["../../../../src/exercises/geometry/euclidean/triangleAreaV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAI9D,eAAO,MAAM,cAAc,EAAE,QAS5B,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,QAAQ,CA4B5C"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTriangleAreaV2 = exports.triangleAreaV2 = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const randint_1 = require("../../../math/utils/random/randint");
6
+ exports.triangleAreaV2 = {
7
+ id: 'triangleAreaV2',
8
+ connector: '=',
9
+ instruction: '',
10
+ label: "Calculer l'aire d'un triangle (sans figure)",
11
+ levels: ['4', '3', '2'],
12
+ isSingleStep: false,
13
+ section: 'Géométrie euclidienne',
14
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTriangleAreaV2, nb),
15
+ };
16
+ function getTriangleAreaV2() {
17
+ const sides = [
18
+ [3, 4, 5],
19
+ [5, 12, 13],
20
+ [8, 15, 17],
21
+ [7, 24, 25],
22
+ [20, 21, 29],
23
+ [12, 35, 37],
24
+ [9, 40, 41],
25
+ [28, 45, 53],
26
+ [11, 60, 61],
27
+ [16, 63, 65],
28
+ [33, 56, 65],
29
+ [48, 55, 73],
30
+ [13, 84, 85],
31
+ [36, 77, 85],
32
+ [39, 80, 89],
33
+ [65, 72, 97],
34
+ ];
35
+ const randomSide = (0, randint_1.randint)(0, sides.length);
36
+ const question = {
37
+ instruction: `Calculer l'aire du triangle rectangle qui a pour côtés: $${sides[randomSide][0]}$ cm, $${sides[randomSide][1]}$ cm et $${sides[randomSide][2]}$ cm.`,
38
+ answer: (sides[randomSide][0] * sides[randomSide][1]) / 2 + '',
39
+ };
40
+ return question;
41
+ }
42
+ exports.getTriangleAreaV2 = getTriangleAreaV2;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const trianglePerimeter: Exercise;
3
+ export declare function getTrianglePerimeter(): Question;
4
+ //# sourceMappingURL=trianglePerimeter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trianglePerimeter.d.ts","sourceRoot":"","sources":["../../../../src/exercises/geometry/euclidean/trianglePerimeter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAI9D,eAAO,MAAM,iBAAiB,EAAE,QAS/B,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,QAAQ,CAS/C"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTrianglePerimeter = exports.trianglePerimeter = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const randint_1 = require("../../../math/utils/random/randint");
6
+ exports.trianglePerimeter = {
7
+ id: 'trianglePerimeter',
8
+ connector: '=',
9
+ instruction: '',
10
+ label: "Calculer le périmètre d'un triangle",
11
+ levels: ['4', '3', '2'],
12
+ isSingleStep: false,
13
+ section: 'Géométrie euclidienne',
14
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrianglePerimeter, nb),
15
+ };
16
+ function getTrianglePerimeter() {
17
+ const sides = [(0, randint_1.randint)(1, 13), (0, randint_1.randint)(1, 13), (0, randint_1.randint)(1, 13)];
18
+ const question = {
19
+ instruction: `Calculer le périmètre d'un triangle qui a pour côtés: $${sides[0]}$ cm, $${sides[1]}$ cm et $${sides[2]}$ cm.`,
20
+ answer: sides[0] + sides[1] + sides[2] + '',
21
+ };
22
+ return question;
23
+ }
24
+ exports.getTrianglePerimeter = getTrianglePerimeter;
@@ -1,4 +1,4 @@
1
- import { Exercise, Question } from '../../../exercises/exercise';
2
- export declare const trigonometry: Exercise;
3
- export declare function getTrigonometry(): Question;
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const trigonometry: Exercise;
3
+ export declare function getTrigonometry(): Question;
4
4
  //# sourceMappingURL=trigonometry.d.ts.map
@@ -1,55 +1,55 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTrigonometry = exports.trigonometry = void 0;
4
- const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
- const triangles_1 = require("../../../math/geometry/triangles");
6
- const randint_1 = require("../../../math/utils/random/randint");
7
- exports.trigonometry = {
8
- id: 'trigonometry',
9
- connector: '=',
10
- instruction: '',
11
- label: "Écrire le quotient égal au cosinus, au sinus ou à la tangente d'un angle dans un triangle rectangle",
12
- levels: ['4', '3', '2'],
13
- isSingleStep: false,
14
- section: 'Géométrie euclidienne',
15
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrigonometry, nb),
16
- };
17
- function getTrigonometry() {
18
- const vertices = [];
19
- const code = 65 + (0, randint_1.randint)(0, 24); // Générer un code de caractère majuscule aléatoire (A-Z)
20
- for (let i = 0; i < 3; i++)
21
- vertices.push(String.fromCharCode(code + i));
22
- const triangle = triangles_1.TriangleConstructor.createRandomRightTriangle({ minRapport: 0.7, maxRapport: 1.3, names: vertices });
23
- const trigo = ['le cosinus', 'le sinus', 'la tangente'];
24
- const randTrigo = (0, randint_1.randint)(0, 3);
25
- const angle = [triangle.vertexB.name, triangle.vertexC.name];
26
- const randAngle = (0, randint_1.randint)(0, 2);
27
- let quotient;
28
- switch (randAngle) {
29
- case 0:
30
- quotient = [
31
- `\\frac{${triangle.getSideCName()}}{${triangle.getSideAName()}}`,
32
- `\\frac{${triangle.getSideBName()}}{${triangle.getSideAName()}}`,
33
- `\\frac{${triangle.getSideBName()}}{${triangle.getSideCName()}}`,
34
- ];
35
- break;
36
- case 1:
37
- quotient = [
38
- `\\frac{${triangle.getSideBName()}}{${triangle.getSideAName()}}`,
39
- `\\frac{${triangle.getSideCName()}}{${triangle.getSideAName()}}`,
40
- `\\frac{${triangle.getSideCName()}}{${triangle.getSideBName()}}`,
41
- ];
42
- break;
43
- default:
44
- quotient = [''];
45
- }
46
- const question = {
47
- instruction: `À quel quotient est égal ${trigo[randTrigo]} de l'angle $\\widehat{${angle[randAngle]}}$?`,
48
- answer: quotient[randTrigo],
49
- keys: [...vertices, 'equal'],
50
- commands: [...triangle.generateCommands({ highlightedAngle: angle[randAngle] })],
51
- coords: triangle.generateCoords(),
52
- };
53
- return question;
54
- }
55
- exports.getTrigonometry = getTrigonometry;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTrigonometry = exports.trigonometry = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const triangles_1 = require("../../../math/geometry/triangles");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ exports.trigonometry = {
8
+ id: 'trigonometry',
9
+ connector: '=',
10
+ instruction: '',
11
+ label: "Écrire le quotient égal au cosinus, au sinus ou à la tangente d'un angle dans un triangle rectangle",
12
+ levels: ['4', '3', '2'],
13
+ isSingleStep: false,
14
+ section: 'Géométrie euclidienne',
15
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getTrigonometry, nb),
16
+ };
17
+ function getTrigonometry() {
18
+ const vertices = [];
19
+ const code = 65 + (0, randint_1.randint)(0, 24); // Générer un code de caractère majuscule aléatoire (A-Z)
20
+ for (let i = 0; i < 3; i++)
21
+ vertices.push(String.fromCharCode(code + i));
22
+ const triangle = triangles_1.TriangleConstructor.createRandomRightTriangle({ minRapport: 0.7, maxRapport: 1.3, names: vertices });
23
+ const trigo = ['le cosinus', 'le sinus', 'la tangente'];
24
+ const randTrigo = (0, randint_1.randint)(0, 3);
25
+ const angle = [triangle.vertexB.name, triangle.vertexC.name];
26
+ const randAngle = (0, randint_1.randint)(0, 2);
27
+ let quotient;
28
+ switch (randAngle) {
29
+ case 0:
30
+ quotient = [
31
+ `\\frac{${triangle.getSideCName()}}{${triangle.getSideAName()}}`,
32
+ `\\frac{${triangle.getSideBName()}}{${triangle.getSideAName()}}`,
33
+ `\\frac{${triangle.getSideBName()}}{${triangle.getSideCName()}}`,
34
+ ];
35
+ break;
36
+ case 1:
37
+ quotient = [
38
+ `\\frac{${triangle.getSideBName()}}{${triangle.getSideAName()}}`,
39
+ `\\frac{${triangle.getSideCName()}}{${triangle.getSideAName()}}`,
40
+ `\\frac{${triangle.getSideCName()}}{${triangle.getSideBName()}}`,
41
+ ];
42
+ break;
43
+ default:
44
+ quotient = [''];
45
+ }
46
+ const question = {
47
+ instruction: `À quel quotient est égal ${trigo[randTrigo]} de l'angle $\\widehat{${angle[randAngle]}}$?`,
48
+ answer: quotient[randTrigo],
49
+ keys: [...vertices, 'equal'],
50
+ commands: [...triangle.generateCommands({ highlightedAngle: angle[randAngle] })],
51
+ coords: triangle.generateCoords(),
52
+ };
53
+ return question;
54
+ }
55
+ exports.getTrigonometry = getTrigonometry;
@@ -1,4 +1,4 @@
1
- import { Exercise, Question } from '../../../exercises/exercise';
2
- export declare const trigonometryAngleCalcul: Exercise;
3
- export declare function getTrigonometryAngleCalcul(): Question;
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const trigonometryAngleCalcul: Exercise;
3
+ export declare function getTrigonometryAngleCalcul(): Question;
4
4
  //# sourceMappingURL=trigonometryAngleCalcul.d.ts.map