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
@@ -10,65 +10,46 @@ const situations = situationsGeometric;
10
10
  const getInstruction = (identifiers, optsIn) => {
11
11
  const opts = optsIn ?? optsDefault;
12
12
  const firstRank = opts?.firstTermRankOne ? 1 : 0;
13
- const { situationIndex, initial, reason, superfluousData } = identifiers;
13
+ const { situationIndex, initial, reason, superfluousData, valueAsked } = identifiers;
14
14
  const situation = situations[situationIndex];
15
15
  return `${situation.getStrSituation(initial, reason, firstRank, superfluousData)}
16
16
 
17
- situation.variationFindRank.getStrQuestion!(
18
- initial,
19
- reason,
20
- firstRank,
21
- valueAsked,
22
- )`;
17
+ ${situation.variationFindRank.getStrQuestion(initial, reason, firstRank, valueAsked)}`;
23
18
  };
24
- const getAnswerNode = (_identifiers, _opts) => {
25
- // const firstRank = opts?.firstTermRankOne ? 1 : 0;
26
- // const { situationIndex, initial, reason, valueAsked } = identifiers;
27
- // const situation = situations[situationIndex];
28
- // return situation.variationFindRank.getAnswerNode(
29
- // initial,
30
- // reason,
31
- // firstRank,
32
- // valueAsked,
33
- // );
34
- return (0).toTree();
19
+ const getAnswerNode = (identifiers, opts) => {
20
+ const firstRank = opts?.firstTermRankOne ? 1 : 0;
21
+ const { situationIndex, initial, reason, valueAsked } = identifiers;
22
+ const situation = situations[situationIndex];
23
+ const { rankDecoder, digitsValue, digitsTarget } = situation;
24
+ return situation.variationFindRank.getAnswerStuff(initial, reason, firstRank, valueAsked, rankDecoder, digitsValue, digitsTarget).answerNode;
35
25
  };
36
26
  const getAnswer = (identifiers, optsIn) => {
37
27
  const opts = optsIn ?? optsDefault;
38
28
  return getAnswerNode(identifiers, opts).simplify().toTex();
39
29
  };
40
- const getHint = (_identifiers, _optsIn) => {
41
- // const opts = optsIn ?? optsDefault;
42
- // const firstRank = opts?.firstTermRankOne ? 1 : 0;
43
- // const { situationIndex, valueAsked } = identifiers;
44
- // const situation = situations[situationIndex];
45
- // return situation.variationFindRank.getHint(firstRank, valueAsked);
46
- return "hint";
30
+ const getHint = (identifiers, optsIn) => {
31
+ const opts = optsIn ?? optsDefault;
32
+ const firstRank = opts?.firstTermRankOne ? 1 : 0;
33
+ const { situationIndex, valueAsked } = identifiers;
34
+ const situation = situations[situationIndex];
35
+ const { rankDecoder, digitsValue, digitsTarget } = situation;
36
+ return situation.variationFindRank.getHint(firstRank, valueAsked, rankDecoder, digitsValue, digitsTarget);
47
37
  };
48
- const getCorrection = (_identifiers, _optsIn) => {
49
- // const opts = optsIn ?? optsDefault;
50
- // const firstRank = opts?.firstTermRankOne ? 1 : 0;
51
- // const { situationIndex, initial, reason, valueAsked } = identifiers;
52
- // const situation = situations[situationIndex];
53
- // return situation.variationFindRank.getCorrectionStuff(
54
- // initial,
55
- // reason,
56
- // firstRank,
57
- // valueAsked,
58
- // ).str as string;
59
- return "correction";
38
+ const getCorrection = (identifiers, optsIn) => {
39
+ const opts = optsIn ?? optsDefault;
40
+ const firstRank = opts?.firstTermRankOne ? 1 : 0;
41
+ const { situationIndex, initial, reason, valueAsked } = identifiers;
42
+ const situation = situations[situationIndex];
43
+ const { rankDecoder, digitsValue, digitsTarget } = situation;
44
+ return situation.variationFindRank.getCorrectionStuff(initial, reason, firstRank, valueAsked, rankDecoder, digitsValue, digitsTarget).str;
60
45
  };
61
- const getPropositions = (n, { answer, ..._identifiers }, _optsIn) => {
62
- // const opts = optsIn ?? optsDefault;
63
- // const firstRank = opts?.firstTermRankOne ? 1 : 0;
64
- // const { situationIndex, initial, reason, valueAsked } = identifiers;
65
- // const situation = situations[situationIndex];
46
+ const getPropositions = (n, { answer }, _optsIn) => {
66
47
  const propositions = [];
67
48
  addValidProp(propositions, answer);
68
49
  //filler
69
50
  {
70
51
  propWhile(propositions, n, () => {
71
- tryToAddWrongProp(propositions, randint(1, 25).frenchify());
52
+ tryToAddWrongProp(propositions, randint(3, 16).frenchify());
72
53
  });
73
54
  }
74
55
  return shuffleProps(propositions, n);
@@ -81,10 +62,9 @@ const isAnswerValid = (ans, { answer }) => {
81
62
  return handleVEAError(err);
82
63
  }
83
64
  };
84
- const getGeometricFindRankFromSituationQuestion = (optsIn) => {
85
- const opts = optsIn ?? optsDefault;
65
+ const createRandomIdentifiers = (opts) => {
86
66
  const { isWithSuperfluousData } = opts;
87
- const firstRank = opts?.firstTermRankOne ? 1 : 0;
67
+ const firstRank = opts.firstTermRankOne ? 1 : 0;
88
68
  const situationIndex = randint(0, situations.length);
89
69
  const situation = situations[situationIndex];
90
70
  const initial = situation.randInitial();
@@ -92,9 +72,10 @@ const getGeometricFindRankFromSituationQuestion = (optsIn) => {
92
72
  const superfluousData = isWithSuperfluousData
93
73
  ? situation.randSuperfluousData()
94
74
  : undefined;
75
+ const { rankDecoder, digitsValue, digitsTarget } = situation;
95
76
  const rankAsked = randint(4, 15);
96
77
  const valueAsked = situation.variationFindRandomTerm
97
- .getAnswerNode(initial, reason, firstRank, rankAsked)
78
+ .getAnswerNode(initial, reason, firstRank, rankAsked, rankDecoder, digitsValue, digitsTarget)
98
79
  .evaluate();
99
80
  const identifiers = {
100
81
  situationIndex,
@@ -103,6 +84,48 @@ const getGeometricFindRankFromSituationQuestion = (optsIn) => {
103
84
  superfluousData,
104
85
  valueAsked,
105
86
  };
87
+ return identifiers;
88
+ };
89
+ const isIdentifiersQCPassed = (identifiers) => {
90
+ const isExploding = (identifiers) => {
91
+ let isExploding = false;
92
+ try {
93
+ getAnswer(identifiers);
94
+ }
95
+ catch (e) {
96
+ console.log("e", e);
97
+ isExploding = true;
98
+ }
99
+ return isExploding;
100
+ };
101
+ return !isExploding(identifiers);
102
+ };
103
+ const createQCPassedIdentifiers = (opts) => {
104
+ let identifiers;
105
+ let counter = -1;
106
+ let isValid = false;
107
+ while (!isValid && counter < 100) {
108
+ counter++;
109
+ const identifiersCandidate = createRandomIdentifiers(opts);
110
+ isValid = isIdentifiersQCPassed(identifiersCandidate);
111
+ if (isValid) {
112
+ identifiers = identifiersCandidate;
113
+ }
114
+ }
115
+ if (!isValid) {
116
+ const identifiersDefault = {
117
+ situationIndex: 0,
118
+ initial: 3600,
119
+ reason: 1.0213,
120
+ valueAsked: 4172.3,
121
+ };
122
+ identifiers = identifiersDefault;
123
+ }
124
+ return identifiers;
125
+ };
126
+ const getGeometricFindRankFromSituationQuestion = (optsIn) => {
127
+ const opts = optsIn ?? optsDefault;
128
+ const identifiers = createQCPassedIdentifiers(opts);
106
129
  return getQuestionFromIdentifiers(identifiers, opts);
107
130
  };
108
131
  const getQuestionFromIdentifiers = (identifiers, opts) => {
@@ -128,7 +151,7 @@ const options = [
128
151
  export const geometricFindRankFromSituation = {
129
152
  id: "geometricFindRankFromSituation",
130
153
  connector: "=",
131
- label: "À partir d'une situation décrivant une évolution géométrique, retrouver le rang d'une valeur donnée",
154
+ label: "À partir d'une situation décrivant une évolution géométrique, retrouver le rang d'une valeur donnée, en utilisant la calculatrice",
132
155
  isSingleStep: true,
133
156
  generator: (nb, opts) => getDistinctQuestions(() => getGeometricFindRankFromSituationQuestion(opts), nb),
134
157
  options,
@@ -1,4 +1,5 @@
1
+ export * from "./geometricFindExplicitFormulaFromSituation.js";
1
2
  export * from "./geometricFindRecurrenceFormulaFromSituation.js";
2
3
  export * from "./geometricFindTermFromSituation.js";
3
- export * from "./geometricFindExplicitFormulaFromSituation.js";
4
+ export * from "./geometricFindRankFromSituation.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/sequences/geometric/situations/index.ts"],"names":[],"mappings":"AAAA,cAAc,kDAAkD,CAAC;AACjE,cAAc,qCAAqC,CAAC;AAGpD,cAAc,gDAAgD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/sequences/geometric/situations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC"}
@@ -1,5 +1,5 @@
1
+ export * from "./geometricFindExplicitFormulaFromSituation.js";
1
2
  export * from "./geometricFindRecurrenceFormulaFromSituation.js";
2
3
  export * from "./geometricFindTermFromSituation.js";
3
- // export * from "./geometricFindRankFromSituation.js";
4
+ export * from "./geometricFindRankFromSituation.js";
4
5
  // export * from "./geometricFindThresholdFromSituation.js";
5
- export * from "./geometricFindExplicitFormulaFromSituation.js";
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ nodeIdsSetA: NodeIdentifiers;
5
+ nodeIdsSetB: NodeIdentifiers;
6
+ isAskedACrossB: boolean;
7
+ };
8
+ export declare const findCardinalOfCartesianProductOfFiniteSets: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=findCardinalOfCartesianProductOfFiniteSets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCardinalOfCartesianProductOfFiniteSets.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAsC7C,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,eAAe,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AA8OF,eAAO,MAAM,0CAA0C,EAAE,QAAQ,CAAC,WAAW,CAkB1E,CAAC"}
@@ -0,0 +1,224 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
4
+ import { shuffle } from "../../../../utils/alea/shuffle.js";
5
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
6
+ import { NodeConstructor, } from "../../../../tree/nodes/nodeConstructor.js";
7
+ import { DiscreteSetNode } from "../../../../tree/nodes/sets/discreteSetNode.js";
8
+ import { isVariableNode, VariableNode, } from "../../../../tree/nodes/variables/variableNode.js";
9
+ import { random } from "../../../../utils/alea/random.js";
10
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
11
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
12
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
13
+ import { power } from "../../../../tree/nodes/operators/powerNode.js";
14
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
15
+ import { randint } from "../../../../math/utils/random/randint.js";
16
+ import { isNumberNode } from "../../../../tree/nodes/numbers/numberNode.js";
17
+ /*
18
+ This toTex() function supports discreteSetNodes with variableNodes inside (this won't create unknown command \\lbracem if m is the first element)
19
+ */
20
+ const discreteSetNodeToTex = (discreteSetNode) => {
21
+ const myCompare = (node1, node2) => {
22
+ if (isNumberNode(node1) && isNumberNode(node2)) {
23
+ return node1.evaluate() - node2.evaluate();
24
+ }
25
+ else if (isNumberNode(node1) && isVariableNode(node2)) {
26
+ return 1;
27
+ }
28
+ else if (isVariableNode(node1) && isNumberNode(node2)) {
29
+ return -1;
30
+ }
31
+ else {
32
+ return node1.toTex().localeCompare(node2.toTex());
33
+ }
34
+ };
35
+ return `\\lbrace ${discreteSetNode.elements
36
+ .toSorted(myCompare)
37
+ .map((node) => node.toTex())
38
+ .join(";")} \\rbrace`;
39
+ };
40
+ const getInstruction = (identifiers) => {
41
+ const { nodeIdsSetA, nodeIdsSetB, isAskedACrossB } = identifiers;
42
+ const [nodeSetA, nodeSetB] = [nodeIdsSetA, nodeIdsSetB].map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
43
+ const texAskedSet = isAskedACrossB ? `A \\times B` : `B \\times A`;
44
+ return `Soient deux ensembles :
45
+
46
+ ${alignTex([
47
+ ["A", nodeSetA],
48
+ ["B", nodeSetB],
49
+ ].map(([letter, nodeSet]) => [letter, "=", discreteSetNodeToTex(nodeSet)]))}
50
+
51
+ Donner le cardinal de $${texAskedSet}$.`;
52
+ };
53
+ const getAnswerNode = (identifiers) => {
54
+ const { nodeIdsSetA, nodeIdsSetB, isAskedACrossB } = identifiers;
55
+ const [nodeSetA, nodeSetB] = [nodeIdsSetA, nodeIdsSetB].map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
56
+ const [nodeSetF, nodeSetS] = isAskedACrossB
57
+ ? [nodeSetA, nodeSetB]
58
+ : [nodeSetB, nodeSetA];
59
+ const [cardF, cardS] = [nodeSetF, nodeSetS].map((discreteSetNode) => discreteSetNode.elements.length);
60
+ const nodeCardinal = multiply(cardF, cardS);
61
+ return nodeCardinal;
62
+ };
63
+ const getAnswer = (identifiers) => {
64
+ return getAnswerNode(identifiers)
65
+ .simplify({ towardsDistribute: true })
66
+ .toTex();
67
+ };
68
+ const getHint = () => {
69
+ return `Le cardinal d'un ensemble fini est le nombre d'éléments de l'ensemble.
70
+
71
+ Soient deux ensembles $C$ et $D$.
72
+ Les éléments de $D \\times C$ sont tous les couples que l'on peut former
73
+ avec comme premier élément un élement de $D$, et comme deuxième élément un élément de $C$.
74
+
75
+ Voici un exemple :
76
+
77
+ $$
78
+ C = \\lbrace 32, 42, 52 \\rbrace
79
+ $$
80
+
81
+ $$
82
+ D = \\lbrace u, v \\rbrace
83
+ $$
84
+
85
+ Voici les couples appartenant à $D \\times C$ :
86
+
87
+ $$
88
+ (u,32),(u,42),(u,52),
89
+ $$
90
+
91
+ $$
92
+ (v,32),(v,42),(v,52)
93
+ $$
94
+
95
+ Le cardinal de $D \\times C$ est donc $2\\times3=6$.`;
96
+ };
97
+ const getCorrection = (identifiers) => {
98
+ const { nodeIdsSetA, nodeIdsSetB, isAskedACrossB } = identifiers;
99
+ const [nodeSetA, nodeSetB] = [nodeIdsSetA, nodeIdsSetB].map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
100
+ const [texSetF, texSetS] = isAskedACrossB ? ["A", "B"] : ["B", "A"];
101
+ const [nodeSetF, nodeSetS] = isAskedACrossB
102
+ ? [nodeSetA, nodeSetB]
103
+ : [nodeSetB, nodeSetA];
104
+ const texAskedSet = `${texSetF} \\times ${texSetS}`;
105
+ const [cardF, cardS] = [nodeSetF, nodeSetS].map((discreteSetNode) => discreteSetNode.elements.length);
106
+ return `Le cardinal d'un ensemble fini est le nombre d'éléments de l'ensemble.
107
+
108
+ ${alignTex([
109
+ [
110
+ `\\text{card}(${texAskedSet})`,
111
+ "=",
112
+ `\\text{card}(${texSetF}) \\times \\text{card}(${texSetS})`,
113
+ ],
114
+ [``, "=", `${cardF.frenchify()} \\times ${cardS.frenchify()}`],
115
+ [``, "=", `${(cardF * cardS).frenchify()}`],
116
+ ])}
117
+
118
+ `;
119
+ };
120
+ const getPropositions = (n, { answer, ...identifiers }) => {
121
+ const { nodeIdsSetA, nodeIdsSetB } = identifiers;
122
+ const [nodeSetA, nodeSetB] = [nodeIdsSetA, nodeIdsSetB].map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
123
+ const [cardA, cardB] = [nodeSetA, nodeSetB].map((discreteSetNode) => discreteSetNode.elements.length);
124
+ const propositions = [];
125
+ addValidProp(propositions, answer);
126
+ tryToAddWrongProp(propositions, "2");
127
+ tryToAddWrongProp(propositions, add(cardA, cardB).simplify({ towardsDistribute: true }).toTex());
128
+ tryToAddWrongProp(propositions, power(cardA, cardB).simplify({ towardsDistribute: true }).toTex());
129
+ tryToAddWrongProp(propositions, power(cardB, cardA).simplify({ towardsDistribute: true }).toTex());
130
+ return shuffleProps(propositions, n);
131
+ };
132
+ const getKeys = () => {
133
+ return [];
134
+ };
135
+ const isAnswerValid = (ans, { answer }) => {
136
+ try {
137
+ return numberVEA(ans, answer);
138
+ }
139
+ catch (err) {
140
+ return handleVEAError(err);
141
+ }
142
+ };
143
+ const getFindCardinalOfCartesianProductOfFiniteSetsQuestion = () => {
144
+ const poolNumberNode = [...Array(20).keys()]
145
+ .map((i) => i * 2)
146
+ .map((v) => v.toTree());
147
+ const poolVarNode1 = ["c", "d", "k"].map((letter) => new VariableNode(letter));
148
+ const poolVarNode2 = ["\\alpha", "\\beta", "\\gamma", "\\delta"].map((letter) => new VariableNode(letter));
149
+ function createRandomSetNode(funcCreateElem, nbElem) {
150
+ const arrNode = shuffle([...Array(nbElem).keys()].reduce((acc, i) => {
151
+ acc = [...acc, funcCreateElem(i, acc)];
152
+ return acc;
153
+ }, []));
154
+ return new DiscreteSetNode(arrNode);
155
+ }
156
+ const nbElemA = randint(2, 10);
157
+ const nbElemB = randint(2, 10, [nbElemA]);
158
+ const poolCommon = [...poolNumberNode, ...poolVarNode1, ...poolVarNode2];
159
+ const poolAOnly = [
160
+ new VariableNode("b"),
161
+ ...[...Array(20).keys()].map((i) => i * 2 + 1).map((v) => v.toTree()),
162
+ ];
163
+ const poolBOnly = ["a", "m", "n"].map((letter) => new VariableNode(letter));
164
+ function* genFuncElemA() {
165
+ yield* shuffle(poolCommon);
166
+ return "Done";
167
+ }
168
+ function* genFuncElemB() {
169
+ yield* shuffle(poolCommon);
170
+ return "Done";
171
+ }
172
+ const [generateElemA, generateElemB] = [genFuncElemA(), genFuncElemB()];
173
+ //ensure A\B is not empty
174
+ const nodeSetA = createRandomSetNode((i) => {
175
+ if (i === nbElemA - 1) {
176
+ return random(poolAOnly);
177
+ }
178
+ else {
179
+ return generateElemA.next().value;
180
+ }
181
+ }, nbElemA);
182
+ //ensure B\A is not empty
183
+ const nodeSetB = createRandomSetNode((i, _arrPrevious) => {
184
+ if (i === nbElemB - 1) {
185
+ return random(poolBOnly);
186
+ }
187
+ else {
188
+ return generateElemB.next().value;
189
+ }
190
+ }, nbElemB);
191
+ const isAskedACrossB = coinFlip();
192
+ const identifiers = {
193
+ nodeIdsSetA: nodeSetA.toIdentifiers(),
194
+ nodeIdsSetB: nodeSetB.toIdentifiers(),
195
+ isAskedACrossB,
196
+ };
197
+ return getQuestionFromIdentifiers(identifiers);
198
+ };
199
+ const getQuestionFromIdentifiers = (identifiers) => {
200
+ const question = {
201
+ instruction: getInstruction(identifiers),
202
+ answer: getAnswer(identifiers),
203
+ keys: getKeys(identifiers),
204
+ answerFormat: "tex",
205
+ identifiers,
206
+ hint: getHint(identifiers),
207
+ correction: getCorrection(identifiers),
208
+ };
209
+ return question;
210
+ };
211
+ export const findCardinalOfCartesianProductOfFiniteSets = {
212
+ id: "findCardinalOfCartesianProductOfFiniteSets",
213
+ connector: "=",
214
+ isSingleStep: true,
215
+ label: "Donner le cardinal du produit cartésien de deux ensembles",
216
+ generator: (nb) => getDistinctQuestions(getFindCardinalOfCartesianProductOfFiniteSetsQuestion, nb),
217
+ qcmTimer: 60,
218
+ freeTimer: 60,
219
+ getPropositions,
220
+ isAnswerValid,
221
+ subject: "Mathématiques",
222
+ hasHintAndCorrection: true,
223
+ getQuestionFromIdentifiers,
224
+ };
@@ -0,0 +1,18 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Situation = {
4
+ strInstruction: string;
5
+ strCorrection: string;
6
+ dictSets: Record<string, {
7
+ cardinal: number;
8
+ strInjected: string;
9
+ strExplain: string;
10
+ }>;
11
+ nodeIdsCardinal: NodeIdentifiers;
12
+ };
13
+ type Identifiers = {
14
+ situation: Situation;
15
+ };
16
+ export declare const findCardinalOfCartesianProductOfFiniteSetsFromSituation: Exercise<Identifiers>;
17
+ export {};
18
+ //# sourceMappingURL=findCardinalOfCartesianProductOfFiniteSetsFromSituation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCardinalOfCartesianProductOfFiniteSetsFromSituation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSetsFromSituation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAuE7C,KAAK,SAAS,GAAG;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAC9D,CAAC;IACF,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAqDF,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AA6IF,eAAO,MAAM,uDAAuD,EAAE,QAAQ,CAAC,WAAW,CAmBvF,CAAC"}
@@ -0,0 +1,198 @@
1
+ import { addValidProp, propWhile, shuffleProps, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
4
+ import { NodeConstructor, } from "../../../../tree/nodes/nodeConstructor.js";
5
+ import { random, randomMany } from "../../../../utils/alea/random.js";
6
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
7
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
8
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
9
+ import { randint } from "../../../../math/utils/random/randint.js";
10
+ import { joinanded } from "../../../../utils/strings/joinanded.js";
11
+ const situationTemplates = [
12
+ {
13
+ strInstruction: "Un coffret contient ${shapes}, ${colors}, et ${sizes}. Combien de perles distinctes existe-t-il ?",
14
+ strCorrection: `\${shapes.explain}
15
+ \${colors.explain}
16
+ \${sizes.explain}
17
+ Le nombre de perles distinctes est donc $\${cardinal}$.`,
18
+ dictFuncs: {
19
+ shapes: () => {
20
+ const pool = ["rondes", "ovales", "carrées", "cylindriques"];
21
+ const cardinal = randint(1, pool.length);
22
+ const arrStr = randomMany(pool, cardinal);
23
+ return {
24
+ cardinal,
25
+ strInjected: `des perles ${joinanded(arrStr, ", ", " et ")}`,
26
+ strExplain: cardinal === 1
27
+ ? `Il y a une seule forme.`
28
+ : `Il y a $${cardinal}$ formes différentes.`,
29
+ };
30
+ },
31
+ colors: () => {
32
+ const pool = ["rouges", "vertes", "bleues", "jaunes"];
33
+ const cardinal = randint(1, pool.length);
34
+ const arrStr = randomMany(pool, cardinal);
35
+ return {
36
+ cardinal,
37
+ strInjected: `des perles ${joinanded(arrStr, ", ", " et ")}`,
38
+ strExplain: cardinal === 1
39
+ ? `Il y a une seule couleur.`
40
+ : `Il y a $${cardinal}$ couleurs différentes.`,
41
+ };
42
+ },
43
+ sizes: () => {
44
+ const cardinal = randint(2, 7);
45
+ return {
46
+ cardinal,
47
+ strInjected: cardinal === 1
48
+ ? `une même taille pour toutes les perles.`
49
+ : `$${cardinal}$ tailles de perles différentes`,
50
+ strExplain: cardinal === 1
51
+ ? `Il y a une seule taille.`
52
+ : `Il y a $${cardinal}$ tailles différentes.`,
53
+ };
54
+ },
55
+ },
56
+ },
57
+ ];
58
+ class SituationConstructor {
59
+ static randomSituationFromTemplate(situationTemplate) {
60
+ const dictSets = Object.entries(situationTemplate.dictFuncs).reduce((acc, [key, func]) => {
61
+ acc[key] = func();
62
+ return acc;
63
+ }, {});
64
+ const { strInstruction, strCorrection: strCorrectionIncomplete, nodeCardinal, } = Object.entries(dictSets).reduce((acc, [key, miniDict]) => {
65
+ acc.strInstruction = acc.strInstruction.replace(`\${${key}}`, miniDict.strInjected);
66
+ acc.strCorrection = acc.strCorrection.replace(`\${${key}.explain}`, miniDict.strExplain);
67
+ acc.nodeCardinal = acc.nodeCardinal
68
+ ? multiply(acc.nodeCardinal, miniDict.cardinal)
69
+ : miniDict.cardinal.toTree();
70
+ return acc;
71
+ }, {
72
+ strInstruction: situationTemplate.strInstruction,
73
+ strCorrection: situationTemplate.strCorrection,
74
+ nodeCardinal: undefined,
75
+ });
76
+ const strCorrection = strCorrectionIncomplete.replace(`\${cardinal}`, `${nodeCardinal.toTex()} = ${nodeCardinal
77
+ .simplify({ towardsDistribute: true })
78
+ .toTex()}`);
79
+ return {
80
+ nodeIdsCardinal: nodeCardinal.toIdentifiers(),
81
+ strInstruction,
82
+ strCorrection,
83
+ dictSets,
84
+ };
85
+ }
86
+ }
87
+ const getInstruction = (identifiers) => {
88
+ const { situation: { strInstruction }, } = identifiers;
89
+ return strInstruction;
90
+ };
91
+ const getAnswerNode = (identifiers) => {
92
+ const { situation: { nodeIdsCardinal }, } = identifiers;
93
+ const nodeCardinal = NodeConstructor.fromIdentifiers(nodeIdsCardinal);
94
+ return nodeCardinal;
95
+ };
96
+ const getAnswer = (identifiers) => {
97
+ return getAnswerNode(identifiers)
98
+ .simplify({ towardsDistribute: true })
99
+ .toTex();
100
+ };
101
+ const getHint = () => {
102
+ return `Le cardinal d'un ensemble fini est le nombre d'éléments de l'ensemble.
103
+
104
+ On va prendre un exemple avec des cartes à jouer.
105
+ Chaque carte peut être soit Valet, soit Dame, soit Roi.
106
+ Chaque carte peut être soit Pique, soit Coeur.
107
+
108
+ Voici toutes les cartes possibles :
109
+
110
+ $$
111
+ (\\text{Valet},\\text{Pique}),(\\text{Valet},\\text{Coeur})
112
+ $$
113
+
114
+ $$
115
+ (\\text{Dame},\\text{Pique}),(\\text{Dame},\\text{Coeur})
116
+ $$
117
+
118
+ $$
119
+ (\\text{Roi},\\text{Pique}),(\\text{Roi},\\text{Coeur})
120
+ $$
121
+
122
+ Il y en a $3\\times2=6$.`;
123
+ };
124
+ const getCorrection = (identifiers) => {
125
+ const { situation: { strCorrection }, } = identifiers;
126
+ return strCorrection;
127
+ };
128
+ const getPropositions = (n, { answer, ...identifiers }) => {
129
+ const { situation: { dictSets }, } = identifiers;
130
+ const propositions = [];
131
+ addValidProp(propositions, answer);
132
+ const arrSubCardinal = Object.values(dictSets).map(({ cardinal }) => cardinal);
133
+ //student: add
134
+ {
135
+ const cardinalWrong = arrSubCardinal.reduce((acc, x) => acc + x, 0);
136
+ tryToAddWrongProp(propositions, cardinalWrong.frenchify());
137
+ }
138
+ //student: max(dictSets.cardinal)
139
+ {
140
+ const cardinalWrong = arrSubCardinal.reduce((acc, x) => Math.max(acc, x), 0);
141
+ tryToAddWrongProp(propositions, cardinalWrong.frenchify());
142
+ }
143
+ propWhile(propositions, n, () => {
144
+ //filler: around answer wrt multiplication tables
145
+ {
146
+ const indexWrong = randint(0, arrSubCardinal.length);
147
+ const arrSubCardinalWrong = arrSubCardinal.map((v, i) => i === indexWrong ? (v === 1 ? v + 1 : v + (coinFlip() ? -1 : 1)) : v);
148
+ const cardinalWrong = arrSubCardinalWrong.reduce((acc, x) => acc * x, 1);
149
+ tryToAddWrongProp(propositions, cardinalWrong.frenchify());
150
+ }
151
+ });
152
+ return shuffleProps(propositions, n);
153
+ };
154
+ const getKeys = () => {
155
+ return [];
156
+ };
157
+ const isAnswerValid = (ans, { answer }) => {
158
+ try {
159
+ return numberVEA(ans, answer);
160
+ }
161
+ catch (err) {
162
+ return handleVEAError(err);
163
+ }
164
+ };
165
+ const getFindCardinalOfCartesianProductOfFiniteSetsFromSituationQuestion = () => {
166
+ const situationTemplate = random(situationTemplates);
167
+ const situation = SituationConstructor.randomSituationFromTemplate(situationTemplate);
168
+ const identifiers = {
169
+ situation,
170
+ };
171
+ return getQuestionFromIdentifiers(identifiers);
172
+ };
173
+ const getQuestionFromIdentifiers = (identifiers) => {
174
+ const question = {
175
+ instruction: getInstruction(identifiers),
176
+ answer: getAnswer(identifiers),
177
+ keys: getKeys(identifiers),
178
+ answerFormat: "tex",
179
+ identifiers,
180
+ hint: getHint(identifiers),
181
+ correction: getCorrection(identifiers),
182
+ };
183
+ return question;
184
+ };
185
+ export const findCardinalOfCartesianProductOfFiniteSetsFromSituation = {
186
+ id: "findCardinalOfCartesianProductOfFiniteSetsFromSituation",
187
+ connector: "=",
188
+ isSingleStep: true,
189
+ label: "Donner le cardinal d'un ensemble produit cartésien défini par une situation",
190
+ generator: (nb) => getDistinctQuestions(getFindCardinalOfCartesianProductOfFiniteSetsFromSituationQuestion, nb),
191
+ qcmTimer: 60,
192
+ freeTimer: 60,
193
+ getPropositions,
194
+ isAnswerValid,
195
+ subject: "Mathématiques",
196
+ hasHintAndCorrection: true,
197
+ getQuestionFromIdentifiers,
198
+ };
@@ -0,0 +1,10 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ strDescriptionE: string;
5
+ nodeIdsSetE: NodeIdentifiers;
6
+ k: number;
7
+ };
8
+ export declare const findCardinalOfPowEK: Exercise<Identifiers>;
9
+ export {};
10
+ //# sourceMappingURL=findCardinalOfPowEK.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCardinalOfPowEK.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/sets/cartesianProduct/findCardinalOfPowEK.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAsH7C,KAAK,WAAW,GAAG;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,eAAe,CAAC;IAC7B,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqKF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAerD,CAAC"}