math-exercises 3.0.157 → 3.0.159

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 (444) hide show
  1. package/lib/exercises/exercise.d.ts +7 -0
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.d.ts +14 -0
  4. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.d.ts.map +1 -0
  5. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.js +145 -0
  6. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.d.ts +16 -0
  7. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.d.ts.map +1 -0
  8. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.js +445 -0
  9. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.d.ts +15 -0
  10. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.d.ts.map +1 -0
  11. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.js +371 -0
  12. package/lib/exercises/math/calculLitteral/equation/exp/index.d.ts +4 -0
  13. package/lib/exercises/math/calculLitteral/equation/exp/index.d.ts.map +1 -0
  14. package/lib/exercises/math/calculLitteral/equation/exp/index.js +3 -0
  15. package/lib/exercises/math/calculLitteral/equation/factorizeEquation.d.ts.map +1 -1
  16. package/lib/exercises/math/calculLitteral/equation/factorizeEquation.js +8 -2
  17. package/lib/exercises/math/calculLitteral/equation/index.d.ts +1 -0
  18. package/lib/exercises/math/calculLitteral/equation/index.d.ts.map +1 -1
  19. package/lib/exercises/math/calculLitteral/equation/index.js +1 -0
  20. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.d.ts.map +1 -1
  21. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.js +27 -2
  22. package/lib/exercises/math/calculLitteral/equation/solveByFactorizingWithIdRmq3.d.ts.map +1 -1
  23. package/lib/exercises/math/calculLitteral/equation/solveByFactorizingWithIdRmq3.js +0 -1
  24. package/lib/exercises/math/calculLitteral/equation/square/equationSquareWithSteps.d.ts.map +1 -1
  25. package/lib/exercises/math/calculLitteral/equation/square/equationSquareWithSteps.js +0 -1
  26. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts +18 -0
  27. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts.map +1 -0
  28. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.js +444 -0
  29. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts +2 -0
  30. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts.map +1 -0
  31. package/lib/exercises/math/calculLitteral/inequations/exp/index.js +1 -0
  32. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.d.ts.map +1 -1
  33. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.js +11 -5
  34. package/lib/exercises/math/calculLitteral/inequations/index.d.ts +1 -0
  35. package/lib/exercises/math/calculLitteral/inequations/index.d.ts.map +1 -1
  36. package/lib/exercises/math/calculLitteral/inequations/index.js +1 -0
  37. package/lib/exercises/math/derivation/derivative/exp/expDerivativeFour.d.ts.map +1 -1
  38. package/lib/exercises/math/derivation/derivative/exp/expDerivativeFour.js +91 -21
  39. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.d.ts.map +1 -1
  40. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.js +64 -15
  41. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.d.ts.map +1 -1
  42. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.js +71 -15
  43. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.d.ts.map +1 -1
  44. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.js +36 -17
  45. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts +10 -0
  46. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts.map +1 -0
  47. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.js +294 -0
  48. package/lib/exercises/math/derivation/derivative/exp/index.d.ts +1 -0
  49. package/lib/exercises/math/derivation/derivative/exp/index.d.ts.map +1 -1
  50. package/lib/exercises/math/derivation/derivative/exp/index.js +1 -0
  51. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.d.ts.map +1 -1
  52. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.js +30 -2
  53. package/lib/exercises/math/derivation/derivative/productDerivative.d.ts.map +1 -1
  54. package/lib/exercises/math/derivation/derivative/productDerivative.js +68 -1
  55. package/lib/exercises/math/derivation/derivative/quotientDerivative.d.ts.map +1 -1
  56. package/lib/exercises/math/derivation/derivative/quotientDerivative.js +40 -4
  57. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.d.ts.map +1 -1
  58. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.js +30 -3
  59. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts +12 -0
  60. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts.map +1 -0
  61. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.js +127 -0
  62. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts +13 -0
  63. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts.map +1 -0
  64. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.js +161 -0
  65. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts +11 -0
  66. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts.map +1 -0
  67. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.js +116 -0
  68. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts +8 -0
  69. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts.map +1 -0
  70. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.js +142 -0
  71. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts +4 -0
  72. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts.map +1 -0
  73. package/lib/exercises/math/derivation/derivativeNumber/index.js +4 -0
  74. package/lib/exercises/math/derivation/index.d.ts +1 -1
  75. package/lib/exercises/math/derivation/index.js +1 -1
  76. package/lib/exercises/math/derivation/variations/index.d.ts +1 -0
  77. package/lib/exercises/math/derivation/variations/index.d.ts.map +1 -1
  78. package/lib/exercises/math/derivation/variations/index.js +1 -0
  79. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.d.ts +7 -0
  80. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.d.ts.map +1 -0
  81. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.js +174 -0
  82. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts +13 -0
  83. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts.map +1 -0
  84. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.js +305 -0
  85. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts +11 -0
  86. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts.map +1 -0
  87. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.js +216 -0
  88. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts +9 -0
  89. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts.map +1 -0
  90. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.js +142 -0
  91. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts +5 -0
  92. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts.map +1 -0
  93. package/lib/exercises/math/functions/exponential/algebraic/index.js +4 -0
  94. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts +14 -0
  95. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts.map +1 -0
  96. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.js +337 -0
  97. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts +11 -0
  98. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts.map +1 -0
  99. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.js +223 -0
  100. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts +9 -0
  101. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts.map +1 -0
  102. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.js +262 -0
  103. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts +9 -0
  104. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts.map +1 -0
  105. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.js +245 -0
  106. package/lib/exercises/math/functions/exponential/definition/index.d.ts +5 -0
  107. package/lib/exercises/math/functions/exponential/definition/index.d.ts.map +1 -0
  108. package/lib/exercises/math/functions/exponential/definition/index.js +4 -0
  109. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts +13 -0
  110. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts.map +1 -0
  111. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.js +366 -0
  112. package/lib/exercises/math/functions/exponential/expFactorization.d.ts.map +1 -1
  113. package/lib/exercises/math/functions/exponential/expFactorization.js +54 -42
  114. package/lib/exercises/math/functions/exponential/index.d.ts +2 -0
  115. package/lib/exercises/math/functions/exponential/index.d.ts.map +1 -1
  116. package/lib/exercises/math/functions/exponential/index.js +2 -0
  117. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.d.ts.map +1 -1
  118. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.js +30 -3
  119. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.d.ts.map +1 -1
  120. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.js +35 -1
  121. package/lib/exercises/math/functions/trinoms/equation/secondDegreeInequation.js +3 -0
  122. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.d.ts.map +1 -1
  123. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.js +1 -1
  124. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.d.ts.map +1 -1
  125. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.js +23 -1
  126. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.d.ts.map +1 -1
  127. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.js +29 -0
  128. package/lib/exercises/math/functions/variations/exp/index.d.ts +3 -0
  129. package/lib/exercises/math/functions/variations/exp/index.d.ts.map +1 -0
  130. package/lib/exercises/math/functions/variations/exp/index.js +2 -0
  131. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts +9 -0
  132. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts.map +1 -0
  133. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.js +96 -0
  134. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts +11 -0
  135. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts.map +1 -0
  136. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.js +190 -0
  137. package/lib/exercises/math/functions/variations/index.d.ts +1 -0
  138. package/lib/exercises/math/functions/variations/index.d.ts.map +1 -1
  139. package/lib/exercises/math/functions/variations/index.js +1 -0
  140. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.d.ts +12 -0
  141. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.d.ts.map +1 -0
  142. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.js +230 -0
  143. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.d.ts +10 -0
  144. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.d.ts.map +1 -0
  145. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.js +167 -0
  146. package/lib/exercises/math/geometry/cartesian/index.d.ts +3 -0
  147. package/lib/exercises/math/geometry/cartesian/index.d.ts.map +1 -1
  148. package/lib/exercises/math/geometry/cartesian/index.js +3 -0
  149. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.d.ts +10 -0
  150. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.d.ts.map +1 -0
  151. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.js +131 -0
  152. package/lib/exercises/math/geometry/circles/index.d.ts +2 -0
  153. package/lib/exercises/math/geometry/circles/index.d.ts.map +1 -0
  154. package/lib/exercises/math/geometry/circles/index.js +1 -0
  155. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.d.ts +11 -0
  156. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.d.ts.map +1 -0
  157. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.js +131 -0
  158. package/lib/exercises/math/geometry/euclidian/pinPointFromAxialOrCentralSymmetry.js +2 -2
  159. package/lib/exercises/math/geometry/euclidian/pinSegmentFromRotation.d.ts.map +1 -1
  160. package/lib/exercises/math/geometry/euclidian/pinSegmentFromRotation.js +0 -2
  161. package/lib/exercises/math/geometry/index.d.ts +1 -0
  162. package/lib/exercises/math/geometry/index.d.ts.map +1 -1
  163. package/lib/exercises/math/geometry/index.js +1 -0
  164. package/lib/exercises/math/geometry/thales/thales.js +1 -1
  165. package/lib/exercises/math/geometry/thales/thalesCalcul.js +1 -1
  166. package/lib/exercises/math/geometry/vectors/colinearity/determinant.js +1 -1
  167. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.d.ts +4 -0
  168. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.d.ts.map +1 -0
  169. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.js +3 -0
  170. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.d.ts +9 -0
  171. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.d.ts.map +1 -0
  172. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.js +247 -0
  173. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.d.ts +13 -0
  174. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.d.ts.map +1 -0
  175. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.js +452 -0
  176. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.d.ts +9 -0
  177. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.d.ts.map +1 -0
  178. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.js +253 -0
  179. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.d.ts +4 -0
  180. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.d.ts.map +1 -0
  181. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.js +3 -0
  182. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.d.ts +10 -0
  183. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.d.ts.map +1 -0
  184. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.js +174 -0
  185. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.d.ts +9 -0
  186. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.d.ts.map +1 -0
  187. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.js +231 -0
  188. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.d.ts +14 -0
  189. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.d.ts.map +1 -0
  190. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.js +292 -0
  191. package/lib/exercises/math/geometry/vectors/scalarProduct/angleFromScalarProduct.js +1 -1
  192. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.d.ts.map +1 -1
  193. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.js +33 -7
  194. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.d.ts +6 -0
  195. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.d.ts.map +1 -0
  196. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.js +5 -0
  197. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.d.ts +9 -0
  198. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.d.ts.map +1 -0
  199. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.js +202 -0
  200. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.d.ts +9 -0
  201. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.d.ts.map +1 -0
  202. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.js +127 -0
  203. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.d.ts +12 -0
  204. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.d.ts.map +1 -0
  205. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.js +167 -0
  206. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.d.ts +12 -0
  207. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.d.ts.map +1 -0
  208. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.js +180 -0
  209. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.d.ts +12 -0
  210. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.d.ts.map +1 -0
  211. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.js +235 -0
  212. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.d.ts +12 -0
  213. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.d.ts.map +1 -0
  214. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.js +423 -0
  215. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.d.ts +17 -0
  216. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.d.ts.map +1 -0
  217. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.js +347 -0
  218. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.d.ts +8 -0
  219. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.d.ts.map +1 -0
  220. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.js +301 -0
  221. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCoords.js +1 -1
  222. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.d.ts.map +1 -1
  223. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.js +38 -1
  224. package/lib/exercises/math/probaStat/conditionalProbability.d.ts +4 -1
  225. package/lib/exercises/math/probaStat/conditionalProbability.d.ts.map +1 -1
  226. package/lib/exercises/math/probaStat/conditionalProbability.js +38 -5
  227. package/lib/exercises/math/probaStat/independancy/independancy.d.ts +9 -0
  228. package/lib/exercises/math/probaStat/independancy/independancy.d.ts.map +1 -0
  229. package/lib/exercises/math/probaStat/independancy/independancy.js +114 -0
  230. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts +9 -0
  231. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts.map +1 -0
  232. package/lib/exercises/math/probaStat/independancy/independancyFindCap.js +101 -0
  233. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts +9 -0
  234. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts.map +1 -0
  235. package/lib/exercises/math/probaStat/independancy/independancyFindCup.js +118 -0
  236. package/lib/exercises/math/probaStat/independancy/index.d.ts +5 -0
  237. package/lib/exercises/math/probaStat/independancy/index.d.ts.map +1 -0
  238. package/lib/exercises/math/probaStat/independancy/index.js +4 -0
  239. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts +10 -0
  240. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts.map +1 -0
  241. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.js +106 -0
  242. package/lib/exercises/math/probaStat/index.d.ts +1 -1
  243. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  244. package/lib/exercises/math/probaStat/index.js +1 -1
  245. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.d.ts +9 -0
  246. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.d.ts.map +1 -0
  247. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.js +141 -0
  248. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.d.ts +10 -0
  249. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.d.ts.map +1 -0
  250. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.js +174 -0
  251. package/lib/exercises/math/probaStat/randomVariable/index.d.ts +1 -0
  252. package/lib/exercises/math/probaStat/randomVariable/index.d.ts.map +1 -1
  253. package/lib/exercises/math/probaStat/randomVariable/index.js +2 -0
  254. package/lib/exercises/math/probaStat/randomVariable/randomVariableStandardDeviation.js +1 -1
  255. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.d.ts.map +1 -1
  256. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.js +7 -0
  257. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.d.ts.map +1 -1
  258. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.js +7 -0
  259. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.d.ts.map +1 -1
  260. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.js +7 -0
  261. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.d.ts.map +1 -1
  262. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.js +7 -0
  263. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts +9 -0
  264. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts.map +1 -0
  265. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.js +118 -0
  266. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.d.ts.map +1 -1
  267. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.js +55 -6
  268. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.d.ts.map +1 -1
  269. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.js +42 -1
  270. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts +4 -1
  271. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts.map +1 -1
  272. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.js +57 -7
  273. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts.map +1 -1
  274. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +24 -2
  275. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.d.ts.map +1 -1
  276. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.js +31 -8
  277. package/lib/exercises/math/sequences/arithmetic/index.d.ts +1 -1
  278. package/lib/exercises/math/sequences/arithmetic/index.d.ts.map +1 -1
  279. package/lib/exercises/math/sequences/arithmetic/index.js +1 -1
  280. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -1
  281. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +11 -1
  282. package/lib/exercises/math/sequences/generation/index.d.ts +2 -0
  283. package/lib/exercises/math/sequences/generation/index.d.ts.map +1 -0
  284. package/lib/exercises/math/sequences/generation/index.js +1 -0
  285. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.d.ts +8 -0
  286. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.d.ts.map +1 -0
  287. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.js +63 -0
  288. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstRankOne.js +5 -5
  289. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.d.ts.map +1 -1
  290. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.js +3 -1
  291. package/lib/exercises/math/sequences/geometric/geometricFindReason.d.ts.map +1 -1
  292. package/lib/exercises/math/sequences/geometric/geometricFindReason.js +41 -2
  293. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts.map +1 -1
  294. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.js +28 -2
  295. package/lib/exercises/math/sequences/graph/index.d.ts +2 -0
  296. package/lib/exercises/math/sequences/graph/index.d.ts.map +1 -0
  297. package/lib/exercises/math/sequences/graph/index.js +1 -0
  298. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.d.ts +11 -0
  299. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.d.ts.map +1 -0
  300. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.js +113 -0
  301. package/lib/exercises/math/sequences/index.d.ts +2 -0
  302. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  303. package/lib/exercises/math/sequences/index.js +2 -0
  304. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.d.ts +12 -0
  305. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.d.ts.map +1 -0
  306. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.js +114 -0
  307. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.d.ts +12 -0
  308. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.d.ts.map +1 -0
  309. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.js +111 -0
  310. package/lib/exercises/math/sequences/notation/index.d.ts +3 -0
  311. package/lib/exercises/math/sequences/notation/index.d.ts.map +1 -0
  312. package/lib/exercises/math/sequences/notation/index.js +2 -0
  313. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts.map +1 -1
  314. package/lib/exercises/math/sequences/sequenceEvaluation.js +22 -2
  315. package/lib/exercises/math/spaceGeometry/basis/findSpacePointOnRectangularPrism.d.ts.map +1 -1
  316. package/lib/exercises/math/spaceGeometry/basis/findSpacePointOnRectangularPrism.js +0 -1
  317. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.d.ts.map +1 -1
  318. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.js +0 -2
  319. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts +9 -0
  320. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts.map +1 -0
  321. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.js +107 -0
  322. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts +10 -0
  323. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts.map +1 -0
  324. package/lib/exercises/math/trigonometry/circle/associatePoint.js +86 -0
  325. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts +10 -0
  326. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts.map +1 -0
  327. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.js +205 -0
  328. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts +7 -0
  329. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts.map +1 -0
  330. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.js +121 -0
  331. package/lib/exercises/math/trigonometry/circle/index.d.ts +7 -0
  332. package/lib/exercises/math/trigonometry/circle/index.d.ts.map +1 -0
  333. package/lib/exercises/math/trigonometry/circle/index.js +7 -0
  334. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts +10 -0
  335. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts.map +1 -0
  336. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.js +100 -0
  337. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts +8 -0
  338. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts.map +1 -0
  339. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.js +97 -0
  340. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts +10 -0
  341. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts.map +1 -0
  342. package/lib/exercises/math/trigonometry/circle/remarkableValues.js +112 -0
  343. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts +7 -0
  344. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts.map +1 -0
  345. package/lib/exercises/math/trigonometry/functions/basicEquationCos.js +92 -0
  346. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts +7 -0
  347. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts.map +1 -0
  348. package/lib/exercises/math/trigonometry/functions/basicEquationSin.js +104 -0
  349. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts +7 -0
  350. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts.map +1 -0
  351. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.js +83 -0
  352. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts +8 -0
  353. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts.map +1 -0
  354. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.js +111 -0
  355. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts +8 -0
  356. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts.map +1 -0
  357. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.js +101 -0
  358. package/lib/exercises/math/trigonometry/functions/index.d.ts +6 -0
  359. package/lib/exercises/math/trigonometry/functions/index.d.ts.map +1 -0
  360. package/lib/exercises/math/trigonometry/functions/index.js +6 -0
  361. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts +9 -0
  362. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts.map +1 -0
  363. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.js +151 -0
  364. package/lib/exercises/math/trigonometry/index.d.ts +3 -14
  365. package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
  366. package/lib/exercises/math/trigonometry/index.js +3 -14
  367. package/lib/exercises/math/trigonometry/triangle/index.d.ts +7 -0
  368. package/lib/exercises/math/trigonometry/triangle/index.d.ts.map +1 -0
  369. package/lib/exercises/math/trigonometry/triangle/index.js +6 -0
  370. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts +10 -0
  371. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts.map +1 -0
  372. package/lib/exercises/math/trigonometry/triangle/trigonometry.js +207 -0
  373. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts +10 -0
  374. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts.map +1 -0
  375. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.js +174 -0
  376. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts +11 -0
  377. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts.map +1 -0
  378. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.js +224 -0
  379. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts +13 -0
  380. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts.map +1 -0
  381. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.js +189 -0
  382. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts +13 -0
  383. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts.map +1 -0
  384. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.js +290 -0
  385. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts +18 -0
  386. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts.map +1 -0
  387. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.js +386 -0
  388. package/lib/exercises/pc/mathExosInPC.d.ts +2 -2
  389. package/lib/exercises/pc/mathExosInPC.d.ts.map +1 -1
  390. package/lib/exercises/pc/mathExosInPC.js +2 -2
  391. package/lib/exercises/vea/cartesianLineVEA.d.ts +2 -0
  392. package/lib/exercises/vea/cartesianLineVEA.d.ts.map +1 -0
  393. package/lib/exercises/vea/cartesianLineVEA.js +1 -0
  394. package/lib/index.d.ts +186 -27
  395. package/lib/index.d.ts.map +1 -1
  396. package/lib/math/geometry/line.d.ts +2 -0
  397. package/lib/math/geometry/line.d.ts.map +1 -1
  398. package/lib/math/geometry/line.js +7 -0
  399. package/lib/math/geometry/point.d.ts +1 -0
  400. package/lib/math/geometry/point.d.ts.map +1 -1
  401. package/lib/math/geometry/point.js +5 -0
  402. package/lib/math/geometry/polygons/relationPP.d.ts +8 -0
  403. package/lib/math/geometry/polygons/relationPP.d.ts.map +1 -0
  404. package/lib/math/geometry/polygons/relationPP.js +41 -0
  405. package/lib/math/geometry/segment.d.ts +1 -1
  406. package/lib/math/geometry/vector.d.ts +2 -1
  407. package/lib/math/geometry/vector.d.ts.map +1 -1
  408. package/lib/math/geometry/vector.js +1 -1
  409. package/lib/math/numbers/reals/real.d.ts.map +1 -1
  410. package/lib/math/numbers/reals/real.js +2 -0
  411. package/lib/math/polynomials/trinom.d.ts +1 -1
  412. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  413. package/lib/math/polynomials/trinom.js +15 -6
  414. package/lib/math/utils/arithmetic/primeFactors.js +1 -1
  415. package/lib/math/utils/geometry/randomVecs2.d.ts +6 -0
  416. package/lib/math/utils/geometry/randomVecs2.d.ts.map +1 -0
  417. package/lib/math/utils/geometry/randomVecs2.js +34 -0
  418. package/lib/playground.d.ts.map +1 -1
  419. package/lib/playground.js +3 -1
  420. package/lib/tests/questionTest.d.ts.map +1 -1
  421. package/lib/tests/questionTest.js +2 -2
  422. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  423. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  424. package/lib/tree/nodes/equations/equationSolutionNode.d.ts +1 -0
  425. package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
  426. package/lib/tree/nodes/equations/equationSolutionNode.js +3 -0
  427. package/lib/tree/nodes/functions/expNode.d.ts +1 -1
  428. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  429. package/lib/tree/nodes/functions/sqrtNode.d.ts +2 -1
  430. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  431. package/lib/tree/nodes/functions/sqrtNode.js +17 -6
  432. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +1 -0
  433. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  434. package/lib/tree/nodes/inequations/inequationSolutionNode.js +3 -0
  435. package/lib/tree/nodes/operators/fractionNode.d.ts +1 -1
  436. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  437. package/lib/tree/nodes/operators/fractionNode.js +6 -4
  438. package/lib/tree/nodes/operators/multiplyNode.js +1 -1
  439. package/lib/tree/nodes/sets/intervalNode.d.ts +6 -0
  440. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  441. package/lib/tree/nodes/sets/namedIntervalNode.d.ts +31 -0
  442. package/lib/tree/nodes/sets/namedIntervalNode.d.ts.map +1 -0
  443. package/lib/tree/nodes/sets/namedIntervalNode.js +77 -0
  444. package/package.json +1 -1
@@ -0,0 +1,444 @@
1
+ import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { Rational } from "../../../../../math/numbers/rationals/rational.js";
4
+ import { randint } from "../../../../../math/utils/random/randint.js";
5
+ import { exp } from "../../../../../tree/nodes/functions/expNode.js";
6
+ import { Polynomial } from "../../../../../math/polynomials/polynomial.js";
7
+ import { EquationSolutionNode } from "../../../../../tree/nodes/equations/equationSolutionNode.js";
8
+ import { EmptySet } from "../../../../../tree/nodes/sets/discreteSetNode.js";
9
+ import { zip } from "../../../../../utils/arrays/arrayZip.js";
10
+ import { MinusInfinityNode, PlusInfinityNode, } from "../../../../../tree/nodes/numbers/infiniteNode.js";
11
+ import { IntervalNode } from "../../../../../tree/nodes/sets/intervalNode.js";
12
+ import { ClosureType } from "../../../../../tree/nodes/sets/closure.js";
13
+ import { InequationSolutionNode } from "../../../../../tree/nodes/inequations/inequationSolutionNode.js";
14
+ import { Affine, AffineConstructor } from "../../../../../math/polynomials/affine.js";
15
+ import { alignTex } from "../../../../../utils/latex/alignTex.js";
16
+ import { frac } from "../../../../../tree/nodes/operators/fractionNode.js";
17
+ import { substract } from "../../../../../tree/nodes/operators/substractNode.js";
18
+ import { getCartesiansProducts } from "../../../../../utils/arrays/cartesianProducts.js";
19
+ import { InequationSymbol, InequationSymbolConstructor, } from "../../../../../math/inequations/inequation.js";
20
+ import { InequationNode } from "../../../../../tree/nodes/inequations/inequationNode.js";
21
+ import { inequationSolutionFormat } from "../../../../../exercises/options/inequationSolutionFormat.js";
22
+ import { unionIntervalParser } from "../../../../../tree/parsers/unionIntervalParser.js";
23
+ import { handleVEAError } from "../../../../../utils/errors/handleVEAError.js";
24
+ //reuse other exercises: (unfortunately breaks exosTest)
25
+ // import { reuseSecondDegreeInequation } from "../../../../../exercises/math/functions/trinoms/equation/secondDegreeInequation.js";
26
+ // import { reuseFirstDegreeInequationsType3 } from "../../../../../exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.js";
27
+ import { intervalParser } from "../../../../../tree/parsers/intervalParser.js";
28
+ import { inequationParser } from "../../../../../tree/parsers/inequationParser.js";
29
+ import { Trinom } from "../../../../../math/polynomials/trinom.js";
30
+ import { UnionIntervalNode } from "../../../../../tree/nodes/sets/unionIntervalNode.js";
31
+ import { coinFlip } from "../../../../../utils/alea/coinFlip.js";
32
+ import { NamedIntervalIds, NamedIntervalNodeConstructor, } from "../../../../../tree/nodes/sets/namedIntervalNode.js";
33
+ const reuseSecondDegreeInequation = {
34
+ getAnswerNode: (identifiers) => {
35
+ const { a, b, c, ineqType } = identifiers;
36
+ const ineq = new InequationSymbol(ineqType);
37
+ const trinom = new Trinom(a, b, c);
38
+ const roots = trinom.getRootsNode();
39
+ const aPositive = a > 0;
40
+ const insideInterval = new IntervalNode(roots[0], roots[1], ineq.isStrict ? ClosureType.OO : ClosureType.FF);
41
+ const outsideUnion = new UnionIntervalNode([
42
+ new IntervalNode(MinusInfinityNode, roots[0], ineq.isStrict ? ClosureType.OO : ClosureType.OF),
43
+ new IntervalNode(roots[1], PlusInfinityNode, ineq.isStrict ? ClosureType.OO : ClosureType.FO),
44
+ ]);
45
+ const tree = ineq.isSup
46
+ ? aPositive
47
+ ? outsideUnion
48
+ : insideInterval
49
+ : aPositive
50
+ ? insideInterval
51
+ : outsideUnion;
52
+ return new InequationSolutionNode(tree);
53
+ },
54
+ };
55
+ const reuseFirstDegreeInequationsType3 = {
56
+ getAnswerNode: (identifiers, opts) => {
57
+ const isInterval = opts?.inequationSolutionFormat === "Intervalle (S = [a;b])";
58
+ const { ineqType, a, b, c, d, coeff } = identifiers;
59
+ const affine1 = new Affine(a, b);
60
+ const affine2 = new Affine(c, d);
61
+ const result = new Rational(affine2.b - affine1.b, affine1.a - affine2.a)
62
+ .simplify()
63
+ .toTree();
64
+ const invIneqType = new InequationSymbol(ineqType).reversed();
65
+ const ineq = new InequationNode(["x".toTree(), result], coeff > 0 ? ineqType : invIneqType);
66
+ const node = isInterval
67
+ ? new InequationSolutionNode(ineq.toInterval())
68
+ : ineq;
69
+ return node;
70
+ },
71
+ };
72
+ const texXDomain = `\\mathbb{R}`;
73
+ const intervalbbR = NamedIntervalNodeConstructor.fromName(NamedIntervalIds.R);
74
+ const texbbR = intervalbbR.toTex();
75
+ const createNodeForCoeffs = (coeffs) => {
76
+ //because Error: n-th coeff must be not null at new Polynomial
77
+ const [a, b, c] = coeffs.toReversed();
78
+ if (a !== 0) {
79
+ return new Polynomial(coeffs).toTree();
80
+ }
81
+ else if (b !== 0) {
82
+ return AffineConstructor.fromCoeffs(coeffs).toTree();
83
+ }
84
+ else {
85
+ return c.toTree();
86
+ }
87
+ };
88
+ const getStartStatement = (identifiers) => {
89
+ return getStatementNode(identifiers).toTex();
90
+ };
91
+ const getStatementNode = (identifiers) => {
92
+ const { coeffsF, coeffsG, ineqType } = identifiers;
93
+ const [nodeF, nodeG] = [coeffsF, coeffsG].map(createNodeForCoeffs);
94
+ const statementTree = new InequationNode([exp(nodeF), exp(nodeG)], ineqType);
95
+ return statementTree;
96
+ };
97
+ const getInstruction = (identifiers) => {
98
+ return `Résoudre dans $${texXDomain}$ :
99
+
100
+ $$
101
+ ${getStatementNode(identifiers).toTex()}
102
+ $$`;
103
+ };
104
+ const getAnswerNode = (identifiers, opts) => {
105
+ const { inequationSolutionFormat } = opts;
106
+ const { coeffsF, coeffsG, ineqType } = identifiers;
107
+ const [a, b, c] = zip(coeffsF, coeffsG)
108
+ .map(([kF, kG]) => kF - kG)
109
+ .toReversed();
110
+ const isZero = [a, b, c].every((k) => k === 0);
111
+ if (isZero) {
112
+ switch (ineqType) {
113
+ case "<":
114
+ case ">":
115
+ return new EquationSolutionNode(EmptySet);
116
+ case "\\le":
117
+ case "\\ge": {
118
+ const intervalbbR = new IntervalNode(MinusInfinityNode, PlusInfinityNode, ClosureType.OO);
119
+ return new InequationSolutionNode(intervalbbR);
120
+ }
121
+ }
122
+ }
123
+ else {
124
+ if (a !== 0) {
125
+ return reuseSecondDegreeInequation.getAnswerNode({ a, b, c, ineqType });
126
+ }
127
+ else if (b !== 0) {
128
+ const [b, a] = coeffsF;
129
+ const [d, c] = coeffsG;
130
+ return reuseFirstDegreeInequationsType3.getAnswerNode({ a, b, c, d, ineqType, coeff: a - c }, { inequationSolutionFormat });
131
+ }
132
+ else {
133
+ //a==0,b==0,c!==0
134
+ return new EquationSolutionNode(EmptySet);
135
+ }
136
+ }
137
+ };
138
+ const getAnswer = (identifiers, optsIn) => {
139
+ const opts = optsIn ?? optsDefault;
140
+ const { coeffsF, coeffsG, ineqType } = identifiers;
141
+ const [a, b, c] = zip(coeffsF, coeffsG)
142
+ .map(([kF, kG]) => kF - kG)
143
+ .toReversed();
144
+ const isCoeffsZero = [a, b, c].every((k) => k === 0);
145
+ if (isCoeffsZero) {
146
+ switch (ineqType) {
147
+ case "<":
148
+ case ">": {
149
+ if (opts.inequationSolutionFormat === "Inégalité (x>a)") {
150
+ return `x\\in\\varnothing`;
151
+ }
152
+ else {
153
+ return `S=\\varnothing`;
154
+ }
155
+ }
156
+ case "\\le":
157
+ case "\\ge": {
158
+ if (opts.inequationSolutionFormat === "Inégalité (x>a)") {
159
+ return `x\\in${texbbR}`;
160
+ }
161
+ else {
162
+ return `S=${texbbR}`;
163
+ }
164
+ }
165
+ }
166
+ }
167
+ else {
168
+ return getAnswerNode(identifiers, opts).toTex();
169
+ }
170
+ };
171
+ const getHint = () => {
172
+ return `Essaye de transformer l'inéquation originale en une inéquation du type $e^{h(x)}=1$, puis résous cette inéquation.`;
173
+ };
174
+ const getCorrection = (identifiers, optsIn) => {
175
+ const opts = optsIn ?? optsDefault;
176
+ const { coeffsF, coeffsG, ineqType } = identifiers;
177
+ const [nodeF, nodeG] = [coeffsF, coeffsG].map(createNodeForCoeffs);
178
+ //that would be nice, but:
179
+ //Error: should-throw Too many iterations in simplify
180
+ // const nodeFMinusGSimplified = substract(nodeF, nodeG).simplify({
181
+ // towardsDistribute: true,
182
+ // });
183
+ //workaround:
184
+ const coeffsFMinusG = zip(coeffsF, coeffsG).map(([kF, kG]) => kF - kG);
185
+ const nodeFMinusGSimplified = createNodeForCoeffs(coeffsFMinusG);
186
+ return `On va transformer l'inéquation originale pour se ramener au cas $e^{f(x)} < 1$.
187
+
188
+ L'exponentielle est strictement positive sur $${intervalbbR.toTex()}$ donc on peut tout diviser par le membre de droite sans changer le sens de l'inégalité.
189
+
190
+ ${alignTex([
191
+ ["", "", getStatementNode(identifiers).toTex()],
192
+ [
193
+ "",
194
+ `\\Leftrightarrow`,
195
+ new InequationNode([frac(exp(nodeF), exp(nodeG)), (1).toTree()], ineqType).toTex(),
196
+ ],
197
+ [
198
+ "",
199
+ `\\Leftrightarrow`,
200
+ new InequationNode([exp(substract(nodeF, nodeG)), (1).toTree()], ineqType).toTex(),
201
+ ],
202
+ [
203
+ "",
204
+ `\\Leftrightarrow`,
205
+ new InequationNode([exp(nodeFMinusGSimplified), (1).toTree()], ineqType).toTex(),
206
+ ],
207
+ [
208
+ "",
209
+ `\\Leftrightarrow`,
210
+ new InequationNode([exp(nodeFMinusGSimplified), "e^{0}".toTree()], //hack pour éviter de me battre avec toTex etc.
211
+ ineqType).toTex(),
212
+ ],
213
+ [
214
+ "",
215
+ `\\Leftrightarrow`,
216
+ new InequationNode([nodeFMinusGSimplified, (0).toTree()], ineqType).toTex(),
217
+ ],
218
+ ])}
219
+
220
+ On résout l'inéquation :
221
+
222
+ $$
223
+ ${getAnswer(identifiers, opts)}
224
+ $$
225
+
226
+ `;
227
+ };
228
+ const getPropositions = (n, { answer, ...identifiers }, optsIn) => {
229
+ const opts = optsIn ?? optsDefault;
230
+ const propositions = [];
231
+ addValidProp(propositions, answer);
232
+ const { coeffsF, coeffsG, ineqType } = identifiers;
233
+ //random coeff signs for f and g
234
+ {
235
+ function getArrSign() {
236
+ return getCartesiansProducts([...Array(3).keys()].map(() => [-1, 1])).filter((arrS) => !arrS.every((s) => s === 1));
237
+ }
238
+ getCartesiansProducts([getArrSign(), getArrSign()]).forEach(([arrSignF, arrSignG]) => {
239
+ try {
240
+ const coeffsFWrong = zip(arrSignF, coeffsF).map(([s, k]) => s * k);
241
+ const coeffsGWrong = zip(arrSignG, coeffsG).map(([s, k]) => s * k);
242
+ const identifiersWrong = {
243
+ coeffsF: coeffsFWrong,
244
+ coeffsG: coeffsGWrong,
245
+ ineqType,
246
+ };
247
+ const texWrong = getAnswer(identifiersWrong, opts);
248
+ tryToAddWrongProp(propositions, texWrong);
249
+ }
250
+ catch (_) {
251
+ (() => { })();
252
+ }
253
+ });
254
+ }
255
+ //random ineqType
256
+ {
257
+ ["<", ">", "\\le", "\\ge"].forEach((inequalitySymbol) => {
258
+ try {
259
+ const identifiersWrong = {
260
+ coeffsF,
261
+ coeffsG,
262
+ ineqType: inequalitySymbol,
263
+ };
264
+ const texWrong = getAnswer(identifiersWrong, opts);
265
+ tryToAddWrongProp(propositions, texWrong);
266
+ }
267
+ catch (_) {
268
+ (() => { })();
269
+ }
270
+ });
271
+ }
272
+ const isInterval = opts?.inequationSolutionFormat === "Intervalle (S = [a;b])";
273
+ propWhile(propositions, n, () => {
274
+ const wrongRes = randint(-10, 11).toTree();
275
+ const wrongSymb = coinFlip()
276
+ ? ineqType
277
+ : InequationSymbolConstructor.reverse(ineqType);
278
+ const wrongIneq = new InequationNode(["x".toTree(), wrongRes], wrongSymb);
279
+ tryToAddWrongProp(propositions, isInterval
280
+ ? new InequationSolutionNode(wrongIneq.toInterval()).toTex()
281
+ : wrongIneq.toTex());
282
+ });
283
+ return shuffleProps(propositions, n);
284
+ };
285
+ const getKeys = (_identifiers, opts) => {
286
+ const isInterval = opts?.inequationSolutionFormat === "Intervalle (S = [a;b])";
287
+ if (isInterval)
288
+ return [
289
+ "S",
290
+ "equal",
291
+ "lbracket",
292
+ "semicolon",
293
+ "rbracket",
294
+ "infty",
295
+ "varnothing",
296
+ ];
297
+ return [
298
+ "x",
299
+ "inf",
300
+ "sup",
301
+ "leq",
302
+ "geq",
303
+ "belongs",
304
+ "varnothing",
305
+ "lbracket",
306
+ "semicolon",
307
+ "rbracket",
308
+ "infty",
309
+ ];
310
+ };
311
+ const isAnswerValid = (ans, { answer, ...identifiers }, opts) => {
312
+ if (ans === answer) {
313
+ return true;
314
+ }
315
+ const { coeffsF, coeffsG } = identifiers;
316
+ const [a, _b, _c] = zip(coeffsF, coeffsG)
317
+ .map(([kF, kG]) => kF - kG)
318
+ .toReversed();
319
+ if (a !== 0) {
320
+ try {
321
+ const isInterval = opts?.inequationSolutionFormat === "Intervalle (S = [a;b])";
322
+ if (isInterval) {
323
+ const parsed = unionIntervalParser(ans.replaceAll("S", "").replaceAll("=", ""));
324
+ if (!parsed)
325
+ return false;
326
+ return "S=\\ " + parsed.simplify().toTex() === answer;
327
+ }
328
+ else {
329
+ const parsed = inequationParser(ans);
330
+ if (!parsed)
331
+ return false;
332
+ return parsed.simplify({ decimalToFractions: true }).toTex() === answer;
333
+ }
334
+ }
335
+ catch (err) {
336
+ return handleVEAError(err);
337
+ }
338
+ }
339
+ else {
340
+ try {
341
+ const isInterval = opts?.inequationSolutionFormat === "Intervalle (S = [a;b])";
342
+ if (isInterval) {
343
+ const parsed = intervalParser(ans.replaceAll("S", "").replaceAll("=", ""));
344
+ if (!parsed)
345
+ return false;
346
+ return ("S=\\ " + parsed.simplify({ decimalToFractions: true }).toTex() ===
347
+ answer);
348
+ }
349
+ else {
350
+ const parsed = inequationParser(ans);
351
+ if (!parsed)
352
+ return false;
353
+ return parsed.simplify({ decimalToFractions: true }).toTex() === answer;
354
+ }
355
+ }
356
+ catch (err) {
357
+ return handleVEAError(err);
358
+ }
359
+ }
360
+ };
361
+ const getExpOfFEqualsExpOfGInequationQuestion = (optsIn) => {
362
+ const opts = optsIn ?? optsDefault;
363
+ const { functionTypeF, functionTypeG } = opts;
364
+ function degreeForFunctionType(functionType) {
365
+ switch (functionType) {
366
+ case "constante":
367
+ return 0;
368
+ case "degré $1$":
369
+ return 1;
370
+ case "degré $2$":
371
+ return 2;
372
+ default:
373
+ throw new Error("Unsupported functionType: " + functionType);
374
+ }
375
+ }
376
+ const [degreeF, degreeG] = [functionTypeF, functionTypeG].map(degreeForFunctionType);
377
+ function createCoeffs(degree) {
378
+ const c = randint(-10, 11, [0]);
379
+ const b = degree >= 1 ? randint(-10, 11, [0]) : 0;
380
+ const a = degree >= 2 ? randint(-10, 11, [0]) : 0;
381
+ return [c, b, a];
382
+ }
383
+ const [coeffsF, coeffsG] = [degreeF, degreeG].map(createCoeffs);
384
+ const ineqType = InequationSymbolConstructor.randomSymbol();
385
+ const identifiers = { coeffsF, coeffsG, ineqType };
386
+ return getQuestionFromIdentifiers(identifiers, opts);
387
+ };
388
+ const getQuestionFromIdentifiers = (identifiers, opts) => {
389
+ const question = {
390
+ instruction: getInstruction(identifiers, opts),
391
+ hint: getHint(identifiers, opts),
392
+ correction: getCorrection(identifiers, opts),
393
+ startStatement: getStartStatement(identifiers, opts),
394
+ answer: getAnswer(identifiers, opts),
395
+ keys: getKeys(identifiers, opts),
396
+ answerFormat: "tex",
397
+ identifiers,
398
+ };
399
+ return question;
400
+ };
401
+ const optsDefault = {
402
+ inequationSolutionFormat: inequationSolutionFormat.defaultValue,
403
+ functionTypeF: "degré $1$",
404
+ functionTypeG: "degré $1$",
405
+ };
406
+ const options = [
407
+ inequationSolutionFormat,
408
+ {
409
+ id: "functionTypeF",
410
+ label: "Fonction $f$ :",
411
+ target: GeneratorOptionTarget.generation,
412
+ type: GeneratorOptionType.select,
413
+ values: ["constante", "degré $1$", "degré $2$"],
414
+ defaultValue: optsDefault.functionTypeF,
415
+ },
416
+ {
417
+ id: "functionTypeG",
418
+ label: "Fonction $g$ :",
419
+ target: GeneratorOptionTarget.generation,
420
+ type: GeneratorOptionType.select,
421
+ values: ["constante", "degré $1$", "degré $2$"],
422
+ defaultValue: optsDefault.functionTypeG,
423
+ },
424
+ ];
425
+ export const expOfFEqualsExpOfGInequation = {
426
+ id: "expOfFEqualsExpOfGInequation",
427
+ connector: "\\iff",
428
+ label: "Résoudre une inéquation du type $e^{f(x)}<e^{g(x)}$",
429
+ isSingleStep: true,
430
+ generator: (nb, opts) => getDistinctQuestions(() => getExpOfFEqualsExpOfGInequationQuestion(opts), nb),
431
+ qcmTimer: 60,
432
+ freeTimer: 60,
433
+ getPropositions,
434
+ isAnswerValid,
435
+ subject: "Mathématiques",
436
+ hasHintAndCorrection: true,
437
+ getAnswer,
438
+ getInstruction,
439
+ getCorrection,
440
+ getHint,
441
+ getStartStatement,
442
+ getQuestionFromIdentifiers,
443
+ options,
444
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./expOfFEqualsExpOfGInequation.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/calculLitteral/inequations/exp/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./expOfFEqualsExpOfGInequation.js";
@@ -1 +1 @@
1
- {"version":3,"file":"firstDegreeInequationsType3.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,gBAAgB,EAGjB,MAAM,sCAAsC,CAAC;AAY9C,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAwLF,KAAK,OAAO,GAAG;IACb,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CActE,CAAC"}
1
+ {"version":3,"file":"firstDegreeInequationsType3.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,gBAAgB,EAGjB,MAAM,sCAAsC,CAAC;AAY9C,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA4LF,KAAK,OAAO,GAAG;IACb,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CActE,CAAC"}
@@ -23,7 +23,7 @@ $$
23
23
  ${affine1.toTex()} ${ineqType} ${affine2.toTex()}
24
24
  $$`;
25
25
  };
26
- const getAnswer = (identifiers, opts) => {
26
+ const getAnswerNode = (identifiers, opts) => {
27
27
  const isInterval = opts?.inequationSolutionFormat === "Intervalle (S = [a;b])";
28
28
  const { ineqType, a, b, c, d, coeff } = identifiers;
29
29
  const affine1 = new Affine(a, b);
@@ -33,10 +33,13 @@ const getAnswer = (identifiers, opts) => {
33
33
  .toTree();
34
34
  const invIneqType = new InequationSymbol(ineqType).reversed();
35
35
  const ineq = new InequationNode(["x".toTree(), result], coeff > 0 ? ineqType : invIneqType);
36
- const answer = isInterval
37
- ? new InequationSolutionNode(ineq.toInterval()).toTex()
38
- : ineq.toTex();
39
- return answer;
36
+ const node = isInterval
37
+ ? new InequationSolutionNode(ineq.toInterval())
38
+ : ineq;
39
+ return node;
40
+ };
41
+ const getAnswer = (identifiers, opts) => {
42
+ return getAnswerNode(identifiers, opts).toTex();
40
43
  };
41
44
  // const getHint: GetHint<Identifiers, Options> = (identifiers, opts) => {
42
45
  // return `Isole le terme $x$ dans le membre de gauche de l'inéquation. Attention : lorsqu'on multiplie (ou divise) les deux membres d'une inéquation par un nombre négatif, le sens de l'inéquation est inversé.`;
@@ -155,3 +158,6 @@ export const firstDegreeInequationsType3 = {
155
158
  options,
156
159
  getQuestionFromIdentifiers,
157
160
  };
161
+ // export const reuseFirstDegreeInequationsType3 = {
162
+ // getAnswerNode,
163
+ // };
@@ -8,4 +8,5 @@ export * from "./inequationsSign.js";
8
8
  export * from "./minNumberInequality.js";
9
9
  export * from "./isInequalityTrue.js";
10
10
  export * from "./inverseInequalityWithGraph.js";
11
+ export * from "./exp/index.js";
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/inequations/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/calculLitteral/inequations/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gBAAgB,CAAC"}
@@ -8,3 +8,4 @@ export * from "./inequationsSign.js";
8
8
  export * from "./minNumberInequality.js";
9
9
  export * from "./isInequalityTrue.js";
10
10
  export * from "./inverseInequalityWithGraph.js";
11
+ export * from "./exp/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"expDerivativeFour.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/derivation/derivative/exp/expDerivativeFour.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAyFF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAenD,CAAC"}
1
+ {"version":3,"file":"expDerivativeFour.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/derivation/derivative/exp/expDerivativeFour.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AASrC,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAiKF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAgBnD,CAAC"}
@@ -18,9 +18,6 @@ $$
18
18
  f(x) = ${fct.toTex()}
19
19
  $$`;
20
20
  };
21
- const getAnswer = (identifiers) => {
22
- return getAnswerNode(identifiers).toTex();
23
- };
24
21
  const getAnswerNode = (identifiers) => {
25
22
  const { affine1Coeffs, affine2Coeffs } = identifiers;
26
23
  const affine1 = new Affine(affine1Coeffs[1], affine1Coeffs[0]);
@@ -29,25 +26,75 @@ const getAnswerNode = (identifiers) => {
29
26
  const deriv = new MultiplyNode(new Affine(affine2.a * affine1.a, affine1.a + affine2.a * affine1.b).toTree(), exp);
30
27
  return deriv.simplify();
31
28
  };
32
- const getExpDerivativeFourQuestion = () => {
33
- const affine1 = AffineConstructor.random();
34
- const affine2 = AffineConstructor.random();
35
- const identifiers = {
36
- affine1Coeffs: affine1.coefficients,
37
- affine2Coeffs: affine2.coefficients,
38
- };
39
- //ae^cx+d + c(ax+b)e^cx+d = (a+c(ax+b))e^cx+d = (cax + a +cb) e^cx+d
40
- return getQuestionFromIdentifiers(identifiers);
29
+ const getAnswer = (identifiers) => {
30
+ return getAnswerNode(identifiers).toTex();
41
31
  };
42
- const getQuestionFromIdentifiers = (identifiers) => {
43
- const question = {
44
- answer: getAnswer(identifiers),
45
- instruction: getInstruction(identifiers),
46
- keys: ["x", "epower", "exp"],
47
- answerFormat: "tex",
48
- identifiers,
49
- };
50
- return question;
32
+ const getHint = () => {
33
+ return `Si $u$ et $v$ sont deux fonctions dérivables, alors :
34
+
35
+ $$
36
+ (uv)'(x) = u'(x)v(x) + u(x)v'(x)
37
+ $$
38
+
39
+ Si $w$ est une fonction dérivable alors :
40
+
41
+ $$
42
+ (e^{w(x)})'(x) = w'(x) \\times e^{w(x)}
43
+ $$
44
+
45
+ `;
46
+ };
47
+ const getCorrection = (identifiers) => {
48
+ const { affine1Coeffs, affine2Coeffs } = identifiers;
49
+ const affine1 = new Affine(affine1Coeffs[1], affine1Coeffs[0]);
50
+ const affine2 = new Affine(affine2Coeffs[1], affine2Coeffs[0]);
51
+ return `Si $u$ et $v$ sont deux fonctions dérivables, alors :
52
+
53
+ $$
54
+ (uv)'(x) = u'(x)v(x) + u(x)v'(x)
55
+ $$
56
+
57
+ Ici :
58
+
59
+ $$
60
+ u(x) = ${affine1.toTex()}
61
+ $$
62
+
63
+ $$
64
+ v(x) = e^{${affine2.toTex()}}
65
+ $$
66
+
67
+ $$
68
+ u'(x) = ${affine1.toTree().derivative().simplify().toTex()}
69
+ $$
70
+
71
+ $$
72
+ v'(x) = ${affine2
73
+ .toTree()
74
+ .derivative()
75
+ .simplify()
76
+ .toTex()} \\times e^{${affine2.toTex()}}
77
+ $$
78
+
79
+ Donc :
80
+
81
+ $$
82
+ f'(x) = ${affine1
83
+ .toTree()
84
+ .derivative()
85
+ .simplify()
86
+ .toTex()} \\times e^{${affine2.toTex()}} + (${affine1.toTex()}) \\times (${affine2
87
+ .toTree()
88
+ .derivative()
89
+ .simplify()
90
+ .toTex()} \\times e^{${affine2.toTex()}})
91
+ $$
92
+
93
+ $$
94
+ f'(x) = ${getAnswer(identifiers)}
95
+ $$
96
+
97
+ `;
51
98
  };
52
99
  const getPropositions = (n, { answer }) => {
53
100
  const propositions = [];
@@ -69,6 +116,28 @@ const isAnswerValid = (ans, { answer, ...identifiers }) => {
69
116
  return handleVEAError(err);
70
117
  }
71
118
  };
119
+ const getExpDerivativeFourQuestion = () => {
120
+ const affine1 = AffineConstructor.random();
121
+ const affine2 = AffineConstructor.random();
122
+ const identifiers = {
123
+ affine1Coeffs: affine1.coefficients,
124
+ affine2Coeffs: affine2.coefficients,
125
+ };
126
+ //ae^cx+d + c(ax+b)e^cx+d = (a+c(ax+b))e^cx+d = (cax + a +cb) e^cx+d
127
+ return getQuestionFromIdentifiers(identifiers);
128
+ };
129
+ const getQuestionFromIdentifiers = (identifiers) => {
130
+ const question = {
131
+ answer: getAnswer(identifiers),
132
+ instruction: getInstruction(identifiers),
133
+ keys: ["x", "epower", "exp"],
134
+ answerFormat: "tex",
135
+ identifiers,
136
+ hint: getHint(identifiers),
137
+ correction: getCorrection(identifiers),
138
+ };
139
+ return question;
140
+ };
72
141
  export const expDerivativeFour = {
73
142
  id: "expDerivativeFour",
74
143
  connector: "=",
@@ -83,4 +152,5 @@ export const expDerivativeFour = {
83
152
  getInstruction,
84
153
  getAnswer,
85
154
  getQuestionFromIdentifiers,
155
+ hasHintAndCorrection: true,
86
156
  };
@@ -1 +1 @@
1
- {"version":3,"file":"expDerivativeOne.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/derivation/derivative/exp/expDerivativeOne.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAsFF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAclD,CAAC"}
1
+ {"version":3,"file":"expDerivativeOne.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/derivation/derivative/exp/expDerivativeOne.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AA8IF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAelD,CAAC"}