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,228 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { NodeConstructor, } from "../../../../tree/nodes/nodeConstructor.js";
4
+ import { random } from "../../../../utils/alea/random.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { frac, isFractionNode, } from "../../../../tree/nodes/operators/fractionNode.js";
7
+ import { facto } from "../../../../tree/nodes/functions/factorialNode.js";
8
+ import { binom, } from "../../../../tree/nodes/operators/binomialCoefficientNode.js";
9
+ import { power } from "../../../../tree/nodes/operators/powerNode.js";
10
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
11
+ import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
12
+ import { NodeComparator } from "../../../../tree/utilities/nodeComparator.js";
13
+ const situationTemplates = [
14
+ {
15
+ strInstruction: `Une boîte contient $\${total}$ perles toutes distinctes. Pour faire un bracelet, Jade commence par prendre en une seule fois une poignée de $\${picked}$ perles dans la boîte. Combien de poignées différentes existe-t-il ?`,
16
+ strHint: `Est-ce que l'ordre a de l'importance ici ? Comment appelle-t-on le sous-ensemble que Jade a prélevé ?`,
17
+ strCorrection: `Jade prend un ensemble de $\${picked}$ perles parmi $\${total}$.
18
+ Elle prend un sous-ensemble de perles : C'est une combinaison.
19
+ Le nombre de combinaisons possible est :
20
+
21
+ $$
22
+ \${cardinal}
23
+ $$
24
+
25
+ `,
26
+ dictFuncs: {
27
+ total: () => {
28
+ return {
29
+ value: randint(50, 101),
30
+ };
31
+ },
32
+ picked: () => {
33
+ return {
34
+ value: randint(12, 30),
35
+ };
36
+ },
37
+ },
38
+ },
39
+ {
40
+ strInstruction: `Marion pioche au hasard $\${picked}$ cartes dans un paquet d'un jeu de $\${total}$ cartes classique. Combien de mains différentes Marion peut-elle avoir ?`,
41
+ strHint: `Est-ce que l'ordre a de l'importance ici ? Comment appelle-t-on le sous-ensemble que Marion a pioché ?`,
42
+ strCorrection: `Marion prend un ensemble de $\${picked}$ cartes parmi $\${total}$.
43
+ Elle prend un sous-ensemble de cartes : C'est une combinaison.
44
+ Le nombre de combinaisons possible est :
45
+
46
+ $$
47
+ \${cardinal}
48
+ $$
49
+
50
+ `,
51
+ dictFuncs: {
52
+ total: () => {
53
+ return {
54
+ value: random([32, 52]),
55
+ };
56
+ },
57
+ picked: () => {
58
+ return {
59
+ value: randint(6, 10),
60
+ };
61
+ },
62
+ },
63
+ },
64
+ {
65
+ strInstruction: `Dans une course automobile, $\${total}$ équipages sont en lice. Les $\${picked}$ derniers n'iront pas en finale. Combien de groupes d'éliminés sont possibles ?`,
66
+ strHint: `Est-ce que l'ordre a de l'importance ici ? Comment appelle-t-on le sous-ensemble des éliminés ?`,
67
+ strCorrection: `Les éliminés sont un ensemble de $\${picked}$ participants parmi $\${total}$.
68
+ Les éliminés sont un sous-ensemble de l'ensemble des participants : C'est une combinaison.
69
+ Le nombre de combinaisons possible est :
70
+
71
+ $$
72
+ \${cardinal}
73
+ $$
74
+
75
+ `,
76
+ dictFuncs: {
77
+ total: () => {
78
+ return {
79
+ value: random([16, 33]),
80
+ };
81
+ },
82
+ picked: () => {
83
+ return {
84
+ value: randint(8, 11),
85
+ };
86
+ },
87
+ },
88
+ },
89
+ ];
90
+ class SituationConstructor {
91
+ static randomSituationFromTemplate(situationTemplate) {
92
+ const dictSets = Object.entries(situationTemplate.dictFuncs).reduce((acc, [key, func]) => {
93
+ acc[key] = func();
94
+ return acc;
95
+ }, {});
96
+ const { strInstruction, strCorrection: strCorrectionIncomplete } = Object.entries(dictSets).reduce((acc, [key, miniDict]) => {
97
+ acc.strInstruction = acc.strInstruction.replace(`\${${key}}`, `${miniDict.value}`);
98
+ acc.strCorrection = acc.strCorrection.replace(`\${${key}}`, `${miniDict.value}`);
99
+ return acc;
100
+ }, {
101
+ strInstruction: situationTemplate.strInstruction,
102
+ strCorrection: situationTemplate.strCorrection,
103
+ });
104
+ const { total: { value: valueTotal }, picked: { value: valuePicked }, } = dictSets;
105
+ const nodeCardinal = binom(valueTotal, valuePicked);
106
+ const strCorrection = strCorrectionIncomplete.replace(`\${cardinal}`, `${nodeCardinal.toTex()} = ${nodeCardinal
107
+ .toFormulaWithFactoFractionNode()
108
+ .toTex()}`);
109
+ return {
110
+ nodeIdsCardinal: nodeCardinal.toIdentifiers(),
111
+ strInstruction,
112
+ strHint: situationTemplate.strHint,
113
+ strCorrection,
114
+ dictSets,
115
+ };
116
+ }
117
+ }
118
+ const getInstruction = (identifiers) => {
119
+ const { situation: { strInstruction }, } = identifiers;
120
+ return strInstruction;
121
+ };
122
+ const getAnswerNode = (identifiers) => {
123
+ const { situation: { nodeIdsCardinal }, } = identifiers;
124
+ const nodeCardinal = NodeConstructor.fromIdentifiers(nodeIdsCardinal);
125
+ return nodeCardinal;
126
+ };
127
+ const getAnswer = (identifiers) => {
128
+ return getAnswerNode(identifiers).toTex();
129
+ };
130
+ const getHint = (identifiers) => {
131
+ const { situation: { strHint }, } = identifiers;
132
+ return `${strHint}`;
133
+ };
134
+ const getCorrection = (identifiers) => {
135
+ const { situation: { strCorrection }, } = identifiers;
136
+ return `${strCorrection}`;
137
+ };
138
+ const getPropositions = (n, { answer, ...identifiers }) => {
139
+ const { situation: { dictSets }, } = identifiers;
140
+ const propositions = [];
141
+ addValidProp(propositions, answer);
142
+ const { total: { value: valueTotal }, picked: { value: valuePicked }, } = dictSets;
143
+ //student: picked!
144
+ {
145
+ const nodeWrong = facto(valuePicked);
146
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
147
+ }
148
+ //student: frac(total!, picked!)
149
+ {
150
+ const nodeWrong = frac(facto(valueTotal), facto(valuePicked));
151
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
152
+ }
153
+ //student: power(total, picked)
154
+ {
155
+ const nodeWrong = power(valueTotal, valuePicked);
156
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
157
+ }
158
+ return shuffleProps(propositions, n);
159
+ };
160
+ const getKeys = () => {
161
+ const keyFacto = {
162
+ id: "custom",
163
+ label: "!",
164
+ labelType: "tex",
165
+ mathfieldInstructions: {
166
+ method: "write",
167
+ content: "!",
168
+ },
169
+ };
170
+ return [
171
+ // "facto",
172
+ keyFacto,
173
+ "binom",
174
+ ];
175
+ };
176
+ const isAnswerValid = (ans, { answer }) => {
177
+ try {
178
+ const nodeAns = parseAlgebraic(ans);
179
+ const nodeAnswer = parseAlgebraic(answer);
180
+ if (isFractionNode(nodeAns)) {
181
+ //ans is probably formula with factorials
182
+ const nodeAnswerVer2 = nodeAnswer.toFormulaWithFactoFractionNode();
183
+ return NodeComparator.isEqualViaFrac(nodeAns, nodeAnswerVer2);
184
+ }
185
+ else {
186
+ //ans is probably formula with binom notation
187
+ return NodeComparator.isEqualViaSub(nodeAns, nodeAnswer);
188
+ }
189
+ }
190
+ catch (e) {
191
+ handleVEAError(e);
192
+ return false;
193
+ }
194
+ };
195
+ const getFindNumberOfCombinationsFromSituationQuestion = () => {
196
+ const situationTemplate = random(situationTemplates);
197
+ const situation = SituationConstructor.randomSituationFromTemplate(situationTemplate);
198
+ const identifiers = {
199
+ situation,
200
+ };
201
+ return getQuestionFromIdentifiers(identifiers);
202
+ };
203
+ const getQuestionFromIdentifiers = (identifiers) => {
204
+ const question = {
205
+ instruction: getInstruction(identifiers),
206
+ answer: getAnswer(identifiers),
207
+ keys: getKeys(identifiers),
208
+ answerFormat: "tex",
209
+ identifiers,
210
+ hint: getHint(identifiers),
211
+ correction: getCorrection(identifiers),
212
+ };
213
+ return question;
214
+ };
215
+ export const findNumberOfCombinationsFromSituation = {
216
+ id: "findNumberOfCombinationsFromSituation",
217
+ connector: "=",
218
+ isSingleStep: true,
219
+ label: "Déterminer le nombre de combinaisons à partir d'une situation",
220
+ generator: (nb) => getDistinctQuestions(getFindNumberOfCombinationsFromSituationQuestion, nb),
221
+ qcmTimer: 60,
222
+ freeTimer: 60,
223
+ getPropositions,
224
+ isAnswerValid,
225
+ subject: "Mathématiques",
226
+ hasHintAndCorrection: true,
227
+ getQuestionFromIdentifiers,
228
+ };
@@ -0,0 +1,17 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Situation = {
4
+ strInstruction: string;
5
+ strHint: string;
6
+ strCorrection: string;
7
+ dictSets: Record<string, {
8
+ value: number;
9
+ }>;
10
+ nodeIdsCardinal: NodeIdentifiers;
11
+ };
12
+ type Identifiers = {
13
+ situation: Situation;
14
+ };
15
+ export declare const findNumberOfProductsOfCombinationsFromSituation: Exercise<Identifiers>;
16
+ export {};
17
+ //# sourceMappingURL=findNumberOfProductsOfCombinationsFromSituation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findNumberOfProductsOfCombinationsFromSituation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/combinations/findNumberOfProductsOfCombinationsFromSituation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAuM7C,KAAK,SAAS,GAAG;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AA0DF,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAuOF,eAAO,MAAM,+CAA+C,EAAE,QAAQ,CAAC,WAAW,CAmB/E,CAAC"}
@@ -0,0 +1,388 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { NodeConstructor, } from "../../../../tree/nodes/nodeConstructor.js";
4
+ import { random } from "../../../../utils/alea/random.js";
5
+ import { randint } from "../../../../math/utils/random/randint.js";
6
+ import { frac, isFractionNode, } from "../../../../tree/nodes/operators/fractionNode.js";
7
+ import { facto } from "../../../../tree/nodes/functions/factorialNode.js";
8
+ import { binom } from "../../../../tree/nodes/operators/binomialCoefficientNode.js";
9
+ import { power } from "../../../../tree/nodes/operators/powerNode.js";
10
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
11
+ import { parseAlgebraic } from "../../../../tree/parsers/latexParser.js";
12
+ import { NodeComparator } from "../../../../tree/utilities/nodeComparator.js";
13
+ import { isMultiplyNode, multiply, } from "../../../../tree/nodes/operators/multiplyNode.js";
14
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
15
+ import { shuffle } from "../../../../utils/alea/shuffle.js";
16
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
17
+ const situationTemplates = [
18
+ {
19
+ strInstruction: `Jade a deux boîtes de perles toutes distinctes : une boîte avec $\${total1}$ perles bleues et une boîte avec $\${total2}$ perles rouges.
20
+ Pour faire un bracelet, Jade prend une poignée de $\${picked1}$ perles bleues et une poignée de $\${picked2}$ perles rouges.
21
+ Combien y a-t-il de prélèvements possibles ?`,
22
+ strHint: `Est-ce que l'ordre a de l'importance ici ? Comment appelle-t-on les sous-ensembles que Jade a prélevés ?
23
+ Fais un compte pour les perles bleues et un autre pour les perles rouges.
24
+ Enfin, trouve une opération pour utiliser les deux comptes qui soit cohérente
25
+ (pour raisonner, tu peux imaginer qu'elle n'a pris qu'une perle de chaque couleur).`,
26
+ strCorrection: `Jade prend un ensemble de $\${picked1}$ perles bleues parmi $\${total1}$.
27
+ Elle prend un sous-ensemble de perles : C'est une combinaison.
28
+ Le nombre de combinaisons possibles pour les perles bleues est :
29
+
30
+ $$
31
+ \${cardinal1}
32
+ $$
33
+
34
+ De même, lorsqu'elle prend un ensemble de $\${picked2}$ perles rouges parmi $\${total2}$.
35
+ Le nombre de combinaisons possibles pour les perles rouges est :
36
+
37
+ $$
38
+ \${cardinal2}
39
+ $$
40
+
41
+ On peut représenter un prélèvement de perles avec un $2$-uplet $(\\text{prélèvement}_{\\text{bleues}};\\text{prélèvement}_{\\text{rouges}})$.
42
+
43
+ Le prélèvement total de Jade est donc un élément du produit cartésien de l'ensemble des prélèvements de perles bleues avec l'ensemble des prélèvements de perles rouges.
44
+ Le nombre de prélèvements possibles est donc :
45
+
46
+ $$
47
+ \${cardinal}
48
+ $$
49
+
50
+ `,
51
+ dictFuncs: {
52
+ total1: () => {
53
+ return {
54
+ value: randint(50, 101),
55
+ };
56
+ },
57
+ picked1: () => {
58
+ return {
59
+ value: randint(22, 41),
60
+ };
61
+ },
62
+ total2: () => {
63
+ return {
64
+ value: randint(26, 46),
65
+ };
66
+ },
67
+ picked2: () => {
68
+ return {
69
+ value: randint(12, 21),
70
+ };
71
+ },
72
+ },
73
+ },
74
+ {
75
+ strInstruction: `Dans une classe de terminale il y a $\${total1}$ filles et $\${total2}$ garçons.
76
+ On consitue une équipe en choisissant $\${picked1}$ filles et $\${picked2}$ garçons.
77
+ Combien d'équipes distinctes peut-on ainsi constituer ?`,
78
+ strHint: `Est-ce que l'ordre a de l'importance ici ? Comment appelle-t-on les sous-équipes que l'on peut constituer ?
79
+ Fais un compte pour les filles et un autre pour les garçons.
80
+ Enfin, trouve une opération pour utiliser les deux comptes qui soit cohérente
81
+ (pour raisonner, tu peux imaginer qu'on n'a pris qu'une fille et un garçon).`,
82
+ strCorrection: `On prend un ensemble de $\${picked1}$ filles parmi $\${total1}$.
83
+ On prend un sous-ensemble de filles : C'est une combinaison.
84
+ Le nombre de combinaisons possibles pour les filles est :
85
+
86
+ $$
87
+ \${cardinal1}
88
+ $$
89
+
90
+ De même, lorsqu'on prend un ensemble de $\${picked2}$ garçons parmi $\${total2}$.
91
+ Le nombre de combinaisons possibles pour les garçons est :
92
+
93
+ $$
94
+ \${cardinal2}
95
+ $$
96
+
97
+ On peut représenter une équipe de filles et de garçons avec un $2$-uplet $(\\text{sous-équipe}_{\\text{filles}};\\text{sous-équipe}_{\\text{garçons}})$.
98
+
99
+ Une équipe de filles et de garçons est donc un élément du produit cartésien des équipes de filles avec les équipes de garçons.
100
+ Le nombre d'équipes possibles est donc :
101
+
102
+ $$
103
+ \${cardinal}
104
+ $$
105
+
106
+ `,
107
+ dictFuncs: {
108
+ total1: () => {
109
+ return {
110
+ value: randint(10, 21),
111
+ };
112
+ },
113
+ total2: () => {
114
+ return {
115
+ value: randint(10, 21),
116
+ };
117
+ },
118
+ picked1: () => {
119
+ return {
120
+ value: randint(3, 7),
121
+ };
122
+ },
123
+ //picked2 is picked1
124
+ },
125
+ },
126
+ {
127
+ strInstruction: `Un fromager a une grande sélection de fromages tous distincts : $\${total1}$ fromages au lait de vache et $\${total2}$ fromages au lait de brebis.
128
+ Pour constituer un plateau de fromages, le fromager prend $\${picked1}$ fromages au lait de vache et $\${picked2}$ fromages au lait de brebis.
129
+ Combien y a-t-il de plateaux possibles ?`,
130
+ strHint: `Est-ce que l'ordre a de l'importance ici ? Comment appelle-t-on les sous-ensembles de chaque type de fromage ?
131
+ Fais un compte pour les fromages au lait de vache et un autre pour les fromages au lait de brebis.
132
+ Enfin, trouve une opération pour utiliser les deux comptes qui soit cohérente
133
+ (pour raisonner, tu peux imaginer qu'il n'a pris qu'un fromage de chaque type).`,
134
+ strCorrection: `Le fromager prend un ensemble de $\${picked1}$ fromages au lait de vache parmi $\${total1}$.
135
+ Il prend un sous-ensemble de fromages : C'est une combinaison.
136
+ Le nombre de combinaisons possibles pour les fromages au lait de vache est :
137
+
138
+ $$
139
+ \${cardinal1}
140
+ $$
141
+
142
+ De même, lorsqu'il prend un ensemble de $\${picked2}$ fromages au lait de brebis parmi $\${total2}$.
143
+ Le nombre de combinaisons possibles pour les fromages au lait de brebis est :
144
+
145
+ $$
146
+ \${cardinal2}
147
+ $$
148
+
149
+ On peut représenter un plateau de fromages avec un $2$-uplet $(\\text{prélèvement}_{\\text{lait de vache}};\\text{prélèvement}_{\\text{lait de brebis}})$.
150
+
151
+ Le plateau peut donc être représenté par un élément du produit cartésien de l'ensemble des prélèvements de fromages au lait de vache avec l'ensemble des prélèvements de fromages au lait de brebis.
152
+ Le nombre de plateaux possibles est donc :
153
+
154
+ $$
155
+ \${cardinal}
156
+ $$
157
+
158
+ `,
159
+ dictFuncs: {
160
+ total1: () => {
161
+ return {
162
+ value: randint(50, 101),
163
+ };
164
+ },
165
+ picked1: () => {
166
+ return {
167
+ value: randint(3, 7),
168
+ };
169
+ },
170
+ total2: () => {
171
+ return {
172
+ value: randint(26, 46),
173
+ };
174
+ },
175
+ picked2: () => {
176
+ return {
177
+ value: randint(3, 7),
178
+ };
179
+ },
180
+ },
181
+ },
182
+ ];
183
+ class SituationConstructor {
184
+ static randomSituationFromTemplate(situationTemplate) {
185
+ const dictSets = Object.entries(situationTemplate.dictFuncs).reduce((acc, [key, func]) => {
186
+ acc[key] = func();
187
+ return acc;
188
+ }, {});
189
+ if (!dictSets["picked2"]) {
190
+ dictSets["picked2"] = dictSets["picked1"];
191
+ }
192
+ const { strInstruction, strCorrection: strCorrectionIncomplete } = Object.entries(dictSets).reduce((acc, [key, miniDict]) => {
193
+ acc.strInstruction = acc.strInstruction.replace(`\${${key}}`, `${miniDict.value}`);
194
+ acc.strCorrection = acc.strCorrection.replace(`\${${key}}`, `${miniDict.value}`);
195
+ return acc;
196
+ }, {
197
+ strInstruction: situationTemplate.strInstruction,
198
+ strCorrection: situationTemplate.strCorrection,
199
+ });
200
+ const { total1: { value: valueTotal1 }, picked1: { value: valuePicked1 }, total2: { value: valueTotal2 }, picked2: { value: valuePicked2 }, } = dictSets;
201
+ const nodeCardinal1 = binom(valueTotal1, valuePicked1);
202
+ const nodeCardinal2 = binom(valueTotal2, valuePicked2);
203
+ const nodeCardinal = multiply(nodeCardinal1, nodeCardinal2);
204
+ const strCorrection = strCorrectionIncomplete
205
+ .replace(`\${cardinal}`, `${nodeCardinal.toTex()}`)
206
+ .replace(`\${cardinal1}`, `${nodeCardinal1.toTex()}`)
207
+ .replace(`\${cardinal2}`, `${nodeCardinal2.toTex()}`);
208
+ return {
209
+ nodeIdsCardinal: nodeCardinal.toIdentifiers(),
210
+ strInstruction,
211
+ strHint: situationTemplate.strHint,
212
+ strCorrection,
213
+ dictSets,
214
+ };
215
+ }
216
+ }
217
+ const getInstruction = (identifiers) => {
218
+ const { situation: { strInstruction }, } = identifiers;
219
+ return strInstruction;
220
+ };
221
+ const getAnswerNode = (identifiers) => {
222
+ const { situation: { nodeIdsCardinal }, } = identifiers;
223
+ const nodeCardinal = NodeConstructor.fromIdentifiers(nodeIdsCardinal);
224
+ return nodeCardinal;
225
+ };
226
+ const getAnswer = (identifiers) => {
227
+ return getAnswerNode(identifiers).toTex();
228
+ };
229
+ const getHint = (identifiers) => {
230
+ const { situation: { strHint }, } = identifiers;
231
+ return `${strHint}`;
232
+ };
233
+ const getCorrection = (identifiers) => {
234
+ const { situation: { strCorrection }, } = identifiers;
235
+ return `${strCorrection}`;
236
+ };
237
+ const getPropositions = (n, { answer, ...identifiers }) => {
238
+ const { situation: { dictSets }, } = identifiers;
239
+ const { total1: { value: valueTotal1 }, picked1: { value: valuePicked1 }, total2: { value: valueTotal2 }, picked2: { value: valuePicked2 }, } = dictSets;
240
+ const propositions = [];
241
+ addValidProp(propositions, answer);
242
+ if (coinFlip()) {
243
+ //student: binom(total1, picked1) + binom(total2, picked2)
244
+ {
245
+ const nodeWrong = add(binom(valueTotal1, valuePicked1), binom(valueTotal2, valuePicked2));
246
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
247
+ }
248
+ }
249
+ {
250
+ const [arrFuncOp1, arrFuncOp2, arrFuncOp3] = shuffle(random([
251
+ [
252
+ [multiply, add],
253
+ [add, multiply],
254
+ [add, multiply],
255
+ ],
256
+ [
257
+ [multiply, add],
258
+ [multiply, add],
259
+ [add, multiply],
260
+ ],
261
+ [
262
+ [multiply, add],
263
+ [multiply, add],
264
+ [multiply, add],
265
+ ],
266
+ ]));
267
+ //student: picked1! \\times picked2!
268
+ {
269
+ const [funcOpMain, funcOpAlt] = arrFuncOp1;
270
+ {
271
+ const nodeWrong = funcOpMain(facto(valuePicked1), facto(valuePicked2));
272
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
273
+ }
274
+ if (coinFlip()) {
275
+ const nodeWrong = funcOpAlt(facto(valuePicked1), facto(valuePicked2));
276
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
277
+ }
278
+ }
279
+ //student: frac(total1!, picked1!) \\times frac(total2!, picked2!)
280
+ {
281
+ const [funcOpMain, funcOpAlt] = arrFuncOp2;
282
+ {
283
+ const nodeWrong = funcOpMain(frac(facto(valueTotal1), facto(valuePicked1)), frac(facto(valueTotal2), facto(valuePicked2)));
284
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
285
+ }
286
+ if (coinFlip()) {
287
+ const nodeWrong = funcOpAlt(frac(facto(valueTotal1), facto(valuePicked1)), frac(facto(valueTotal2), facto(valuePicked2)));
288
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
289
+ }
290
+ }
291
+ //student: power(total1, picked1) \\times power(total2, picked2)
292
+ {
293
+ const [funcOpMain, funcOpAlt] = arrFuncOp3;
294
+ {
295
+ const nodeWrong = funcOpMain(power(valueTotal1, valuePicked1), power(valueTotal2, valuePicked2));
296
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
297
+ }
298
+ if (coinFlip()) {
299
+ const nodeWrong = funcOpAlt(power(valueTotal1, valuePicked1), power(valueTotal2, valuePicked2));
300
+ tryToAddWrongProp(propositions, nodeWrong.toTex());
301
+ }
302
+ }
303
+ }
304
+ return shuffleProps(propositions, n);
305
+ };
306
+ const getKeys = () => {
307
+ const keyFacto = {
308
+ id: "custom",
309
+ label: "!",
310
+ labelType: "tex",
311
+ mathfieldInstructions: {
312
+ method: "write",
313
+ content: "!",
314
+ },
315
+ };
316
+ return [
317
+ // "facto",
318
+ keyFacto,
319
+ "binom",
320
+ ];
321
+ };
322
+ const isAnswerValid = (ans, { answer }) => {
323
+ try {
324
+ const nodeAns = parseAlgebraic(ans);
325
+ const nodeAnswer = parseAlgebraic(answer);
326
+ const isEqualViaSubOrViaFrac = (node1, node2) => NodeComparator.isEqualViaSub(node1, node2) ||
327
+ NodeComparator.isEqualViaFrac(node1, node2);
328
+ if (isMultiplyNode(nodeAns)) {
329
+ if (!isFractionNode(nodeAns.leftChild) &&
330
+ !isFractionNode(nodeAns.rightChild)) {
331
+ //multiply is commutative
332
+ return ((isEqualViaSubOrViaFrac(nodeAns.leftChild, nodeAnswer.leftChild) &&
333
+ isEqualViaSubOrViaFrac(nodeAns.rightChild, nodeAnswer.rightChild)) ||
334
+ (isEqualViaSubOrViaFrac(nodeAns.leftChild, nodeAnswer.rightChild) &&
335
+ isEqualViaSubOrViaFrac(nodeAns.rightChild, nodeAnswer.leftChild)));
336
+ }
337
+ else {
338
+ //fallback
339
+ return NodeComparator.isEqualViaSub(nodeAns, nodeAnswer);
340
+ }
341
+ }
342
+ else if (isFractionNode(nodeAns)) {
343
+ //TODO
344
+ return NodeComparator.isEqualViaSub(nodeAns, nodeAnswer);
345
+ }
346
+ else {
347
+ return NodeComparator.isEqualViaSub(nodeAns, nodeAnswer);
348
+ }
349
+ }
350
+ catch (e) {
351
+ handleVEAError(e);
352
+ return false;
353
+ }
354
+ };
355
+ const getFindNumberOfProductsOfCombinationsFromSituationQuestion = () => {
356
+ const situationTemplate = random(situationTemplates);
357
+ const situation = SituationConstructor.randomSituationFromTemplate(situationTemplate);
358
+ const identifiers = {
359
+ situation,
360
+ };
361
+ return getQuestionFromIdentifiers(identifiers);
362
+ };
363
+ const getQuestionFromIdentifiers = (identifiers) => {
364
+ const question = {
365
+ instruction: getInstruction(identifiers),
366
+ answer: getAnswer(identifiers),
367
+ keys: getKeys(identifiers),
368
+ answerFormat: "tex",
369
+ identifiers,
370
+ hint: getHint(identifiers),
371
+ correction: getCorrection(identifiers),
372
+ };
373
+ return question;
374
+ };
375
+ export const findNumberOfProductsOfCombinationsFromSituation = {
376
+ id: "findNumberOfProductsOfCombinationsFromSituation",
377
+ connector: "=",
378
+ isSingleStep: true,
379
+ label: "Déterminer le nombre de produits de combinaisons à partir d'une situation",
380
+ generator: (nb) => getDistinctQuestions(getFindNumberOfProductsOfCombinationsFromSituationQuestion, nb),
381
+ qcmTimer: 60,
382
+ freeTimer: 60,
383
+ getPropositions,
384
+ isAnswerValid,
385
+ subject: "Mathématiques",
386
+ hasHintAndCorrection: true,
387
+ getQuestionFromIdentifiers,
388
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./proposeCombination.js";
2
+ export * from "./findNumberOfCombinationsFromSituation.js";
3
+ export * from "./findNumberOfProductsOfCombinationsFromSituation.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/combinations/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sDAAsD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./proposeCombination.js";
2
+ export * from "./findNumberOfCombinationsFromSituation.js";
3
+ export * from "./findNumberOfProductsOfCombinationsFromSituation.js";
@@ -0,0 +1,15 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Item = {
4
+ str: string;
5
+ isValid: boolean;
6
+ };
7
+ type Identifiers = {
8
+ strDescriptionE: string;
9
+ nodeIdsSetE: NodeIdentifiers;
10
+ k: number;
11
+ items: Item[];
12
+ };
13
+ export declare const proposeCombination: Exercise<Identifiers>;
14
+ export {};
15
+ //# sourceMappingURL=proposeCombination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposeCombination.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/combinations/proposeCombination.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAwH7C,KAAK,IAAI,GAAG;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,eAAe,CAAC;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAAC;AAiSF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAepD,CAAC"}