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,118 @@
1
+ import { addValidProp, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { Polynomial } from "../../../../math/polynomials/polynomial.js";
4
+ import { randint } from "../../../../math/utils/random/randint.js";
5
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
6
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
7
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
8
+ import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
9
+ import { shuffle } from "../../../../utils/alea/shuffle.js";
10
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
11
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
12
+ const getHint = () => {
13
+ return `Utilise la formule générale d'une suite arithmétique :
14
+
15
+ $$
16
+ u_n = u_k + (n-k) \\times r
17
+ $$
18
+
19
+ où $r$ la raison et $k$ est un entier.`;
20
+ };
21
+ const getCorrection = (identifiers) => {
22
+ const { firstRank, firstValue, reason } = identifiers;
23
+ const answer = getAnswer(identifiers);
24
+ return `La formule générale d'une suite arithmétique est :
25
+
26
+ $$
27
+ u_n = u_k + (n-k) \\times r
28
+ $$
29
+
30
+ où $r$ la raison et $k$ est un entier.
31
+
32
+ Ici, puisque $u_${firstRank} = ${firstValue}$ et $r = ${reason}$, on a :
33
+
34
+ ${alignTex([
35
+ [
36
+ "u_n",
37
+ "=",
38
+ add(firstValue, multiply(substract("n", firstRank), reason)).toTex(),
39
+ ],
40
+ ["", "=", answer.split("=")[1]],
41
+ ])}
42
+ `;
43
+ };
44
+ const getInstruction = (identifiers) => {
45
+ const { firstRank, firstValue, reason } = identifiers;
46
+ return `$(u_n)$ est une suite arithmétique de premier terme $u_{${firstRank}} = ${firstValue}$ et de raison $r = ${reason}$.
47
+
48
+ Donner l'expression de $u_n$ en fonction de $n$.`;
49
+ };
50
+ const getAnswer = (identifiers) => {
51
+ const { firstRank, firstValue, reason } = identifiers;
52
+ const formula = new Polynomial([firstValue - firstRank * reason, reason], "n");
53
+ const answer = "u_n=" + formula.toTex();
54
+ return answer;
55
+ };
56
+ const getArithmeticFindExplicitFormulaFirstTermRandom = () => {
57
+ const firstRank = randint(0, 8);
58
+ const firstValue = randint(-10, 10);
59
+ const reason = randint(-10, 10, [0]);
60
+ const identifiers = { firstValue, reason, firstRank };
61
+ return getQuestionFromIdentifiers(identifiers);
62
+ };
63
+ const getQuestionFromIdentifiers = (identifiers) => {
64
+ const question = {
65
+ instruction: getInstruction(identifiers),
66
+ answer: getAnswer(identifiers),
67
+ keys: ["un", "equal", "n"],
68
+ answerFormat: "tex",
69
+ identifiers,
70
+ hint: getHint(identifiers),
71
+ correction: getCorrection(identifiers),
72
+ };
73
+ return question;
74
+ };
75
+ const getPropositions = (n, { answer, firstValue, reason }) => {
76
+ const propositions = [];
77
+ addValidProp(propositions, answer);
78
+ propWhile(propositions, n, () => {
79
+ tryToAddWrongProp(propositions, "u_n=" +
80
+ new Polynomial([firstValue + randint(-3, 4), reason + randint(-3, 4, [-reason])], "n")
81
+ .toTree()
82
+ .toTex());
83
+ });
84
+ return shuffle(propositions);
85
+ };
86
+ const isAnswerValid = (ans, { answer }) => {
87
+ try {
88
+ const formated = ans.replaceAll("u_n", "").replaceAll("=", "");
89
+ const parsed = parseAlgebraic(formated);
90
+ return (parsed
91
+ .simplify({
92
+ towardsDistribute: true,
93
+ forbidFactorize: true,
94
+ })
95
+ .toTex() === answer.split("=")[1]);
96
+ }
97
+ catch (err) {
98
+ return handleVEAError(err);
99
+ }
100
+ };
101
+ export const arithmeticFindExplicitFormulaFirstTermRandom = {
102
+ id: "arithmeticFindExplicitFormulaFirstTermRandom",
103
+ connector: "=",
104
+ label: "Déterminer la formule générale d'une suite arithmétique (premier rang aléatoire)",
105
+ isSingleStep: false,
106
+ generator: (nb) => getDistinctQuestions(getArithmeticFindExplicitFormulaFirstTermRandom, nb),
107
+ qcmTimer: 60,
108
+ freeTimer: 60,
109
+ getPropositions,
110
+ isAnswerValid,
111
+ subject: "Mathématiques",
112
+ getAnswer,
113
+ getInstruction,
114
+ getHint,
115
+ getCorrection,
116
+ hasHintAndCorrection: true,
117
+ getQuestionFromIdentifiers,
118
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"arithmeticFindRandomTermFromTwoTerms.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAKrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA6DF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,WAAW,CActE,CAAC"}
1
+ {"version":3,"file":"arithmeticFindRandomTermFromTwoTerms.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAYrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAqGF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,WAAW,CAetE,CAAC"}
@@ -1,12 +1,19 @@
1
1
  import { addValidProp, shuffleProps, tryToAddWrongProp, propWhile, } from "../../../../exercises/exercise.js";
2
2
  import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
3
4
  import { randint } from "../../../../math/utils/random/randint.js";
4
5
  import { round } from "../../../../math/utils/round.js";
6
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
7
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
8
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
9
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
10
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
11
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
5
12
  const getInstruction = (identifiers) => {
6
13
  const { rank1, value1, rankAsked, rank2, value2 } = identifiers;
7
14
  return `Soit $u$ une suite arithmétique telle que $u_{${rank1}} = ${value1}$ et $u_{${rank2}} = ${value2}$.
8
15
 
9
- Quelle est la valeur de $u_{${rankAsked}}$ ?`;
16
+ Que vaut $u_{${rankAsked}}$ ?`;
10
17
  };
11
18
  const getAnswer = (identifiers) => {
12
19
  const { rank1, value1, rankAsked, rank2, value2 } = identifiers;
@@ -14,10 +21,44 @@ const getAnswer = (identifiers) => {
14
21
  const value3 = reason * (rankAsked - rank2) + value2;
15
22
  return value3.frenchify();
16
23
  };
17
- // const getHint: GetHint<Identifiers> =(identifiers)=>{
18
- // }
19
- // const getCorrection: GetCorrection<Identifiers> = (identifiers)=>{
20
- // }
24
+ const getHint = (identifiers) => {
25
+ const { rankAsked } = identifiers;
26
+ return `Commence par déterminer la raison $r$ de la suite $u$.
27
+
28
+ Puis, utilise cette raison et un des termes connus de la suite pour déterminer $u_{${rankAsked}}$.`;
29
+ };
30
+ const getCorrection = (identifiers) => {
31
+ const { rank1, value1, rankAsked, rank2, value2 } = identifiers;
32
+ const reason = round((value2 - value1) / (rank2 - rank1), 0);
33
+ const closest = Math.abs(rankAsked - rank1) < Math.abs(rankAsked - rank2) ? rank1 : rank2;
34
+ const diff = rankAsked - closest;
35
+ const closestValue = closest === rank1 ? value1 : value2;
36
+ return `On commence par déterminer la raison $r$ de la suite $u$ :
37
+
38
+ ${alignTex([
39
+ ["r", "=", `\\frac{u_{${rank2}} - u_{${rank1}}}{${rank2}-${rank1}}`],
40
+ [
41
+ "",
42
+ "=",
43
+ frac(substract(value2, value1), substract(rank2, rank1).simplify()).toTex(),
44
+ ],
45
+ [
46
+ "",
47
+ "=",
48
+ frac(substract(value2, value1), substract(rank2, rank1)).simplify().toTex(),
49
+ ],
50
+ ])}
51
+
52
+ On peut alors déterminer $u_{${rankAsked}}$ en utilisant $u_{${closest}}$ et $r$. En effet, on a :
53
+
54
+ ${alignTex([
55
+ [`u_{${rankAsked}}`, "=", add(`u_{${closest}}`, multiply(diff, "r")).toTex()],
56
+ ["", "=", add(closestValue, multiply(diff, reason)).toTex()],
57
+ ["", "=", add(closestValue, multiply(diff, reason)).simplify().toTex()],
58
+ ])}
59
+
60
+ `;
61
+ };
21
62
  const getQuestionFromIdentifiers = (identifiers) => {
22
63
  const question = {
23
64
  answer: getAnswer(identifiers),
@@ -25,6 +66,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
25
66
  keys: [],
26
67
  answerFormat: "tex",
27
68
  identifiers,
69
+ hint: getHint(identifiers),
70
+ correction: getCorrection(identifiers),
28
71
  };
29
72
  return question;
30
73
  };
@@ -47,7 +90,12 @@ const getPropositions = (n, { answer }) => {
47
90
  return shuffleProps(propositions, n);
48
91
  };
49
92
  const isAnswerValid = (ans, { answer }) => {
50
- return ans === answer;
93
+ try {
94
+ return numberVEA(ans, answer);
95
+ }
96
+ catch (err) {
97
+ return handleVEAError(err);
98
+ }
51
99
  };
52
100
  export const arithmeticFindRandomTermFromTwoTerms = {
53
101
  id: "arithmeticFindRandomTermFromTwoTerms",
@@ -61,4 +109,5 @@ export const arithmeticFindRandomTermFromTwoTerms = {
61
109
  isAnswerValid,
62
110
  subject: "Mathématiques",
63
111
  getQuestionFromIdentifiers,
112
+ hasHintAndCorrection: true,
64
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"arithmeticFindReasonRandomRange.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAmDF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAajE,CAAC"}
1
+ {"version":3,"file":"arithmeticFindReasonRandomRange.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAyFF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAcjE,CAAC"}
@@ -1,11 +1,16 @@
1
1
  import { addValidProp, propWhile, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
2
  import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
3
  import { randint } from "../../../../math/utils/random/randint.js";
4
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
5
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
4
6
  import { shuffle } from "../../../../utils/alea/shuffle.js";
7
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
5
8
  const getInstruction = (identifiers) => {
6
9
  const { rank1, value1, rank2, reason } = identifiers;
7
10
  const value2 = reason * (rank2 - rank1) + value1;
8
- return `$(u_n)$ est une suite arithmétique. On sait que $u_{${rank1}} = ${value1}$ et $u_{${rank2}} = ${value2}$.
11
+ return `$(u_n)$ est une suite arithmétique.
12
+
13
+ On sait que $u_{${rank1}} = ${value1}$ et $u_{${rank2}} = ${value2}$.
9
14
 
10
15
  Quelle est la raison de la suite $(u_n)$ ?`;
11
16
  };
@@ -13,6 +18,39 @@ const getAnswer = (identifiers) => {
13
18
  const { reason } = identifiers;
14
19
  return reason.frenchify();
15
20
  };
21
+ const getHint = () => {
22
+ return `Si $u$ est une suite arithmétique, alors la raison de $u$ est le nombre qu'on ajoute (ou soustrait) à un terme pour obtenir le suivant.`;
23
+ };
24
+ const getCorrection = (identifiers) => {
25
+ const { rank1, value1, rank2, reason } = identifiers;
26
+ const value2 = reason * (rank2 - rank1) + value1;
27
+ return `Puisque $u$ est une suite arithmétique, et puisque :
28
+
29
+ $$
30
+ ${rank2} - ${rank1} = ${rank2 - rank1}
31
+ $$
32
+
33
+ alors on a :
34
+
35
+ $$
36
+ u_{${rank2}} = ${rank2 - rank1}\\times r + u_{${rank1}}
37
+ $$
38
+
39
+ où $r$ est la raison.
40
+
41
+ On en déduit donc :
42
+
43
+ ${alignTex([
44
+ ["r", "=", `\\frac{u_{${rank2}} - u_{${rank1}}}{${rank2 - rank1}}`],
45
+ [
46
+ "",
47
+ "=",
48
+ frac(substract(value2, value1), substract(rank2, rank1).simplify()).toTex(),
49
+ ],
50
+ ["", "=", getAnswer(identifiers)],
51
+ ])}
52
+ `;
53
+ };
16
54
  const getQuestionFromIdentifiers = (identifiers) => {
17
55
  const question = {
18
56
  instruction: getInstruction(identifiers),
@@ -21,6 +59,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
21
59
  keys: [],
22
60
  answerFormat: "tex",
23
61
  identifiers,
62
+ hint: getHint(identifiers),
63
+ correction: getCorrection(identifiers),
24
64
  };
25
65
  return question;
26
66
  };
@@ -55,4 +95,5 @@ export const arithmeticFindReasonRandomRange = {
55
95
  generator: (nb) => getDistinctQuestions(getArithmeticFindReasonRandomRange, nb),
56
96
  subject: "Mathématiques",
57
97
  getQuestionFromIdentifiers,
98
+ hasHintAndCorrection: true,
58
99
  };
@@ -5,6 +5,9 @@ type Identifiers = {
5
5
  reason: number;
6
6
  nbTerms: number;
7
7
  };
8
- export declare const arithmeticFirstTermsSum: Exercise<Identifiers>;
8
+ type Options = {
9
+ firstTermRank: string;
10
+ };
11
+ export declare const arithmeticFirstTermsSum: Exercise<Identifiers, Options>;
9
12
  export {};
10
13
  //# sourceMappingURL=arithmeticFirstTermsSum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arithmeticFirstTermsSum.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAKrC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0DF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAezD,CAAC"}
1
+ {"version":3,"file":"arithmeticFirstTermsSum.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAkBT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqGF,KAAK,OAAO,GAAG;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAeF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAelE,CAAC"}
@@ -1,10 +1,44 @@
1
- import { addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
1
+ import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
2
  import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
3
  import { randint } from "../../../../math/utils/random/randint.js";
4
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
5
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
6
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
4
7
  import { random } from "../../../../utils/alea/random.js";
8
+ const getHint = () => {
9
+ return `La somme $S$ des $n$ premiers termes d'une suite arithmétique s'obtient par la formule :
10
+
11
+ $$
12
+ S = n \\times \\frac{1^{\\text{er}}\\text{terme} + \\text{dernier terme}}{2}
13
+ $$`;
14
+ };
15
+ const getCorrection = (identifiers) => {
16
+ const { firstRank, firstValue, nbTerms, reason } = identifiers;
17
+ const lastRank = firstRank + nbTerms - 1;
18
+ const lastValue = firstValue + reason * (nbTerms - 1);
19
+ return `La somme $S$ des $n$ premiers termes d'une suite arithmétique s'obtient par la formule :
20
+
21
+ $$
22
+ S = n \\times \\frac{1^{\\text{er}}\\text{terme} + \\text{dernier terme}}{2}
23
+ $$
24
+
25
+ On calcule le dernier terme de la somme :
26
+
27
+ $$
28
+ u_{${lastRank}} = ${add(firstValue, multiply(nbTerms - 1, reason)).toTex()} = ${lastValue}
29
+ $$
30
+
31
+ La somme des $${nbTerms}$ premiers termes de $u$ vaut donc :
32
+
33
+ $$
34
+ ${multiply(nbTerms, frac(add(firstValue, lastValue), 2)).toTex()} = ${getAnswer(identifiers)}
35
+ $$`;
36
+ };
5
37
  const getInstruction = (identifiers) => {
6
38
  const { firstRank, firstValue, reason, nbTerms } = identifiers;
7
- return `Soit $u$ une suite arithmétique de premier terme $u_${firstRank} = ${firstValue}$ et de raison $${reason}$. Calculer la somme des $${nbTerms}$ premiers termes de $u$.`;
39
+ return `Soit $u$ une suite arithmétique de premier terme $u_${firstRank} = ${firstValue}$ et de raison $${reason}$.
40
+
41
+ Calculer la somme des $${nbTerms}$ premiers termes de $u$.`;
8
42
  };
9
43
  const getAnswer = (identifiers) => {
10
44
  const { firstRank, firstValue, reason, nbTerms } = identifiers;
@@ -15,8 +49,12 @@ const getAnswer = (identifiers) => {
15
49
  const answerTex = answer + "";
16
50
  return answerTex;
17
51
  };
18
- const getArithmeticFirstTermsSumQuestion = () => {
19
- const firstRank = random([0, 1]);
52
+ const getArithmeticFirstTermsSumQuestion = (opts) => {
53
+ const firstRank = opts?.firstTermRank === "$u_{0}$"
54
+ ? 0
55
+ : opts?.firstTermRank === "$u_{1}$"
56
+ ? 1
57
+ : random([0, 1]);
20
58
  const firstValue = randint(-9, 10);
21
59
  const reason = randint(-5, 5, [0]);
22
60
  const nbTerms = randint(4, 9);
@@ -30,6 +68,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
30
68
  keys: [],
31
69
  answerFormat: "tex",
32
70
  identifiers,
71
+ hint: getHint(identifiers),
72
+ correction: getCorrection(identifiers),
33
73
  };
34
74
  return question;
35
75
  };
@@ -41,6 +81,16 @@ const getPropositions = (n, { answer }) => {
41
81
  });
42
82
  return shuffleProps(propositions, n);
43
83
  };
84
+ const options = [
85
+ {
86
+ id: "firstTermRank",
87
+ label: "Rang du premier terme",
88
+ target: GeneratorOptionTarget.generation,
89
+ type: GeneratorOptionType.select,
90
+ values: ["$u_{0}$", "$u_{1}$", "L'un ou l'autre"],
91
+ defaultValue: "L'un ou l'autre",
92
+ },
93
+ ];
44
94
  const isAnswerValid = (ans, { answer }) => {
45
95
  return ans === answer;
46
96
  };
@@ -49,13 +99,13 @@ export const arithmeticFirstTermsSum = {
49
99
  connector: "=",
50
100
  label: "Calculer la somme des premiers termes d'une suite arithmétique",
51
101
  isSingleStep: true,
52
- generator: (nb) => getDistinctQuestions(getArithmeticFirstTermsSumQuestion, nb),
102
+ generator: (nb, opts) => getDistinctQuestions(() => getArithmeticFirstTermsSumQuestion(opts), nb),
53
103
  qcmTimer: 60,
54
104
  freeTimer: 60,
55
105
  getPropositions,
56
106
  isAnswerValid,
57
107
  subject: "Mathématiques",
58
- getAnswer,
59
- getInstruction,
108
+ hasHintAndCorrection: true,
60
109
  getQuestionFromIdentifiers,
110
+ options,
61
111
  };
@@ -1 +1 @@
1
- {"version":3,"file":"arithmeticRecurrenceFormulaUsage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAIrC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAwEF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,WAAW,CAalE,CAAC"}
1
+ {"version":3,"file":"arithmeticRecurrenceFormulaUsage.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAMrC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAkGF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,WAAW,CAclE,CAAC"}
@@ -1,11 +1,30 @@
1
1
  import { addValidProp, tryToAddWrongProp, propWhile, } from "../../../../exercises/exercise.js";
2
2
  import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
3
  import { randint } from "../../../../math/utils/random/randint.js";
4
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
4
5
  import { shuffle } from "../../../../utils/alea/shuffle.js";
6
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
7
+ const getHint = (identifiers) => {
8
+ const { firstRank } = identifiers;
9
+ const askedRank = firstRank + 1;
10
+ return `Il suffit de remplacer $n$ par $${askedRank - 1}$ dans la formule de récurrence de la suite $u$.`;
11
+ };
12
+ const getCorrection = (identifiers) => {
13
+ const { firstRank, firstValue, reason } = identifiers;
14
+ const askedRank = firstRank + 1;
15
+ return `On remplace $n$ par $${askedRank - 1}$ dans la formule de récurrence :
16
+
17
+ ${alignTex([
18
+ [`u_{${firstRank}+1}`, "=", `${reason} + u_{${firstRank}}`],
19
+ [`u_{${askedRank}}`, "=", add(reason, firstValue).toTex()],
20
+ ["", "=", getAnswer(identifiers)],
21
+ ])}
22
+ `;
23
+ };
5
24
  const getInstruction = (identifiers) => {
6
25
  const { firstRank, firstValue, reason } = identifiers;
7
26
  const askedRank = firstRank + 1;
8
- return `$(u_n)$ est une suite définie par :
27
+ return `$(u_n)$ est une suite définie par, pour $n\\geq 1$ :
9
28
 
10
29
  $$
11
30
  u_{n+1} = ${reason} + u_n
@@ -25,9 +44,11 @@ const getQuestionFromIdentifiers = (identifiers) => {
25
44
  instruction: getInstruction(identifiers),
26
45
  startStatement: getStartStatement(identifiers),
27
46
  answer: getAnswer(identifiers),
28
- keys: ["u", "underscore", "equal"],
47
+ keys: [],
29
48
  answerFormat: "tex",
30
49
  identifiers,
50
+ hint: getHint(identifiers),
51
+ correction: getCorrection(identifiers),
31
52
  };
32
53
  return question;
33
54
  };
@@ -70,4 +91,5 @@ export const arithmeticRecurrenceFormulaUsage = {
70
91
  isAnswerValid,
71
92
  subject: "Mathématiques",
72
93
  getQuestionFromIdentifiers,
94
+ hasHintAndCorrection: true,
73
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"arithmeticThresholdFind.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticThresholdFind.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EAYT,MAAM,sBAAsB,CAAC;AAG9B,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA+EF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAazD,CAAC"}
1
+ {"version":3,"file":"arithmeticThresholdFind.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/arithmeticThresholdFind.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAcT,MAAM,sBAAsB,CAAC;AAG9B,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA6GF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAczD,CAAC"}
@@ -1,31 +1,51 @@
1
+ import { Affine } from "../../../../math/polynomials/affine.js";
1
2
  import { Polynomial } from "../../../../math/polynomials/polynomial.js";
2
3
  import { randint } from "../../../../math/utils/random/randint.js";
4
+ import { firstDegreeInequationResolutionTex } from "../../../../tree/nodes/inequations/inequationNode.js";
3
5
  import { shuffle } from "../../../../utils/alea/shuffle.js";
4
6
  import { addValidProp, propWhile, tryToAddWrongProp, } from "../../../exercise.js";
5
7
  import { getDistinctQuestions } from "../../../utils/getDistinctQuestions.js";
6
8
  const getInstruction = (identifiers) => {
7
9
  const { firstValue, reason, randValue } = identifiers;
8
10
  const formula = new Polynomial([firstValue, reason], "n");
9
- let instruction = `$(u_n)$ est une suite arithmétique définie par
11
+ return `$(u_n)$ est une suite arithmétique définie par :
10
12
 
11
13
  $$
12
14
  u_n = ${formula.toTree().toTex()}
13
15
  $$
14
16
 
17
+ À partir de quel rang $n$ a-t-on $u_n ${reason > 0 ? ">" : "<"} ${randValue}$ ?
15
18
  `;
16
- if (reason > 0) {
17
- instruction += `À partir de quel rang $n$ a-t-on $u_n > ${randValue}$ ?`;
18
- }
19
- else {
20
- instruction += `À partir de quel rang $n$ a-t-on $u_n < ${randValue}$ ?`;
21
- }
22
- return instruction;
23
19
  };
24
20
  const getAnswer = (identifiers) => {
25
21
  const { firstValue, reason, randValue } = identifiers;
26
22
  const answer = (Math.floor((randValue - firstValue) / reason) + 1).toString();
27
23
  return answer;
28
24
  };
25
+ const getHint = (identifiers) => {
26
+ const { firstValue, reason, randValue } = identifiers;
27
+ const formula = new Polynomial([firstValue, reason], "n");
28
+ return `Résous l'inéquation :
29
+
30
+ $$
31
+ ${formula.toTree().toTex()} ${reason > 0 ? ">" : "<"} ${randValue}
32
+ $$
33
+
34
+ Attention, le rang $n$ recherché doit être un nombre entier.`;
35
+ };
36
+ const getCorrection = (identifiers) => {
37
+ const { firstValue, reason, randValue } = identifiers;
38
+ return `On résous l'inéquation :
39
+
40
+
41
+
42
+ $$
43
+ ${firstDegreeInequationResolutionTex(new Affine(reason, firstValue, "n"), reason > 0 ? "<" : ">", randValue.toTree())}
44
+ $$
45
+
46
+ Puisque $n$ doit être entier, le rang $n$ recherché est donc $${getAnswer(identifiers)}$.
47
+ `;
48
+ };
29
49
  const getQuestionFromIdentifiers = (identifiers) => {
30
50
  const question = {
31
51
  instruction: getInstruction(identifiers),
@@ -34,6 +54,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
34
54
  keys: ["r", "n", "u", "underscore", "inf", "sup", "approx"],
35
55
  answerFormat: "tex",
36
56
  identifiers,
57
+ hint: getHint(identifiers),
58
+ correction: getCorrection(identifiers),
37
59
  };
38
60
  return question;
39
61
  };
@@ -73,4 +95,5 @@ export const arithmeticThresholdFind = {
73
95
  isAnswerValid,
74
96
  subject: "Mathématiques",
75
97
  getQuestionFromIdentifiers,
98
+ hasHintAndCorrection: true,
76
99
  };
@@ -11,7 +11,7 @@ export * from "./recognizeReasonFromFirstTerms.js";
11
11
  export * from "./recognizeReasonFromGraph.js";
12
12
  export * from "./recognizeArithmeticFromGraph.js";
13
13
  export * from "./arithmeticFirstTermsSum.js";
14
- export * from "./arithmeticFindExplictFormulaFirstTermRandom.js";
14
+ export * from "./arithmeticFindExplicitFormulaFirstTermRandom.js";
15
15
  export * from "./arithmeticFindReasonRandomRange.js";
16
16
  export * from "./arithmeticFindRandomTermFromTwoTerms.js";
17
17
  export * from "./arithmeticFindTerm.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AAEpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kDAAkD,CAAC;AACjE,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AAEpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mDAAmD,CAAC;AAClE,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC"}
@@ -11,7 +11,7 @@ export * from "./recognizeReasonFromFirstTerms.js";
11
11
  export * from "./recognizeReasonFromGraph.js";
12
12
  export * from "./recognizeArithmeticFromGraph.js";
13
13
  export * from "./arithmeticFirstTermsSum.js";
14
- export * from "./arithmeticFindExplictFormulaFirstTermRandom.js";
14
+ export * from "./arithmeticFindExplicitFormulaFirstTermRandom.js";
15
15
  export * from "./arithmeticFindReasonRandomRange.js";
16
16
  export * from "./arithmeticFindRandomTermFromTwoTerms.js";
17
17
  export * from "./arithmeticFindTerm.js";
@@ -1 +1 @@
1
- {"version":3,"file":"recognizeArithmeticFromGraph.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAiGF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAa9D,CAAC"}
1
+ {"version":3,"file":"recognizeArithmeticFromGraph.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AA6GF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAc9D,CAAC"}
@@ -28,14 +28,23 @@ const getGGBOptions = (identifiers) => {
28
28
  coords: [-1, 7, Math.min(-1, yMin - 2), Math.max(1, yMax + 2)],
29
29
  });
30
30
  };
31
+ // const getHint: GetHint<Identifiers> = () => {
32
+ // return `Une suite est arithmétique si, pour passer d'un terme au suivant, on ajoute toujours le même nombre (appelé la raison de la suite).
33
+ // Sur le graphique, les points `;
34
+ // };
35
+ // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {
36
+ // return ``;
37
+ // };
31
38
  const getQuestionFromIdentifiers = (identifiers) => {
32
39
  const question = {
33
40
  answer: getAnswer(identifiers),
34
41
  instruction: getInstruction(identifiers),
35
42
  keys: [],
36
43
  ggbOptions: getGGBOptions(identifiers),
37
- answerFormat: "tex",
44
+ answerFormat: "raw",
38
45
  identifiers,
46
+ // hint: getHint(identifiers),
47
+ // correction: getCorrection(identifiers),
39
48
  };
40
49
  return question;
41
50
  };
@@ -97,4 +106,5 @@ export const recognizeArithmeticFromGraph = {
97
106
  hasGeogebra: true,
98
107
  subject: "Mathématiques",
99
108
  getQuestionFromIdentifiers,
109
+ // hasHintAndCorrection: true,
100
110
  };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/generation/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Exercise } from '../../../../exercises/exercise.js';
2
+ import { NodeIdentifiers } from '../../../../tree/nodes/nodeConstructor.js';
3
+ type Identifiers = {
4
+ relations: NodeIdentifiers[];
5
+ };
6
+ export declare const recognizeRecurrenceOrExplicit: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=recognizeRecurrenceOrExplicit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recognizeRecurrenceOrExplicit.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAGtE,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,eAAe,EAAE,CAAA;CAC7B,CAAC;AA2DF,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,WAAW,CAiB/D,CAAC"}