math-exercises 3.0.199 → 3.0.201

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 (523) hide show
  1. package/lib/exercises/exercise.d.ts +14 -1
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/_debug/debugReorder1.d.ts +8 -0
  4. package/lib/exercises/math/_debug/debugReorder1.d.ts.map +1 -0
  5. package/lib/exercises/math/_debug/debugReorder1.js +81 -0
  6. package/lib/exercises/math/_debug/debugReorder2.d.ts +10 -0
  7. package/lib/exercises/math/_debug/debugReorder2.d.ts.map +1 -0
  8. package/lib/exercises/math/_debug/debugReorder2.js +88 -0
  9. package/lib/exercises/math/_debug/debugReorder3.d.ts +10 -0
  10. package/lib/exercises/math/_debug/debugReorder3.d.ts.map +1 -0
  11. package/lib/exercises/math/_debug/debugReorder3.js +81 -0
  12. package/lib/exercises/math/_debug/index.d.ts +3 -1
  13. package/lib/exercises/math/_debug/index.d.ts.map +1 -1
  14. package/lib/exercises/math/_debug/index.js +3 -1
  15. package/lib/exercises/math/calcul/factorial/index.d.ts +2 -0
  16. package/lib/exercises/math/calcul/factorial/index.d.ts.map +1 -0
  17. package/lib/exercises/math/calcul/factorial/index.js +1 -0
  18. package/lib/exercises/math/calcul/factorial/simplifyQuotientOfFactorialToProduct.d.ts +8 -0
  19. package/lib/exercises/math/calcul/factorial/simplifyQuotientOfFactorialToProduct.d.ts.map +1 -0
  20. package/lib/exercises/math/calcul/factorial/simplifyQuotientOfFactorialToProduct.js +199 -0
  21. package/lib/exercises/math/calcul/fractions/fractionsSumsPrimeDenominators.js +1 -1
  22. package/lib/exercises/math/calcul/index.d.ts +1 -0
  23. package/lib/exercises/math/calcul/index.d.ts.map +1 -1
  24. package/lib/exercises/math/calcul/index.js +1 -0
  25. package/lib/exercises/math/calculLitteral/inequations/index.d.ts +1 -0
  26. package/lib/exercises/math/calculLitteral/inequations/index.d.ts.map +1 -1
  27. package/lib/exercises/math/calculLitteral/inequations/index.js +1 -0
  28. package/lib/exercises/math/calculLitteral/inequations/inequationCenteredInterval.d.ts +14 -0
  29. package/lib/exercises/math/calculLitteral/inequations/inequationCenteredInterval.d.ts.map +1 -0
  30. package/lib/exercises/math/calculLitteral/inequations/inequationCenteredInterval.js +263 -0
  31. package/lib/exercises/math/combinatory/anagrams.d.ts.map +1 -1
  32. package/lib/exercises/math/combinatory/anagrams.js +89 -68
  33. package/lib/exercises/math/combinatory/combination/index.d.ts +3 -0
  34. package/lib/exercises/math/combinatory/combination/index.d.ts.map +1 -0
  35. package/lib/exercises/math/combinatory/combination/index.js +2 -0
  36. package/lib/exercises/math/combinatory/combination/mentalCalculateCombination.d.ts +11 -0
  37. package/lib/exercises/math/combinatory/combination/mentalCalculateCombination.d.ts.map +1 -0
  38. package/lib/exercises/math/combinatory/combination/mentalCalculateCombination.js +225 -0
  39. package/lib/exercises/math/combinatory/combination/writeCombinationFormulaUsingFactorial.d.ts +13 -0
  40. package/lib/exercises/math/combinatory/combination/writeCombinationFormulaUsingFactorial.d.ts.map +1 -0
  41. package/lib/exercises/math/combinatory/combination/writeCombinationFormulaUsingFactorial.js +285 -0
  42. package/lib/exercises/math/combinatory/index.d.ts +1 -0
  43. package/lib/exercises/math/combinatory/index.d.ts.map +1 -1
  44. package/lib/exercises/math/combinatory/index.js +1 -0
  45. package/lib/exercises/math/dataRepresentations/index.d.ts +1 -1
  46. package/lib/exercises/math/dataRepresentations/index.d.ts.map +1 -1
  47. package/lib/exercises/math/dataRepresentations/index.js +5 -1
  48. package/lib/exercises/math/dataRepresentations/scatterPlot/index.d.ts +0 -2
  49. package/lib/exercises/math/dataRepresentations/scatterPlot/index.d.ts.map +1 -1
  50. package/lib/exercises/math/dataRepresentations/scatterPlot/index.js +2 -2
  51. package/lib/exercises/math/dataRepresentations/scatterPlot/scatterPlotInterpreting.d.ts.map +1 -1
  52. package/lib/exercises/math/dataRepresentations/scatterPlot/scatterPlotInterpreting.js +1 -1
  53. package/lib/exercises/math/derivation/derivative/trigo/index.d.ts +2 -0
  54. package/lib/exercises/math/derivation/derivative/trigo/index.d.ts.map +1 -1
  55. package/lib/exercises/math/derivation/derivative/trigo/index.js +3 -0
  56. package/lib/exercises/math/derivation/derivative/trigo/productOfSinAXPlusBCosCXPlusDDerivative.d.ts +9 -0
  57. package/lib/exercises/math/derivation/derivative/trigo/productOfSinAXPlusBCosCXPlusDDerivative.d.ts.map +1 -0
  58. package/lib/exercises/math/derivation/derivative/trigo/productOfSinAXPlusBCosCXPlusDDerivative.js +209 -0
  59. package/lib/exercises/math/derivation/derivative/trigo/sinAndCosMixedWithSquareDerivative.d.ts +9 -0
  60. package/lib/exercises/math/derivation/derivative/trigo/sinAndCosMixedWithSquareDerivative.d.ts.map +1 -0
  61. package/lib/exercises/math/derivation/derivative/trigo/sinAndCosMixedWithSquareDerivative.js +359 -0
  62. package/lib/exercises/math/derivation/derivative/trigo/sinCosDerivativeRewriteUsingCos2PlusSin2Equals1.d.ts +11 -0
  63. package/lib/exercises/math/derivation/derivative/trigo/sinCosDerivativeRewriteUsingCos2PlusSin2Equals1.d.ts.map +1 -0
  64. package/lib/exercises/math/derivation/derivative/trigo/sinCosDerivativeRewriteUsingCos2PlusSin2Equals1.js +445 -0
  65. package/lib/exercises/math/derivation/problems/index.d.ts +0 -1
  66. package/lib/exercises/math/derivation/problems/index.d.ts.map +1 -1
  67. package/lib/exercises/math/derivation/problems/index.js +1 -1
  68. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.d.ts.map +1 -1
  69. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.js +5 -2
  70. package/lib/exercises/math/derivation/tangent/index.d.ts +0 -1
  71. package/lib/exercises/math/derivation/tangent/index.d.ts.map +1 -1
  72. package/lib/exercises/math/derivation/tangent/index.js +1 -1
  73. package/lib/exercises/math/derivation/variations/index.d.ts +1 -1
  74. package/lib/exercises/math/derivation/variations/index.d.ts.map +1 -1
  75. package/lib/exercises/math/derivation/variations/index.js +2 -1
  76. package/lib/exercises/math/derivation/variations/signVarTableAffinePlusCXLogX.d.ts +10 -0
  77. package/lib/exercises/math/derivation/variations/signVarTableAffinePlusCXLogX.d.ts.map +1 -0
  78. package/lib/exercises/math/derivation/variations/signVarTableAffinePlusCXLogX.js +222 -0
  79. package/lib/exercises/math/derivation/variations/signVarTableProductFExp.js +1 -1
  80. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.js +1 -1
  81. package/lib/exercises/math/functions/affines/affineVarTableOnBoundedInterval.d.ts.map +1 -1
  82. package/lib/exercises/math/functions/affines/affineVarTableOnBoundedInterval.js +2 -3
  83. package/lib/exercises/math/functions/affines/index.d.ts +5 -0
  84. package/lib/exercises/math/functions/affines/index.d.ts.map +1 -1
  85. package/lib/exercises/math/functions/affines/index.js +5 -0
  86. package/lib/exercises/math/functions/integral/index.d.ts +1 -0
  87. package/lib/exercises/math/functions/integral/index.d.ts.map +1 -1
  88. package/lib/exercises/math/functions/integral/index.js +1 -0
  89. package/lib/exercises/math/functions/integral/integralTrinomialOverX2.d.ts +12 -0
  90. package/lib/exercises/math/functions/integral/integralTrinomialOverX2.d.ts.map +1 -0
  91. package/lib/exercises/math/functions/integral/integralTrinomialOverX2.js +280 -0
  92. package/lib/exercises/math/functions/logarithm/findLargestPossibleDomainOfLogF.d.ts +13 -0
  93. package/lib/exercises/math/functions/logarithm/findLargestPossibleDomainOfLogF.d.ts.map +1 -0
  94. package/lib/exercises/math/functions/logarithm/findLargestPossibleDomainOfLogF.js +622 -0
  95. package/lib/exercises/math/functions/logarithm/index.d.ts +5 -0
  96. package/lib/exercises/math/functions/logarithm/index.d.ts.map +1 -1
  97. package/lib/exercises/math/functions/logarithm/index.js +5 -0
  98. package/lib/exercises/math/functions/logarithm/logEquationLnAXPlusBEqualsK.d.ts +10 -0
  99. package/lib/exercises/math/functions/logarithm/logEquationLnAXPlusBEqualsK.d.ts.map +1 -0
  100. package/lib/exercises/math/functions/logarithm/logEquationLnAXPlusBEqualsK.js +172 -0
  101. package/lib/exercises/math/functions/logarithm/logInequationIntegerSolutions.d.ts +11 -0
  102. package/lib/exercises/math/functions/logarithm/logInequationIntegerSolutions.d.ts.map +1 -0
  103. package/lib/exercises/math/functions/logarithm/logInequationIntegerSolutions.js +163 -0
  104. package/lib/exercises/math/functions/logarithm/logInequationLnAXPlusBInfK.d.ts +18 -0
  105. package/lib/exercises/math/functions/logarithm/logInequationLnAXPlusBInfK.d.ts.map +1 -0
  106. package/lib/exercises/math/functions/logarithm/logInequationLnAXPlusBInfK.js +330 -0
  107. package/lib/exercises/math/functions/logarithm/logLinearCombinationSimplifiying.d.ts +11 -0
  108. package/lib/exercises/math/functions/logarithm/logLinearCombinationSimplifiying.d.ts.map +1 -0
  109. package/lib/exercises/math/functions/logarithm/logLinearCombinationSimplifiying.js +185 -0
  110. package/lib/exercises/math/index.d.ts +1 -0
  111. package/lib/exercises/math/index.d.ts.map +1 -1
  112. package/lib/exercises/math/index.js +1 -0
  113. package/lib/exercises/math/integration/fromExpr/areaBetweenCrossingCurvesFixedPosFromExpr.d.ts +15 -0
  114. package/lib/exercises/math/integration/fromExpr/areaBetweenCrossingCurvesFixedPosFromExpr.d.ts.map +1 -0
  115. package/lib/exercises/math/integration/fromExpr/areaBetweenCrossingCurvesFixedPosFromExpr.js +505 -0
  116. package/lib/exercises/math/integration/fromExpr/boundIntegralByBoundingFunctionWithAffinesFromExpr.d.ts +16 -0
  117. package/lib/exercises/math/integration/fromExpr/boundIntegralByBoundingFunctionWithAffinesFromExpr.d.ts.map +1 -0
  118. package/lib/exercises/math/integration/fromExpr/boundIntegralByBoundingFunctionWithAffinesFromExpr.js +433 -0
  119. package/lib/exercises/math/integration/fromExpr/boundIntegralByManualRectanglesMethodFromExpr.d.ts +15 -0
  120. package/lib/exercises/math/integration/fromExpr/boundIntegralByManualRectanglesMethodFromExpr.d.ts.map +1 -0
  121. package/lib/exercises/math/integration/fromExpr/boundIntegralByManualRectanglesMethodFromExpr.js +436 -0
  122. package/lib/exercises/math/integration/fromExpr/byParts/index.d.ts +3 -0
  123. package/lib/exercises/math/integration/fromExpr/byParts/index.d.ts.map +1 -0
  124. package/lib/exercises/math/integration/fromExpr/byParts/index.js +2 -0
  125. package/lib/exercises/math/integration/fromExpr/byParts/integralOfAXPlusBTimesExpKXByParts.d.ts +9 -0
  126. package/lib/exercises/math/integration/fromExpr/byParts/integralOfAXPlusBTimesExpKXByParts.d.ts.map +1 -0
  127. package/lib/exercises/math/integration/fromExpr/byParts/integralOfAXPlusBTimesExpKXByParts.js +234 -0
  128. package/lib/exercises/math/integration/fromExpr/byParts/integralOfPolynomialTimesLogXByParts.d.ts +12 -0
  129. package/lib/exercises/math/integration/fromExpr/byParts/integralOfPolynomialTimesLogXByParts.d.ts.map +1 -0
  130. package/lib/exercises/math/integration/fromExpr/byParts/integralOfPolynomialTimesLogXByParts.js +330 -0
  131. package/lib/exercises/math/integration/fromExpr/checkIsPrimitiveFromExpr.d.ts +15 -0
  132. package/lib/exercises/math/integration/fromExpr/checkIsPrimitiveFromExpr.d.ts.map +1 -0
  133. package/lib/exercises/math/integration/fromExpr/checkIsPrimitiveFromExpr.js +450 -0
  134. package/lib/exercises/math/integration/fromExpr/derivativeOfPrimitive.d.ts +10 -0
  135. package/lib/exercises/math/integration/fromExpr/derivativeOfPrimitive.d.ts.map +1 -0
  136. package/lib/exercises/math/integration/fromExpr/derivativeOfPrimitive.js +261 -0
  137. package/lib/exercises/math/integration/fromExpr/index.d.ts +8 -0
  138. package/lib/exercises/math/integration/fromExpr/index.d.ts.map +1 -0
  139. package/lib/exercises/math/integration/fromExpr/index.js +8 -0
  140. package/lib/exercises/math/integration/fromExpr/integralFromExpr.d.ts +13 -0
  141. package/lib/exercises/math/integration/fromExpr/integralFromExpr.d.ts.map +1 -0
  142. package/lib/exercises/math/integration/fromExpr/integralFromExpr.js +359 -0
  143. package/lib/exercises/math/integration/fromExpr/meanValue/index.d.ts +2 -0
  144. package/lib/exercises/math/integration/fromExpr/meanValue/index.d.ts.map +1 -0
  145. package/lib/exercises/math/integration/fromExpr/meanValue/index.js +1 -0
  146. package/lib/exercises/math/integration/fromExpr/meanValue/meanValueOfTrinomFromIntegralFromExpr.d.ts +14 -0
  147. package/lib/exercises/math/integration/fromExpr/meanValue/meanValueOfTrinomFromIntegralFromExpr.d.ts.map +1 -0
  148. package/lib/exercises/math/integration/fromExpr/meanValue/meanValueOfTrinomFromIntegralFromExpr.js +429 -0
  149. package/lib/exercises/math/integration/fromGraph/boundIntegralByManipulatingAutomaticRectanglesMethodFromGraph.d.ts +10 -0
  150. package/lib/exercises/math/integration/fromGraph/boundIntegralByManipulatingAutomaticRectanglesMethodFromGraph.d.ts.map +1 -0
  151. package/lib/exercises/math/integration/fromGraph/boundIntegralByManipulatingAutomaticRectanglesMethodFromGraph.js +286 -0
  152. package/lib/exercises/math/integration/fromGraph/imageOfPrimitiveByManipulatingIntegralBoundsFromGraph.d.ts +9 -0
  153. package/lib/exercises/math/integration/fromGraph/imageOfPrimitiveByManipulatingIntegralBoundsFromGraph.d.ts.map +1 -0
  154. package/lib/exercises/math/integration/fromGraph/imageOfPrimitiveByManipulatingIntegralBoundsFromGraph.js +231 -0
  155. package/lib/exercises/math/integration/fromGraph/index.d.ts +7 -0
  156. package/lib/exercises/math/integration/fromGraph/index.d.ts.map +1 -0
  157. package/lib/exercises/math/integration/fromGraph/index.js +6 -0
  158. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromExprByComputingArea.d.ts +15 -0
  159. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromExprByComputingArea.d.ts.map +1 -0
  160. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromExprByComputingArea.js +464 -0
  161. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromGraph.d.ts +15 -0
  162. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromGraph.d.ts.map +1 -0
  163. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromGraph.js +493 -0
  164. package/lib/exercises/math/integration/fromGraph/integralOfPiecewiseAffineFromGraph.d.ts +18 -0
  165. package/lib/exercises/math/integration/fromGraph/integralOfPiecewiseAffineFromGraph.d.ts.map +1 -0
  166. package/lib/exercises/math/integration/fromGraph/integralOfPiecewiseAffineFromGraph.js +466 -0
  167. package/lib/exercises/math/integration/fromGraph/varTableOfPrimitiveFromGraph.d.ts +10 -0
  168. package/lib/exercises/math/integration/fromGraph/varTableOfPrimitiveFromGraph.d.ts.map +1 -0
  169. package/lib/exercises/math/integration/fromGraph/varTableOfPrimitiveFromGraph.js +192 -0
  170. package/lib/exercises/math/integration/index.d.ts +4 -0
  171. package/lib/exercises/math/integration/index.d.ts.map +1 -0
  172. package/lib/exercises/math/integration/index.js +3 -0
  173. package/lib/exercises/math/integration/integralOfPiecewiseFunctionByUsingComputedIntegrals.d.ts +14 -0
  174. package/lib/exercises/math/integration/integralOfPiecewiseFunctionByUsingComputedIntegrals.d.ts.map +1 -0
  175. package/lib/exercises/math/integration/integralOfPiecewiseFunctionByUsingComputedIntegrals.js +222 -0
  176. package/lib/exercises/math/limits/frac1XTimesALogXPlusBLimit.d.ts +8 -0
  177. package/lib/exercises/math/limits/frac1XTimesALogXPlusBLimit.d.ts.map +1 -0
  178. package/lib/exercises/math/limits/frac1XTimesALogXPlusBLimit.js +121 -0
  179. package/lib/exercises/math/limits/index.d.ts +3 -0
  180. package/lib/exercises/math/limits/index.d.ts.map +1 -1
  181. package/lib/exercises/math/limits/index.js +3 -0
  182. package/lib/exercises/math/limits/kLogXPlusTrinomLimit.d.ts +12 -0
  183. package/lib/exercises/math/limits/kLogXPlusTrinomLimit.d.ts.map +1 -0
  184. package/lib/exercises/math/limits/kLogXPlusTrinomLimit.js +224 -0
  185. package/lib/exercises/math/limits/logOfPolynomialLimit.d.ts +10 -0
  186. package/lib/exercises/math/limits/logOfPolynomialLimit.d.ts.map +1 -0
  187. package/lib/exercises/math/limits/logOfPolynomialLimit.js +154 -0
  188. package/lib/exercises/math/limits/sequenceGeometricLimit.d.ts.map +1 -1
  189. package/lib/exercises/math/limits/sequenceGeometricLimit.js +9 -0
  190. package/lib/exercises/math/primitive/constantPrimitive.d.ts +8 -5
  191. package/lib/exercises/math/primitive/constantPrimitive.d.ts.map +1 -1
  192. package/lib/exercises/math/primitive/constantPrimitive.js +40 -21
  193. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfLinearCombination.d.ts +12 -0
  194. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfLinearCombination.d.ts.map +1 -0
  195. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfLinearCombination.js +170 -0
  196. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromDice.d.ts +7 -0
  197. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromDice.d.ts.map +1 -0
  198. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromDice.js +163 -0
  199. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromProbaLaw.d.ts +14 -0
  200. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromProbaLaw.d.ts.map +1 -0
  201. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromProbaLaw.js +150 -0
  202. package/lib/exercises/math/probaStat/basicProbas/index.d.ts +5 -0
  203. package/lib/exercises/math/probaStat/basicProbas/index.d.ts.map +1 -1
  204. package/lib/exercises/math/probaStat/basicProbas/index.js +5 -0
  205. package/lib/exercises/math/probaStat/basicProbas/varianceOfLinearCombination.d.ts +12 -0
  206. package/lib/exercises/math/probaStat/basicProbas/varianceOfLinearCombination.d.ts.map +1 -0
  207. package/lib/exercises/math/probaStat/basicProbas/varianceOfLinearCombination.js +193 -0
  208. package/lib/exercises/math/probaStat/basicProbas/varianceOfMean.d.ts +13 -0
  209. package/lib/exercises/math/probaStat/basicProbas/varianceOfMean.d.ts.map +1 -0
  210. package/lib/exercises/math/probaStat/basicProbas/varianceOfMean.js +171 -0
  211. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialExpectedValueFromSituation.d.ts +9 -0
  212. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialExpectedValueFromSituation.d.ts.map +1 -0
  213. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialExpectedValueFromSituation.js +125 -0
  214. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindParamsFromSituation.d.ts +9 -0
  215. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindParamsFromSituation.d.ts.map +1 -0
  216. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindParamsFromSituation.js +126 -0
  217. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfAtLeastOneSuccessFromSituation.d.ts +8 -0
  218. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfAtLeastOneSuccessFromSituation.d.ts.map +1 -0
  219. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfAtLeastOneSuccessFromSituation.js +150 -0
  220. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfXCompKFromSituation.d.ts +15 -0
  221. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfXCompKFromSituation.d.ts.map +1 -0
  222. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfXCompKFromSituation.js +386 -0
  223. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindThresholdForNFromSituation.d.ts +14 -0
  224. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindThresholdForNFromSituation.d.ts.map +1 -0
  225. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindThresholdForNFromSituation.js +248 -0
  226. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialSituations.d.ts +47 -0
  227. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialSituations.d.ts.map +1 -0
  228. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialSituations.js +184 -0
  229. package/lib/exercises/math/probaStat/binomial/fromSituation/buildTreeBernoulliFromSituation.d.ts +9 -0
  230. package/lib/exercises/math/probaStat/binomial/fromSituation/buildTreeBernoulliFromSituation.d.ts.map +1 -0
  231. package/lib/exercises/math/probaStat/binomial/fromSituation/buildTreeBernoulliFromSituation.js +120 -0
  232. package/lib/exercises/math/probaStat/binomial/fromSituation/index.d.ts +7 -0
  233. package/lib/exercises/math/probaStat/binomial/fromSituation/index.d.ts.map +1 -0
  234. package/lib/exercises/math/probaStat/binomial/fromSituation/index.js +6 -0
  235. package/lib/exercises/math/probaStat/binomial/index.d.ts +1 -0
  236. package/lib/exercises/math/probaStat/binomial/index.d.ts.map +1 -1
  237. package/lib/exercises/math/probaStat/binomial/index.js +1 -0
  238. package/lib/exercises/math/probaStat/index.d.ts +1 -0
  239. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  240. package/lib/exercises/math/probaStat/index.js +1 -0
  241. package/lib/exercises/math/probaStat/stats2var/averagePoint.d.ts.map +1 -1
  242. package/lib/exercises/math/probaStat/stats2var/averagePoint.js +34 -2
  243. package/lib/exercises/math/probaStat/tchebychev/index.d.ts +5 -0
  244. package/lib/exercises/math/probaStat/tchebychev/index.d.ts.map +1 -0
  245. package/lib/exercises/math/probaStat/tchebychev/index.js +4 -0
  246. package/lib/exercises/math/probaStat/tchebychev/mean/index.d.ts +4 -0
  247. package/lib/exercises/math/probaStat/tchebychev/mean/index.d.ts.map +1 -0
  248. package/lib/exercises/math/probaStat/tchebychev/mean/index.js +3 -0
  249. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevFindRadiusToMinorizeProbaOfMeanInCenteredInterval.d.ts +11 -0
  250. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevFindRadiusToMinorizeProbaOfMeanInCenteredInterval.d.ts.map +1 -0
  251. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevFindRadiusToMinorizeProbaOfMeanInCenteredInterval.js +273 -0
  252. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMajorizeProbaOfMeanOutOfCenteredInterval.d.ts +14 -0
  253. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMajorizeProbaOfMeanOutOfCenteredInterval.d.ts.map +1 -0
  254. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMajorizeProbaOfMeanOutOfCenteredInterval.js +219 -0
  255. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMinorizeProbaOfMeanInCenteredInterval.d.ts +14 -0
  256. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMinorizeProbaOfMeanInCenteredInterval.d.ts.map +1 -0
  257. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMinorizeProbaOfMeanInCenteredInterval.js +245 -0
  258. package/lib/exercises/math/probaStat/tchebychev/tchebychevFindRadiusToMajorizeProbaOfXOutOfCenteredInterval.d.ts +10 -0
  259. package/lib/exercises/math/probaStat/tchebychev/tchebychevFindRadiusToMajorizeProbaOfXOutOfCenteredInterval.d.ts.map +1 -0
  260. package/lib/exercises/math/probaStat/tchebychev/tchebychevFindRadiusToMajorizeProbaOfXOutOfCenteredInterval.js +191 -0
  261. package/lib/exercises/math/probaStat/tchebychev/tchebychevMajorizeProbaOfXOutOfCenteredInterval.d.ts +10 -0
  262. package/lib/exercises/math/probaStat/tchebychev/tchebychevMajorizeProbaOfXOutOfCenteredInterval.d.ts.map +1 -0
  263. package/lib/exercises/math/probaStat/tchebychev/tchebychevMajorizeProbaOfXOutOfCenteredInterval.js +135 -0
  264. package/lib/exercises/math/probaStat/tchebychev/tchebychevMinorizeProbaOfXInCenteredInterval.d.ts +10 -0
  265. package/lib/exercises/math/probaStat/tchebychev/tchebychevMinorizeProbaOfXInCenteredInterval.d.ts.map +1 -0
  266. package/lib/exercises/math/probaStat/tchebychev/tchebychevMinorizeProbaOfXInCenteredInterval.js +155 -0
  267. package/lib/exercises/math/probaStat/trees/buildTreeBernoulli.d.ts +9 -0
  268. package/lib/exercises/math/probaStat/trees/buildTreeBernoulli.d.ts.map +1 -0
  269. package/lib/exercises/math/probaStat/trees/buildTreeBernoulli.js +124 -0
  270. package/lib/exercises/math/probaStat/trees/index.d.ts +1 -0
  271. package/lib/exercises/math/probaStat/trees/index.d.ts.map +1 -1
  272. package/lib/exercises/math/probaStat/trees/index.js +1 -0
  273. package/lib/exercises/math/sequences/geometric/graph/geometricFindThresholdFromGraph.d.ts +15 -0
  274. package/lib/exercises/math/sequences/geometric/graph/geometricFindThresholdFromGraph.d.ts.map +1 -0
  275. package/lib/exercises/math/sequences/geometric/graph/geometricFindThresholdFromGraph.js +255 -0
  276. package/lib/exercises/math/sequences/geometric/graph/geometricFindThresholdUsingCalculator.d.ts +15 -0
  277. package/lib/exercises/math/sequences/geometric/graph/geometricFindThresholdUsingCalculator.d.ts.map +1 -0
  278. package/lib/exercises/math/sequences/geometric/graph/geometricFindThresholdUsingCalculator.js +242 -0
  279. package/lib/exercises/math/sequences/geometric/graph/geometricPlaceFirstPoints.js +4 -4
  280. package/lib/exercises/math/sequences/geometric/graph/geometricSignOfReasonFromGraph.d.ts +12 -0
  281. package/lib/exercises/math/sequences/geometric/graph/geometricSignOfReasonFromGraph.d.ts.map +1 -0
  282. package/lib/exercises/math/sequences/geometric/graph/geometricSignOfReasonFromGraph.js +161 -0
  283. package/lib/exercises/math/sequences/geometric/graph/index.d.ts +4 -0
  284. package/lib/exercises/math/sequences/geometric/graph/index.d.ts.map +1 -1
  285. package/lib/exercises/math/sequences/geometric/graph/index.js +4 -0
  286. package/lib/exercises/math/sequences/geometric/index.d.ts +2 -0
  287. package/lib/exercises/math/sequences/geometric/index.d.ts.map +1 -1
  288. package/lib/exercises/math/sequences/geometric/index.js +2 -0
  289. package/lib/exercises/math/sequences/geometric/situations/geometricFindRankFromSituation.d.ts.map +1 -1
  290. package/lib/exercises/math/sequences/geometric/situations/geometricFindRankFromSituation.js +71 -48
  291. package/lib/exercises/math/sequences/geometric/situations/index.d.ts +2 -1
  292. package/lib/exercises/math/sequences/geometric/situations/index.d.ts.map +1 -1
  293. package/lib/exercises/math/sequences/geometric/situations/index.js +2 -2
  294. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSets.d.ts +10 -0
  295. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSets.d.ts.map +1 -0
  296. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSets.js +224 -0
  297. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSetsFromSituation.d.ts +18 -0
  298. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSetsFromSituation.d.ts.map +1 -0
  299. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSetsFromSituation.js +198 -0
  300. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfPowEK.d.ts +10 -0
  301. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfPowEK.d.ts.map +1 -0
  302. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfPowEK.js +231 -0
  303. package/lib/exercises/math/sets/cartesianProduct/findNumberOfPasswordsWithLettersAndNumbers.d.ts +19 -0
  304. package/lib/exercises/math/sets/cartesianProduct/findNumberOfPasswordsWithLettersAndNumbers.d.ts.map +1 -0
  305. package/lib/exercises/math/sets/cartesianProduct/findNumberOfPasswordsWithLettersAndNumbers.js +187 -0
  306. package/lib/exercises/math/sets/cartesianProduct/index.d.ts +7 -0
  307. package/lib/exercises/math/sets/cartesianProduct/index.d.ts.map +1 -0
  308. package/lib/exercises/math/sets/cartesianProduct/index.js +6 -0
  309. package/lib/exercises/math/sets/cartesianProduct/proposeElementInCartesianProductOfFiniteSets.d.ts +15 -0
  310. package/lib/exercises/math/sets/cartesianProduct/proposeElementInCartesianProductOfFiniteSets.d.ts.map +1 -0
  311. package/lib/exercises/math/sets/cartesianProduct/proposeElementInCartesianProductOfFiniteSets.js +291 -0
  312. package/lib/exercises/math/sets/cartesianProduct/proposeElementInPowEK.d.ts +15 -0
  313. package/lib/exercises/math/sets/cartesianProduct/proposeElementInPowEK.d.ts.map +1 -0
  314. package/lib/exercises/math/sets/cartesianProduct/proposeElementInPowEK.js +274 -0
  315. package/lib/exercises/math/sets/combinations/findNumberOfCombinationsFromSituation.d.ts +17 -0
  316. package/lib/exercises/math/sets/combinations/findNumberOfCombinationsFromSituation.d.ts.map +1 -0
  317. package/lib/exercises/math/sets/combinations/findNumberOfCombinationsFromSituation.js +228 -0
  318. package/lib/exercises/math/sets/combinations/findNumberOfProductsOfCombinationsFromSituation.d.ts +17 -0
  319. package/lib/exercises/math/sets/combinations/findNumberOfProductsOfCombinationsFromSituation.d.ts.map +1 -0
  320. package/lib/exercises/math/sets/combinations/findNumberOfProductsOfCombinationsFromSituation.js +388 -0
  321. package/lib/exercises/math/sets/combinations/index.d.ts +4 -0
  322. package/lib/exercises/math/sets/combinations/index.d.ts.map +1 -0
  323. package/lib/exercises/math/sets/combinations/index.js +3 -0
  324. package/lib/exercises/math/sets/combinations/proposeCombination.d.ts +15 -0
  325. package/lib/exercises/math/sets/combinations/proposeCombination.d.ts.map +1 -0
  326. package/lib/exercises/math/sets/combinations/proposeCombination.js +347 -0
  327. package/lib/exercises/math/sets/index.d.ts +3 -0
  328. package/lib/exercises/math/sets/index.d.ts.map +1 -1
  329. package/lib/exercises/math/sets/index.js +3 -0
  330. package/lib/exercises/math/sets/partialPermutations/findNumberOfPartialPermutationsFromSituation.d.ts +16 -0
  331. package/lib/exercises/math/sets/partialPermutations/findNumberOfPartialPermutationsFromSituation.d.ts.map +1 -0
  332. package/lib/exercises/math/sets/partialPermutations/findNumberOfPartialPermutationsFromSituation.js +186 -0
  333. package/lib/exercises/math/sets/partialPermutations/findNumberOfPermutationsFromSituation.d.ts +17 -0
  334. package/lib/exercises/math/sets/partialPermutations/findNumberOfPermutationsFromSituation.d.ts.map +1 -0
  335. package/lib/exercises/math/sets/partialPermutations/findNumberOfPermutationsFromSituation.js +232 -0
  336. package/lib/exercises/math/sets/partialPermutations/index.d.ts +4 -0
  337. package/lib/exercises/math/sets/partialPermutations/index.d.ts.map +1 -0
  338. package/lib/exercises/math/sets/partialPermutations/index.js +3 -0
  339. package/lib/exercises/math/sets/partialPermutations/proposePartialPermutation.d.ts +15 -0
  340. package/lib/exercises/math/sets/partialPermutations/proposePartialPermutation.d.ts.map +1 -0
  341. package/lib/exercises/math/sets/partialPermutations/proposePartialPermutation.js +343 -0
  342. package/lib/exercises/math/spaceGeometry/basis/index.d.ts +6 -0
  343. package/lib/exercises/math/spaceGeometry/basis/index.d.ts.map +1 -1
  344. package/lib/exercises/math/spaceGeometry/basis/index.js +6 -0
  345. package/lib/exercises/math/spaceGeometry/basis/lineLineRelativePositionsFromCubeOuterPoints.d.ts +11 -0
  346. package/lib/exercises/math/spaceGeometry/basis/lineLineRelativePositionsFromCubeOuterPoints.d.ts.map +1 -0
  347. package/lib/exercises/math/spaceGeometry/basis/lineLineRelativePositionsFromCubeOuterPoints.js +576 -0
  348. package/lib/exercises/math/spaceGeometry/basis/linePlaneRelativePositionsFromCubeOuterPoints.d.ts +11 -0
  349. package/lib/exercises/math/spaceGeometry/basis/linePlaneRelativePositionsFromCubeOuterPoints.d.ts.map +1 -0
  350. package/lib/exercises/math/spaceGeometry/basis/linePlaneRelativePositionsFromCubeOuterPoints.js +595 -0
  351. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystem.d.ts +11 -0
  352. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystem.d.ts.map +1 -0
  353. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystem.js +501 -0
  354. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystemFromVecPath.d.ts +16 -0
  355. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystemFromVecPath.d.ts.map +1 -0
  356. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystemFromVecPath.js +753 -0
  357. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfVectorInCubeCoordSystem.d.ts +12 -0
  358. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfVectorInCubeCoordSystem.d.ts.map +1 -0
  359. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfVectorInCubeCoordSystem.js +546 -0
  360. package/lib/exercises/math/spaceGeometry/basis/spaceVectorLinearCombinationFromCoords.d.ts +13 -0
  361. package/lib/exercises/math/spaceGeometry/basis/spaceVectorLinearCombinationFromCoords.d.ts.map +1 -0
  362. package/lib/exercises/math/spaceGeometry/basis/spaceVectorLinearCombinationFromCoords.js +233 -0
  363. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromCoords.d.ts +11 -0
  364. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromCoords.d.ts.map +1 -0
  365. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromCoords.js +192 -0
  366. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints.d.ts +15 -0
  367. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints.d.ts.map +1 -0
  368. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints.js +511 -0
  369. package/lib/exercises/math/spaceGeometry/collinearity/index.d.ts +3 -0
  370. package/lib/exercises/math/spaceGeometry/collinearity/index.d.ts.map +1 -0
  371. package/lib/exercises/math/spaceGeometry/collinearity/index.js +2 -0
  372. package/lib/exercises/math/spaceGeometry/index.d.ts +5 -0
  373. package/lib/exercises/math/spaceGeometry/index.d.ts.map +1 -1
  374. package/lib/exercises/math/spaceGeometry/index.js +5 -1
  375. package/lib/exercises/math/spaceGeometry/orthogonalProjection/findOrthogonalProjectionOfPointOnPlane.d.ts +22 -0
  376. package/lib/exercises/math/spaceGeometry/orthogonalProjection/findOrthogonalProjectionOfPointOnPlane.d.ts.map +1 -0
  377. package/lib/exercises/math/spaceGeometry/orthogonalProjection/findOrthogonalProjectionOfPointOnPlane.js +366 -0
  378. package/lib/exercises/math/spaceGeometry/orthogonalProjection/index.d.ts +2 -0
  379. package/lib/exercises/math/spaceGeometry/orthogonalProjection/index.d.ts.map +1 -0
  380. package/lib/exercises/math/spaceGeometry/orthogonalProjection/index.js +2 -0
  381. package/lib/exercises/math/spaceGeometry/parametricLine/index.d.ts +3 -0
  382. package/lib/exercises/math/spaceGeometry/parametricLine/index.d.ts.map +1 -0
  383. package/lib/exercises/math/spaceGeometry/parametricLine/index.js +2 -0
  384. package/lib/exercises/math/spaceGeometry/parametricLine/lineLineRelativePositionsFromParametricLines.d.ts +14 -0
  385. package/lib/exercises/math/spaceGeometry/parametricLine/lineLineRelativePositionsFromParametricLines.d.ts.map +1 -0
  386. package/lib/exercises/math/spaceGeometry/parametricLine/lineLineRelativePositionsFromParametricLines.js +325 -0
  387. package/lib/exercises/math/spaceGeometry/parametricLine/parametricLineFromPointAndDirectionVector.d.ts +13 -0
  388. package/lib/exercises/math/spaceGeometry/parametricLine/parametricLineFromPointAndDirectionVector.d.ts.map +1 -0
  389. package/lib/exercises/math/spaceGeometry/parametricLine/parametricLineFromPointAndDirectionVector.js +181 -0
  390. package/lib/exercises/math/spaceGeometry/planes/checkIsPointBelongingToPlane.d.ts +10 -0
  391. package/lib/exercises/math/spaceGeometry/planes/checkIsPointBelongingToPlane.d.ts.map +1 -0
  392. package/lib/exercises/math/spaceGeometry/planes/checkIsPointBelongingToPlane.js +208 -0
  393. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlaneEquation.d.ts +8 -0
  394. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlaneEquation.d.ts.map +1 -0
  395. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlaneEquation.js +255 -0
  396. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlanePointsCoords.d.ts +10 -0
  397. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlanePointsCoords.d.ts.map +1 -0
  398. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlanePointsCoords.js +232 -0
  399. package/lib/exercises/math/spaceGeometry/planes/index.d.ts +5 -1
  400. package/lib/exercises/math/spaceGeometry/planes/index.d.ts.map +1 -1
  401. package/lib/exercises/math/spaceGeometry/planes/index.js +6 -2
  402. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromNormalVectorAndContainedPoint.d.ts +10 -0
  403. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromNormalVectorAndContainedPoint.d.ts.map +1 -0
  404. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromNormalVectorAndContainedPoint.js +273 -0
  405. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromOrthogonalLineAndContainedPoint.d.ts +12 -0
  406. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromOrthogonalLineAndContainedPoint.d.ts.map +1 -0
  407. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromOrthogonalLineAndContainedPoint.js +398 -0
  408. package/lib/exercises/math/spaceGeometry/planes/planePlaneRelativePositions.d.ts +22 -0
  409. package/lib/exercises/math/spaceGeometry/planes/planePlaneRelativePositions.d.ts.map +1 -0
  410. package/lib/exercises/math/spaceGeometry/planes/planePlaneRelativePositions.js +509 -0
  411. package/lib/exercises/math/spaceGeometry/scalarProduct/angleFromScalarProductFromSpacePointCoords.d.ts +8 -0
  412. package/lib/exercises/math/spaceGeometry/scalarProduct/angleFromScalarProductFromSpacePointCoords.d.ts.map +1 -0
  413. package/lib/exercises/math/spaceGeometry/scalarProduct/angleFromScalarProductFromSpacePointCoords.js +229 -0
  414. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalLinesFromParametricReps.d.ts +9 -0
  415. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalLinesFromParametricReps.d.ts.map +1 -0
  416. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalLinesFromParametricReps.js +200 -0
  417. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalSpaceVecsFromCoords.d.ts +8 -0
  418. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalSpaceVecsFromCoords.d.ts.map +1 -0
  419. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalSpaceVecsFromCoords.js +176 -0
  420. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsSpaceVecOrthogonalToPlaneFromCoords.d.ts +9 -0
  421. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsSpaceVecOrthogonalToPlaneFromCoords.d.ts.map +1 -0
  422. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsSpaceVecOrthogonalToPlaneFromCoords.js +263 -0
  423. package/lib/exercises/math/spaceGeometry/scalarProduct/index.d.ts +6 -0
  424. package/lib/exercises/math/spaceGeometry/scalarProduct/index.d.ts.map +1 -0
  425. package/lib/exercises/math/spaceGeometry/scalarProduct/index.js +6 -0
  426. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromCubeOuterPoints.d.ts +14 -0
  427. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromCubeOuterPoints.d.ts.map +1 -0
  428. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromCubeOuterPoints.js +497 -0
  429. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromSpacePointCoords.d.ts +8 -0
  430. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromSpacePointCoords.d.ts.map +1 -0
  431. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromSpacePointCoords.js +173 -0
  432. package/lib/exercises/math/spaceGeometry/vectors/findLinearDecompositionWrtCoplanarUVFromCoords.d.ts +10 -0
  433. package/lib/exercises/math/spaceGeometry/vectors/findLinearDecompositionWrtCoplanarUVFromCoords.d.ts.map +1 -0
  434. package/lib/exercises/math/spaceGeometry/vectors/findLinearDecompositionWrtCoplanarUVFromCoords.js +236 -0
  435. package/lib/exercises/math/spaceGeometry/vectors/index.d.ts +2 -0
  436. package/lib/exercises/math/spaceGeometry/vectors/index.d.ts.map +1 -1
  437. package/lib/exercises/math/spaceGeometry/vectors/index.js +2 -0
  438. package/lib/exercises/math/spaceGeometry/vectors/spacePointsDistanceCalculation.d.ts +8 -0
  439. package/lib/exercises/math/spaceGeometry/vectors/spacePointsDistanceCalculation.d.ts.map +1 -0
  440. package/lib/exercises/math/spaceGeometry/vectors/spacePointsDistanceCalculation.js +156 -0
  441. package/lib/exercises/math/trigonometry/functions/index.d.ts +1 -0
  442. package/lib/exercises/math/trigonometry/functions/index.d.ts.map +1 -1
  443. package/lib/exercises/math/trigonometry/functions/index.js +1 -0
  444. package/lib/exercises/math/trigonometry/functions/parityOfCosAXTimesSinBX.d.ts +8 -0
  445. package/lib/exercises/math/trigonometry/functions/parityOfCosAXTimesSinBX.d.ts.map +1 -0
  446. package/lib/exercises/math/trigonometry/functions/parityOfCosAXTimesSinBX.js +193 -0
  447. package/lib/exercises/utils/data/randomDataTable.d.ts +4 -1
  448. package/lib/exercises/utils/data/randomDataTable.d.ts.map +1 -1
  449. package/lib/exercises/utils/data/randomDataTable.js +1 -2
  450. package/lib/exercises/vea/varLineVEA.d.ts.map +1 -1
  451. package/lib/exercises/vea/varLineVEA.js +15 -2
  452. package/lib/exercises/vea/xTableLineVEA.d.ts.map +1 -1
  453. package/lib/exercises/vea/xTableLineVEA.js +13 -2
  454. package/lib/index.d.ts +545 -26
  455. package/lib/index.d.ts.map +1 -1
  456. package/lib/latexTester.d.ts.map +1 -1
  457. package/lib/latexTester.js +9 -7
  458. package/lib/math/geometry/parametricLine.d.ts +1 -1
  459. package/lib/math/geometry/parametricLine.d.ts.map +1 -1
  460. package/lib/math/geometry/parametricLine.js +2 -2
  461. package/lib/math/geometry/spaceVector.d.ts +11 -1
  462. package/lib/math/geometry/spaceVector.d.ts.map +1 -1
  463. package/lib/math/geometry/spaceVector.js +18 -4
  464. package/lib/math/probability/randomVariable.d.ts +3 -2
  465. package/lib/math/probability/randomVariable.d.ts.map +1 -1
  466. package/lib/math/probability/randomVariable.js +14 -8
  467. package/lib/math/sets/setOperations.d.ts +9 -0
  468. package/lib/math/sets/setOperations.d.ts.map +1 -0
  469. package/lib/math/sets/setOperations.js +84 -0
  470. package/lib/math/sets/tuple.d.ts +12 -0
  471. package/lib/math/sets/tuple.d.ts.map +1 -0
  472. package/lib/math/sets/tuple.js +17 -0
  473. package/lib/math/systems/generalSystem.d.ts +3 -3
  474. package/lib/math/systems/generalSystem.d.ts.map +1 -1
  475. package/lib/math/systems/generalSystem.js +20 -17
  476. package/lib/math/utils/functions/functionComparison.d.ts.map +1 -1
  477. package/lib/math/utils/functions/functionComparison.js +2 -45
  478. package/lib/math/utils/functions/functionComposition.d.ts +3 -1
  479. package/lib/math/utils/functions/functionComposition.d.ts.map +1 -1
  480. package/lib/math/utils/functions/functionComposition.js +17 -17
  481. package/lib/math/utils/integration/rectanglesMethod.d.ts +6 -0
  482. package/lib/math/utils/integration/rectanglesMethod.d.ts.map +1 -0
  483. package/lib/math/utils/integration/rectanglesMethod.js +66 -0
  484. package/lib/math/utils/polynomial/polynomialUtils.d.ts +9 -1
  485. package/lib/math/utils/polynomial/polynomialUtils.d.ts.map +1 -1
  486. package/lib/math/utils/polynomial/polynomialUtils.js +66 -7
  487. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts +34 -2
  488. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts.map +1 -1
  489. package/lib/math/utils/sequences/situations/seqGeometricSituations.js +288 -47
  490. package/lib/server.js +25 -0
  491. package/lib/tests/questionTest.d.ts.map +1 -1
  492. package/lib/tests/questionTest.js +5 -2
  493. package/lib/tests/singleExo.test.js +2 -2
  494. package/lib/tree/nodes/functions/cosNode.d.ts +1 -1
  495. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  496. package/lib/tree/nodes/functions/cosNode.js +5 -2
  497. package/lib/tree/nodes/functions/factorialNode.d.ts +1 -0
  498. package/lib/tree/nodes/functions/factorialNode.d.ts.map +1 -1
  499. package/lib/tree/nodes/functions/factorialNode.js +16 -1
  500. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  501. package/lib/tree/nodes/functions/logNode.js +2 -1
  502. package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts +2 -0
  503. package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts.map +1 -1
  504. package/lib/tree/nodes/operators/binomialCoefficientNode.js +34 -0
  505. package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
  506. package/lib/tree/nodes/sets/discreteSetNode.js +1 -0
  507. package/lib/tree/utilities/nodeComparator.d.ts +7 -0
  508. package/lib/tree/utilities/nodeComparator.d.ts.map +1 -1
  509. package/lib/tree/utilities/nodeComparator.js +59 -0
  510. package/lib/tree/utilities/nodeInspector.d.ts +2 -0
  511. package/lib/tree/utilities/nodeInspector.d.ts.map +1 -1
  512. package/lib/tree/utilities/nodeInspector.js +23 -1
  513. package/lib/tree/utilities/nodePrinter.d.ts +7 -0
  514. package/lib/tree/utilities/nodePrinter.d.ts.map +1 -0
  515. package/lib/tree/utilities/nodePrinter.js +36 -0
  516. package/lib/tree/utilities/nodeRewriter.d.ts.map +1 -1
  517. package/lib/tree/utilities/nodeRewriter.js +4 -1
  518. package/lib/types/keyIds.d.ts +1 -1
  519. package/lib/types/keyIds.d.ts.map +1 -1
  520. package/lib/utils/strings/splitAndKeep.d.ts +2 -0
  521. package/lib/utils/strings/splitAndKeep.d.ts.map +1 -0
  522. package/lib/utils/strings/splitAndKeep.js +13 -0
  523. package/package.json +1 -1
@@ -0,0 +1,234 @@
1
+ import { addValidProp, propWhile, tryToAddWrongProp, } from "../../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { PolynomialConstructor } from "../../../../../math/polynomials/polynomial.js";
4
+ import { nodeBySubstitutingVar } from "../../../../../math/utils/functions/functionComposition.js";
5
+ import { getArrNodeCoeffOfPolynomialNode } from "../../../../../math/utils/polynomial/polynomialUtils.js";
6
+ import { randint } from "../../../../../math/utils/random/randint.js";
7
+ import { exp } from "../../../../../tree/nodes/functions/expNode.js";
8
+ import { IntegralNode } from "../../../../../tree/nodes/functions/integralNode.js";
9
+ import { NodeConstructor, } from "../../../../../tree/nodes/nodeConstructor.js";
10
+ import { add } from "../../../../../tree/nodes/operators/addNode.js";
11
+ import { frac } from "../../../../../tree/nodes/operators/fractionNode.js";
12
+ import { multiply, } from "../../../../../tree/nodes/operators/multiplyNode.js";
13
+ import { square } from "../../../../../tree/nodes/operators/powerNode.js";
14
+ import { substract } from "../../../../../tree/nodes/operators/substractNode.js";
15
+ import { VariableNode } from "../../../../../tree/nodes/variables/variableNode.js";
16
+ import { parseAlgebraic } from "../../../../../tree/parsers/latexParser.js";
17
+ import { NodeComparator } from "../../../../../tree/utilities/nodeComparator.js";
18
+ import { shuffle } from "../../../../../utils/alea/shuffle.js";
19
+ import { handleVEAError } from "../../../../../utils/errors/handleVEAError.js";
20
+ import { alignTex } from "../../../../../utils/latex/alignTex.js";
21
+ const getHydrated = (identifiers) => {
22
+ const { nodeIdsF, nodeIdsBounds } = identifiers;
23
+ const [nodeIntegralBoundLow, nodeIntegralBoundHigh] = nodeIdsBounds.map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
24
+ const nodeF = NodeConstructor.fromIdentifiers(nodeIdsF);
25
+ const nodeP = nodeF.leftChild;
26
+ const arrNodeCoeff = getArrNodeCoeffOfPolynomialNode(nodeP);
27
+ const [_nodeB, nodeA] = arrNodeCoeff;
28
+ const nodeIntegralForTex = new IntegralNode(nodeF, nodeIntegralBoundLow, nodeIntegralBoundHigh, "x");
29
+ const nodeVarX = new VariableNode("x");
30
+ const nodeF1 = nodeF;
31
+ const nodeF2 = multiply(nodeA, exp(nodeVarX));
32
+ const nodeIntegralForResult = substract(substract(nodeBySubstitutingVar(nodeF1, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeF1, nodeIntegralBoundLow, nodeVarX)), substract(nodeBySubstitutingVar(nodeF2, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeF2, nodeIntegralBoundLow, nodeVarX)));
33
+ return {
34
+ nodeF,
35
+ nodeIntegralBoundLow,
36
+ nodeIntegralBoundHigh,
37
+ arrNodeCoeff,
38
+ nodeP,
39
+ nodeF1,
40
+ nodeF2,
41
+ nodeIntegralForTex,
42
+ nodeIntegralForResult,
43
+ };
44
+ };
45
+ const getInstruction = (identifiers) => {
46
+ const { nodeIntegralForTex } = getHydrated(identifiers);
47
+ return `Calculer :
48
+
49
+ $$
50
+ ${nodeIntegralForTex.toTex()}
51
+ $$
52
+
53
+ `;
54
+ };
55
+ const getAnswer = (identifiers) => {
56
+ const { nodeIntegralForResult } = getHydrated(identifiers);
57
+ return nodeIntegralForResult
58
+ .simplify({
59
+ towardsDistribute: true,
60
+ forceAddFractions: true,
61
+ })
62
+ .toTex();
63
+ };
64
+ const getHint = (identifiers) => {
65
+ const { nodeP } = getHydrated(identifiers);
66
+ return `Déploie une intégration par parties, en remarquant que :
67
+
68
+ $$
69
+ uv' = (uv)' - u'v
70
+ $$
71
+
72
+ avec, pour tout $x$ réel:
73
+
74
+ $$
75
+ u(x) = ${nodeP.toTex()}
76
+ $$
77
+
78
+ et
79
+
80
+ $$
81
+ v(x) = e^x
82
+ $$
83
+
84
+ `;
85
+ };
86
+ const getCorrection = (identifiers) => {
87
+ const { nodeIntegralBoundHigh, nodeIntegralBoundLow, nodeP, nodeF1, nodeF2, nodeIntegralForTex, nodeIntegralForResult, } = getHydrated(identifiers);
88
+ const texBoundLow = nodeIntegralBoundLow.toTex();
89
+ const texBoundHigh = nodeIntegralBoundHigh.toTex();
90
+ return `On déploie la méthode d'intégration par parties.
91
+
92
+ Ici, pour tout $x$ réel:
93
+
94
+ $$
95
+ u(x) = ${nodeP.toTex()}
96
+ $$
97
+
98
+ et
99
+
100
+ $$
101
+ v(x) = e^x
102
+ $$
103
+
104
+ Il résulte du calcul de $(uv)'$ que :
105
+
106
+ $$
107
+ uv' = (uv)' - u'v
108
+ $$
109
+
110
+ On intègre entre $${texBoundLow}$ et $${texBoundHigh}$ :
111
+
112
+ ${alignTex([
113
+ [
114
+ nodeIntegralForTex.toTex(),
115
+ "=",
116
+ `\\left[ ${nodeF1.toTex()} \\right]_{${texBoundLow}}^{${texBoundHigh}} - \\int_{${texBoundLow}}^{${texBoundHigh}} ${nodeF2.toTex()} dx`,
117
+ ],
118
+ [
119
+ "",
120
+ "=",
121
+ `\\left[ ${nodeF1.toTex()} \\right]_{${texBoundLow}}^{${texBoundHigh}} - \\left[ ${nodeF2.toTex()} \\right]_{${texBoundLow}}^{${texBoundHigh}}`,
122
+ ],
123
+ [
124
+ "",
125
+ "=",
126
+ nodeIntegralForResult.simplify({ towardsDistribute: true }).toTex(),
127
+ ],
128
+ ])}
129
+
130
+ `;
131
+ };
132
+ const getPropositions = (n, { answer, ...identifiers }) => {
133
+ const propositions = [];
134
+ addValidProp(propositions, answer);
135
+ const { nodeIdsF, nodeIdsBounds } = identifiers;
136
+ const [nodeIntegralBoundLow, nodeIntegralBoundHigh] = nodeIdsBounds.map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
137
+ const nodeF = NodeConstructor.fromIdentifiers(nodeIdsF);
138
+ const nodeP = nodeF.leftChild;
139
+ const arrNodeCoeff = getArrNodeCoeffOfPolynomialNode(nodeP);
140
+ const [nodeB, nodeA] = arrNodeCoeff;
141
+ const nodeVarX = new VariableNode("x");
142
+ //student: \\int (ax+b)e^x = [ ((a/2)x²+bx)e^x ]
143
+ {
144
+ const nodeBigF = multiply(add(multiply(frac(nodeA, 2), square(nodeVarX)), multiply(nodeB, nodeVarX)), exp(nodeVarX));
145
+ const nodeIntegralForResultWrong = substract(nodeBySubstitutingVar(nodeBigF, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeBigF, nodeIntegralBoundLow, nodeVarX));
146
+ tryToAddWrongProp(propositions, nodeIntegralForResultWrong
147
+ .simplify({ towardsDistribute: true, calculatePowers: true })
148
+ .toTex());
149
+ }
150
+ //student: sign error: \\int = [] + \\int
151
+ {
152
+ const nodeF1 = nodeF;
153
+ const nodeF2 = multiply(nodeA, exp(nodeVarX));
154
+ const nodeIntegralForResultWrong = add(substract(nodeBySubstitutingVar(nodeF1, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeF1, nodeIntegralBoundLow, nodeVarX)), substract(nodeBySubstitutingVar(nodeF2, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeF2, nodeIntegralBoundLow, nodeVarX)));
155
+ tryToAddWrongProp(propositions, nodeIntegralForResultWrong
156
+ .simplify({ towardsDistribute: true, calculatePowers: true })
157
+ .toTex());
158
+ }
159
+ //student: \\int (ax+b)e^x = [ (ax+b)e^x ]
160
+ {
161
+ const nodeBigF = nodeF;
162
+ const nodeIntegralForResultWrong = substract(nodeBySubstitutingVar(nodeBigF, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeBigF, nodeIntegralBoundLow, nodeVarX));
163
+ tryToAddWrongProp(propositions, nodeIntegralForResultWrong
164
+ .simplify({ towardsDistribute: true, calculatePowers: true })
165
+ .toTex());
166
+ }
167
+ propWhile(propositions, n, () => {
168
+ const identifierWrong = createRandomIdentifiers();
169
+ tryToAddWrongProp(propositions, getAnswer(identifierWrong));
170
+ });
171
+ return shuffle(propositions);
172
+ };
173
+ const getKeys = () => {
174
+ return ["e", "x"];
175
+ };
176
+ const isAnswerValid = (ans, { answer }) => {
177
+ try {
178
+ const nodeAns = parseAlgebraic(ans);
179
+ const nodeAnswer = parseAlgebraic(answer);
180
+ const isValid = NodeComparator.isEqualViaSub(nodeAns, nodeAnswer) ||
181
+ NodeComparator.isEqualViaFrac(nodeAns, nodeAnswer);
182
+ return isValid;
183
+ }
184
+ catch (err) {
185
+ return handleVEAError(err);
186
+ }
187
+ };
188
+ const createRandomIdentifiers = () => {
189
+ const nodeVarX = new VariableNode("x");
190
+ const nodeP = PolynomialConstructor.randomWithOrder(1).toTree();
191
+ const nodeF = multiply(nodeP, exp(nodeVarX));
192
+ const [nodeIntegralBoundLow, nodeIntegralBoundHigh] = [
193
+ randint(1, 6).toTree(),
194
+ randint(6, 11).toTree(),
195
+ ];
196
+ const identifiers = {
197
+ nodeIdsF: nodeF.toIdentifiers(),
198
+ nodeIdsBounds: [
199
+ nodeIntegralBoundLow.toIdentifiers(),
200
+ nodeIntegralBoundHigh.toIdentifiers(),
201
+ ],
202
+ };
203
+ return identifiers;
204
+ };
205
+ const getIntegralOfAXPlusBTimesExpKXByPartsQuestion = () => {
206
+ const identifiers = createRandomIdentifiers();
207
+ return getQuestionFromIdentifiers(identifiers);
208
+ };
209
+ const getQuestionFromIdentifiers = (identifiers, opts) => {
210
+ const question = {
211
+ instruction: getInstruction(identifiers, opts),
212
+ answer: getAnswer(identifiers, opts),
213
+ keys: getKeys(identifiers, opts),
214
+ answerFormat: "tex",
215
+ identifiers,
216
+ hint: getHint(identifiers, opts),
217
+ correction: getCorrection(identifiers, opts),
218
+ };
219
+ return question;
220
+ };
221
+ export const integralOfAXPlusBTimesExpKXByParts = {
222
+ id: "integralOfAXPlusBTimesExpKXByParts",
223
+ connector: "=",
224
+ label: "Calcul d'intégrales de fonctions du type $(ax+b)e^x$",
225
+ isSingleStep: false,
226
+ generator: (nb, opts) => getDistinctQuestions(() => getIntegralOfAXPlusBTimesExpKXByPartsQuestion(opts), nb),
227
+ qcmTimer: 60,
228
+ freeTimer: 60,
229
+ getPropositions,
230
+ isAnswerValid,
231
+ subject: "Mathématiques",
232
+ getQuestionFromIdentifiers,
233
+ hasHintAndCorrection: true,
234
+ };
@@ -0,0 +1,12 @@
1
+ import { Exercise } from "../../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ nodeIdsF: NodeIdentifiers;
5
+ nodeIdsBounds: [NodeIdentifiers, NodeIdentifiers];
6
+ };
7
+ type Options = {
8
+ orderOfP: string;
9
+ };
10
+ export declare const integralOfPolynomialTimesLogXByParts: Exercise<Identifiers, Options>;
11
+ export {};
12
+ //# sourceMappingURL=integralOfPolynomialTimesLogXByParts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integralOfPolynomialTimesLogXByParts.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/integration/fromExpr/byParts/integralOfPolynomialTimesLogXByParts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAarC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AA0B7C,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;CACnD,CAAC;AAyYF,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAiBF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CACzD,WAAW,EACX,OAAO,CAmBR,CAAC"}
@@ -0,0 +1,330 @@
1
+ import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, tryToAddWrongProp, } from "../../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { PolynomialConstructor } from "../../../../../math/polynomials/polynomial.js";
4
+ import { nodeBySubstitutingVar } from "../../../../../math/utils/functions/functionComposition.js";
5
+ import { createIntegratedPolynomialNode, createNodeFPolynomialFromCoeffs, getArrNodeCoeffOfPolynomialNode, } from "../../../../../math/utils/polynomial/polynomialUtils.js";
6
+ import { randint } from "../../../../../math/utils/random/randint.js";
7
+ import { IntegralNode } from "../../../../../tree/nodes/functions/integralNode.js";
8
+ import { LogNode } from "../../../../../tree/nodes/functions/logNode.js";
9
+ import { NodeConstructor, } from "../../../../../tree/nodes/nodeConstructor.js";
10
+ import { add } from "../../../../../tree/nodes/operators/addNode.js";
11
+ import { frac } from "../../../../../tree/nodes/operators/fractionNode.js";
12
+ import { multiply, } from "../../../../../tree/nodes/operators/multiplyNode.js";
13
+ import { square } from "../../../../../tree/nodes/operators/powerNode.js";
14
+ import { substract } from "../../../../../tree/nodes/operators/substractNode.js";
15
+ import { VariableNode } from "../../../../../tree/nodes/variables/variableNode.js";
16
+ import { parseAlgebraic } from "../../../../../tree/parsers/latexParser.js";
17
+ import { NodeComparator } from "../../../../../tree/utilities/nodeComparator.js";
18
+ import { shuffle } from "../../../../../utils/alea/shuffle.js";
19
+ import { handleVEAError } from "../../../../../utils/errors/handleVEAError.js";
20
+ import { alignTex } from "../../../../../utils/latex/alignTex.js";
21
+ const getHydrated = (identifiers) => {
22
+ const { nodeIdsF, nodeIdsBounds } = identifiers;
23
+ const [nodeIntegralBoundLow, nodeIntegralBoundHigh] = nodeIdsBounds.map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
24
+ const nodeF = NodeConstructor.fromIdentifiers(nodeIdsF);
25
+ const nodeIntegralForTex = new IntegralNode(nodeF, nodeIntegralBoundLow, nodeIntegralBoundHigh, "x");
26
+ const nodeP = nodeF.leftChild;
27
+ const arrNodeCoeff = getArrNodeCoeffOfPolynomialNode(nodeP);
28
+ const nodeVarX = new VariableNode("x");
29
+ //nodeF1 = uv
30
+ const nodeP1 = createIntegratedPolynomialNode(nodeP, (0).toTree()).simplify({
31
+ towardsDistribute: true,
32
+ forbidFactorize: true,
33
+ forceDistributeFractions: true,
34
+ });
35
+ const nodeF1 = multiply(nodeP1, new LogNode(nodeVarX));
36
+ //nodeF2 = \\int uv'
37
+ const nodeF2Derivative = multiply(nodeP1, frac(1, nodeVarX));
38
+ const nodeF2DerivativeAlternative = (() => {
39
+ const arrNodeCoeff = getArrNodeCoeffOfPolynomialNode(nodeP1);
40
+ return createNodeFPolynomialFromCoeffs(arrNodeCoeff.slice(1));
41
+ })();
42
+ const nodeF2 = createIntegratedPolynomialNode(nodeF2DerivativeAlternative, (0).toTree()).simplify({
43
+ towardsDistribute: true,
44
+ forbidFactorize: true,
45
+ });
46
+ const nodeIntegralForResult = substract(substract(nodeBySubstitutingVar(nodeF1, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeF1, nodeIntegralBoundLow, nodeVarX)), substract(nodeBySubstitutingVar(nodeF2, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeF2, nodeIntegralBoundLow, nodeVarX)));
47
+ return {
48
+ nodeF,
49
+ nodeIntegralBoundLow,
50
+ nodeIntegralBoundHigh,
51
+ arrNodeCoeff,
52
+ nodeP,
53
+ nodeP1,
54
+ nodeF2Derivative,
55
+ nodeF1,
56
+ nodeF2,
57
+ nodeIntegralForTex,
58
+ nodeIntegralForResult,
59
+ };
60
+ };
61
+ const getInstruction = (identifiers) => {
62
+ const { nodeIntegralForTex } = getHydrated(identifiers);
63
+ return `Calculer :
64
+
65
+ $$
66
+ ${nodeIntegralForTex.toTex()}
67
+ $$
68
+
69
+ `;
70
+ };
71
+ const getAnswer = (identifiers) => {
72
+ const { nodeIntegralForResult } = getHydrated(identifiers);
73
+ return nodeIntegralForResult
74
+ .simplify({
75
+ towardsDistribute: true,
76
+ calculatePowers: true,
77
+ forceAddFractions: true,
78
+ })
79
+ .toTex();
80
+ };
81
+ const getHint = (identifiers) => {
82
+ const { nodeP } = getHydrated(identifiers);
83
+ return `Déploie une intégration par parties, en remarquant que :
84
+
85
+ $$
86
+ u'v = (uv)' - uv'
87
+ $$
88
+
89
+ avec, pour tout $x$ réel:
90
+
91
+ $$
92
+ u'(x) = ${nodeP.toTex()}
93
+ $$
94
+
95
+ et
96
+
97
+ $$
98
+ v(x) = \\ln(x)
99
+ $$
100
+
101
+ `;
102
+ };
103
+ const getCorrection = (identifiers) => {
104
+ const { nodeIntegralBoundHigh, nodeIntegralBoundLow, nodeP, nodeF2Derivative, nodeF1, nodeF2, nodeIntegralForTex, nodeIntegralForResult, } = getHydrated(identifiers);
105
+ const texBoundLow = nodeIntegralBoundLow.toTex();
106
+ const texBoundHigh = nodeIntegralBoundHigh.toTex();
107
+ return `On déploie la méthode d'intégration par parties.
108
+
109
+ Ici, pour tout $x$ réel:
110
+
111
+ $$
112
+ u'(x) = ${nodeP.toTex()}
113
+ $$
114
+
115
+ et
116
+
117
+ $$
118
+ v(x) = \\ln(x)
119
+ $$
120
+
121
+ Il résulte du calcul de $(uv)'$ que :
122
+
123
+ $$
124
+ u'v = (uv)' - uv'
125
+ $$
126
+
127
+ On intègre entre $${texBoundLow}$ et $${texBoundHigh}$ :
128
+
129
+ ${alignTex([
130
+ [
131
+ nodeIntegralForTex.toTex(),
132
+ "=",
133
+ `\\left[ ${nodeF1.toTex()} \\right]_{${texBoundLow}}^{${texBoundHigh}} - \\int_{${texBoundLow}}^{${texBoundHigh}} ${nodeF2Derivative.toTex()} dx`,
134
+ ],
135
+ [
136
+ "",
137
+ "=",
138
+ `\\left[ ${nodeF1.toTex()} \\right]_{${texBoundLow}}^{${texBoundHigh}} - \\left[ ${nodeF2.toTex()} \\right]_{${texBoundLow}}^{${texBoundHigh}}`,
139
+ ],
140
+ [
141
+ "",
142
+ "=",
143
+ nodeIntegralForResult
144
+ .simplify({
145
+ towardsDistribute: true,
146
+ calculatePowers: true,
147
+ forceAddFractions: true,
148
+ })
149
+ .toTex(),
150
+ ],
151
+ ])}
152
+
153
+ `;
154
+ };
155
+ const getPropositions = (n, { answer, ...identifiers }, optsIn) => {
156
+ const opts = optsIn ?? optsDefault;
157
+ const propositions = [];
158
+ addValidProp(propositions, answer);
159
+ const nodeVarX = new VariableNode("x");
160
+ const { nodeIntegralBoundLow, nodeIntegralBoundHigh, nodeP1, nodeF, nodeF1, nodeF2, } = getHydrated(identifiers);
161
+ //student: \\int (ax+b)ln(x) = [ ((a/2)x²+bx)(xln(x)-x) ]
162
+ {
163
+ const nodeBigF = multiply(nodeP1, substract(multiply(nodeVarX, new LogNode(nodeVarX)), nodeVarX));
164
+ const nodeIntegralForResultWrong = substract(nodeBySubstitutingVar(nodeBigF, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeBigF, nodeIntegralBoundLow, nodeVarX));
165
+ try {
166
+ tryToAddWrongProp(propositions, nodeIntegralForResultWrong
167
+ .simplify({
168
+ towardsDistribute: true,
169
+ calculatePowers: true,
170
+ forceAddFractions: true,
171
+ })
172
+ .toTex());
173
+ }
174
+ catch (_) {
175
+ (() => { })();
176
+ }
177
+ }
178
+ //student: sign error: \\int = [] + \\int
179
+ {
180
+ const nodeIntegralForResultWrong = add(substract(nodeBySubstitutingVar(nodeF1, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeF1, nodeIntegralBoundLow, nodeVarX)), substract(nodeBySubstitutingVar(nodeF2, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeF2, nodeIntegralBoundLow, nodeVarX)));
181
+ try {
182
+ tryToAddWrongProp(propositions, nodeIntegralForResultWrong
183
+ .simplify({
184
+ towardsDistribute: true,
185
+ calculatePowers: true,
186
+ forceAddFractions: true,
187
+ })
188
+ .toTex());
189
+ }
190
+ catch (_) {
191
+ (() => { })();
192
+ }
193
+ }
194
+ //student: \\int (ax+b)ln(x) = [ (ax+b)ln(x) ]
195
+ {
196
+ const nodeBigF = nodeF;
197
+ const nodeIntegralForResultWrong = substract(nodeBySubstitutingVar(nodeBigF, nodeIntegralBoundHigh, nodeVarX), nodeBySubstitutingVar(nodeBigF, nodeIntegralBoundLow, nodeVarX));
198
+ tryToAddWrongProp(propositions, nodeIntegralForResultWrong
199
+ .simplify({ towardsDistribute: true, calculatePowers: true })
200
+ .toTex());
201
+ }
202
+ propWhile(propositions, n, () => {
203
+ try {
204
+ const identifierWrong = createRandomIdentifiers(opts);
205
+ tryToAddWrongProp(propositions, getAnswer(identifierWrong));
206
+ }
207
+ catch (_) {
208
+ (() => { })();
209
+ }
210
+ });
211
+ return shuffle(propositions);
212
+ };
213
+ const getKeys = () => {
214
+ return ["ln", "x"];
215
+ };
216
+ const isAnswerValid = (ans, { answer }) => {
217
+ try {
218
+ const nodeAns = parseAlgebraic(ans);
219
+ const nodeAnswer = parseAlgebraic(answer);
220
+ const isValid = NodeComparator.isEqualViaSub(nodeAns, nodeAnswer) ||
221
+ NodeComparator.isEqualViaFrac(nodeAns, nodeAnswer);
222
+ return isValid;
223
+ }
224
+ catch (err) {
225
+ return handleVEAError(err);
226
+ }
227
+ };
228
+ const createRandomIdentifiers = (opts) => {
229
+ const valueOrderOfP = parseInt(opts.orderOfP);
230
+ const nodeVarX = new VariableNode("x");
231
+ const nodeP = PolynomialConstructor.randomWithOrder(valueOrderOfP).toTree();
232
+ const nodeF = multiply(nodeP, new LogNode(nodeVarX));
233
+ const [nodeIntegralBoundLow, nodeIntegralBoundHigh] = [
234
+ randint(1, 6).toTree(),
235
+ randint(6, 11).toTree(),
236
+ ];
237
+ const identifiers = {
238
+ nodeIdsF: nodeF.toIdentifiers(),
239
+ nodeIdsBounds: [
240
+ nodeIntegralBoundLow.toIdentifiers(),
241
+ nodeIntegralBoundHigh.toIdentifiers(),
242
+ ],
243
+ };
244
+ return identifiers;
245
+ };
246
+ const isIdentifiersQCPassed = (identifiers) => {
247
+ const isExploding = (identifiers) => {
248
+ let isExploding = false;
249
+ try {
250
+ getAnswer(identifiers);
251
+ }
252
+ catch (_) {
253
+ isExploding = true;
254
+ }
255
+ return isExploding;
256
+ };
257
+ return !isExploding(identifiers);
258
+ };
259
+ const createQCPassedIdentifiers = (opts) => {
260
+ let identifiers;
261
+ let counter = -1;
262
+ let isValid = false;
263
+ while (!isValid && counter < 100) {
264
+ counter++;
265
+ const identifiersCandidate = createRandomIdentifiers(opts);
266
+ isValid = isIdentifiersQCPassed(identifiersCandidate);
267
+ if (isValid) {
268
+ identifiers = identifiersCandidate;
269
+ }
270
+ }
271
+ if (!isValid) {
272
+ const identifiersDefault = (() => {
273
+ const nodeVarX = new VariableNode("x");
274
+ const nodeIntegralBoundLow = (1).toTree();
275
+ const nodeIntegralBoundHigh = (3).toTree();
276
+ const nodeF = multiply(square("x"), new LogNode(nodeVarX));
277
+ return {
278
+ nodeIdsF: nodeF.toIdentifiers(),
279
+ nodeIdsBounds: [nodeIntegralBoundLow, nodeIntegralBoundHigh].map((node) => node.toIdentifiers()),
280
+ };
281
+ })();
282
+ identifiers = identifiersDefault;
283
+ }
284
+ return identifiers;
285
+ };
286
+ const getIntegralOfPolynomialTimesLogXByPartsQuestion = (optsIn) => {
287
+ const opts = optsIn ?? optsDefault;
288
+ const identifiers = createQCPassedIdentifiers(opts);
289
+ return getQuestionFromIdentifiers(identifiers);
290
+ };
291
+ const getQuestionFromIdentifiers = (identifiers, opts) => {
292
+ const question = {
293
+ instruction: getInstruction(identifiers, opts),
294
+ answer: getAnswer(identifiers, opts),
295
+ keys: getKeys(identifiers, opts),
296
+ answerFormat: "tex",
297
+ identifiers,
298
+ hint: getHint(identifiers, opts),
299
+ correction: getCorrection(identifiers, opts),
300
+ };
301
+ return question;
302
+ };
303
+ const optsDefault = {
304
+ orderOfP: "2",
305
+ };
306
+ const options = [
307
+ {
308
+ id: "orderOfP",
309
+ label: "Ordre du polynôme au numérateur",
310
+ target: GeneratorOptionTarget.generation,
311
+ type: GeneratorOptionType.select,
312
+ values: ["1", "2"],
313
+ defaultValue: optsDefault.orderOfP,
314
+ },
315
+ ];
316
+ export const integralOfPolynomialTimesLogXByParts = {
317
+ id: "integralOfPolynomialTimesLogXByParts",
318
+ connector: "=",
319
+ label: "Calcul d'intégrales de fonctions du type $P(x)ln(x)$",
320
+ isSingleStep: false,
321
+ generator: (nb, opts) => getDistinctQuestions(() => getIntegralOfPolynomialTimesLogXByPartsQuestion(opts), nb),
322
+ options,
323
+ qcmTimer: 60,
324
+ freeTimer: 60,
325
+ getPropositions,
326
+ isAnswerValid,
327
+ subject: "Mathématiques",
328
+ getQuestionFromIdentifiers,
329
+ hasHintAndCorrection: true,
330
+ };
@@ -0,0 +1,15 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ nodeIdsPrimitiveCandidate: NodeIdentifiers;
5
+ nodeIdsF: NodeIdentifiers;
6
+ nameOfPrimitive: string;
7
+ nameOfPrimitiveAsked: string;
8
+ isPrimitive: boolean;
9
+ };
10
+ type Options = {
11
+ primitiveTypes: string[];
12
+ };
13
+ export declare const checkIsPrimitiveFromExpr: Exercise<Identifiers, Options>;
14
+ export {};
15
+ //# sourceMappingURL=checkIsPrimitiveFromExpr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkIsPrimitiveFromExpr.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/integration/fromExpr/checkIsPrimitiveFromExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAcrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAW7C,KAAK,WAAW,GAAG;IACjB,yBAAyB,EAAE,eAAe,CAAC;IAC3C,QAAQ,EAAE,eAAe,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AA0dF,KAAK,OAAO,GAAG;IACb,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAwCF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAgBnE,CAAC"}