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,511 @@
1
+ import { addValidProp, tryToAddWrongProp, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { colorWithOpacity, greenMain } from "../../../../geogebra/colors.js";
4
+ import { GeogebraConstructor } from "../../../../geogebra/geogebraConstructor.js";
5
+ import { SpacePoint, SpacePointConstructor, } from "../../../../math/geometry/spacePoint.js";
6
+ import { SpaceVector, SpaceVectorConstructor, } from "../../../../math/geometry/spaceVector.js";
7
+ import { EqualNode } from "../../../../tree/nodes/equations/equalNode.js";
8
+ import { NodeConstructor, } from "../../../../tree/nodes/nodeConstructor.js";
9
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
10
+ import { frac } from "../../../../tree/nodes/operators/fractionNode.js";
11
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
12
+ import { isOperatorNode, OperatorIds, } from "../../../../tree/nodes/operators/operatorNode.js";
13
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
14
+ import { isVariableNode, VariableNode, } from "../../../../tree/nodes/variables/variableNode.js";
15
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
16
+ import { random } from "../../../../utils/alea/random.js";
17
+ import { shuffle } from "../../../../utils/alea/shuffle.js";
18
+ import { zip } from "../../../../utils/arrays/arrayZip.js";
19
+ import { transpose } from "../../../../utils/arrays/transpose.js";
20
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
21
+ const isAligned = ([K, L, M]) => {
22
+ const [vecKL, vecKM] = [
23
+ [K, L],
24
+ [K, M],
25
+ ].map(([spacePointStart, spacePointEnd]) => SpaceVectorConstructor.fromPoints(spacePointStart, spacePointEnd));
26
+ return vecKL
27
+ .vetorialProduct(vecKM)
28
+ .equals(new SpaceVector("0", (0).toTree(), (0).toTree(), (0).toTree()));
29
+ };
30
+ const createSpaceVecNamed = (name, dictSpacePoints) => {
31
+ const [nameP1, nameP2] = name.split("");
32
+ const [P1, P2] = [nameP1, nameP2].map((name) => dictSpacePoints[name]);
33
+ return SpaceVectorConstructor.fromPoints(P1, P2);
34
+ };
35
+ const createSpaceVecFromVecFormula = (nodeVecFormula, dictSpacePoints) => {
36
+ if (isOperatorNode(nodeVecFormula)) {
37
+ switch (nodeVecFormula.id) {
38
+ case OperatorIds.add: {
39
+ const [vecLhs, vecRhs] = [
40
+ nodeVecFormula.leftChild,
41
+ nodeVecFormula.rightChild,
42
+ ].map((nodeVecFormulaChild) => createSpaceVecFromVecFormula(nodeVecFormulaChild, dictSpacePoints));
43
+ return vecLhs.add(vecRhs);
44
+ }
45
+ case OperatorIds.substract: {
46
+ const [vecLhs, vecRhs] = [
47
+ nodeVecFormula.leftChild,
48
+ nodeVecFormula.rightChild,
49
+ ].map((nodeVecFormulaChild) => createSpaceVecFromVecFormula(nodeVecFormulaChild, dictSpacePoints));
50
+ return vecLhs.add(vecRhs.times((-1).toTree()));
51
+ }
52
+ case OperatorIds.multiply: {
53
+ const nodeLhs = nodeVecFormula.leftChild;
54
+ const [vecRhs] = [nodeVecFormula.rightChild].map((nodeVecFormulaChild) => createSpaceVecFromVecFormula(nodeVecFormulaChild, dictSpacePoints));
55
+ return vecRhs.times(nodeLhs);
56
+ }
57
+ case OperatorIds.fraction: {
58
+ const nodeDen = nodeVecFormula.rightChild;
59
+ const [vecNum] = [nodeVecFormula.leftChild].map((nodeVecFormulaChild) => createSpaceVecFromVecFormula(nodeVecFormulaChild, dictSpacePoints));
60
+ return vecNum.times(frac(1, nodeDen));
61
+ }
62
+ default:
63
+ throw new Error("Unsupported nodeVecFormula.id: " + nodeVecFormula.id);
64
+ }
65
+ }
66
+ else if (isVariableNode(nodeVecFormula)) {
67
+ const name = nodeVecFormula.name
68
+ .replace("\\overrightarrow{", "")
69
+ .replace("}", ""); //flemme de faire une regexp pour ça
70
+ return createSpaceVecNamed(name, dictSpacePoints);
71
+ }
72
+ else {
73
+ throw new Error("Unsupported nodeVecFormula: " + nodeVecFormula.toTex());
74
+ }
75
+ };
76
+ const createSpacePointFromNodeVecEquation = (nodeVecEquation, arrSpacePointSrc) => {
77
+ const dictSpacePoints = arrSpacePointSrc.reduce((acc, spacePoint) => {
78
+ acc[spacePoint.name] = spacePoint;
79
+ return acc;
80
+ }, {});
81
+ dictSpacePoints["O"] = SpacePointConstructor.fromScalars([0, 0, 0], "O");
82
+ const nameLhs = nodeVecEquation.leftChild.name
83
+ .replace("\\overrightarrow{", "")
84
+ .replace("}", ""); //flemme de faire une regexp pour ça
85
+ const [nameFrom, nameTarget] = nameLhs.split("");
86
+ const vecOffset = SpaceVectorConstructor.fromPoints(dictSpacePoints["O"], dictSpacePoints[nameFrom]);
87
+ return vecOffset
88
+ .add(createSpaceVecFromVecFormula(nodeVecEquation.rightChild, dictSpacePoints))
89
+ .getEndPoint(dictSpacePoints["O"], nameTarget);
90
+ };
91
+ /**
92
+ BEGIN CUBE STUFF
93
+ */
94
+ const getSpacePointForRelativeCoords = (spacePointOrigin, coords, arrVec) => {
95
+ return zip(coords.map((v) => v.toTree()), arrVec).reduce((acc, [nodeFactor, vec]) => {
96
+ const vecScaled = vec.times(nodeFactor);
97
+ return vecScaled.getEndPoint(acc);
98
+ }, spacePointOrigin);
99
+ };
100
+ const getPrismPoints = (spacePointOrigin, vecX, vecY, vecZ) => {
101
+ const isRightHanded = vecX.vetorialProduct(vecY).scalarProduct(vecZ).evaluate() > 0;
102
+ const [vecXRH, vecYRH, vecZRH] = isRightHanded
103
+ ? [vecX, vecY, vecZ]
104
+ : [vecY, vecX, vecZ];
105
+ const arrCoordsWrtCubeVecs = [
106
+ [0, 0, 0],
107
+ [0, 1, 0],
108
+ [1, 1, 0],
109
+ [1, 0, 0],
110
+ [0, 0, 1],
111
+ [0, 1, 1],
112
+ [1, 1, 1],
113
+ [1, 0, 1],
114
+ ];
115
+ return arrCoordsWrtCubeVecs.map((coords) => getSpacePointForRelativeCoords(spacePointOrigin, coords, [
116
+ vecXRH,
117
+ vecYRH,
118
+ vecZRH,
119
+ ]));
120
+ };
121
+ const createPointMeshForSide = (spacePointOrigin, u, v, nbH, nbW) => {
122
+ return [...Array(nbH + 1).keys()].map((i) => [...Array(nbW + 1).keys()].map((j) => {
123
+ const spaceVec = u.times(i.toTree()).add(v.times(j.toTree()));
124
+ const spacePointIJ = spaceVec.getEndPoint(spacePointOrigin);
125
+ return spacePointIJ;
126
+ }));
127
+ };
128
+ const createSegmentMeshForPointMesh = (pointMesh) => {
129
+ //horiz
130
+ const arrSegmentHoriz = pointMesh.map((rowOfPoints) => {
131
+ return [rowOfPoints[0], rowOfPoints[rowOfPoints.length - 1]];
132
+ });
133
+ //vert
134
+ const arrSegmentVert = transpose(pointMesh).map((columnOfPoints) => {
135
+ return [columnOfPoints[0], columnOfPoints[columnOfPoints.length - 1]];
136
+ });
137
+ return [...arrSegmentHoriz, ...arrSegmentVert];
138
+ };
139
+ const getAllPointMeshes = (spacePointOrigin, vecX, vecY, vecZ) => {
140
+ const isRightHanded = vecX.vetorialProduct(vecY).scalarProduct(vecZ).evaluate() > 0;
141
+ const [vecXRH, vecYRH, vecZRH] = isRightHanded
142
+ ? [vecX, vecY, vecZ]
143
+ : [vecY, vecX, vecZ];
144
+ const nbS = 2;
145
+ const nodeFactorS = (0.5).toTree();
146
+ return [
147
+ //z-
148
+ createPointMeshForSide(spacePointOrigin, vecXRH.times(nodeFactorS), vecYRH.times(nodeFactorS), nbS, nbS),
149
+ //z+
150
+ createPointMeshForSide(vecZRH.getEndPoint(spacePointOrigin, "NoName"), vecXRH.times(nodeFactorS), vecYRH.times(nodeFactorS), 2, 2),
151
+ //y-
152
+ createPointMeshForSide(spacePointOrigin, vecXRH.times(nodeFactorS), vecZRH.times(nodeFactorS), nbS, nbS),
153
+ //y+
154
+ createPointMeshForSide(vecYRH.getEndPoint(spacePointOrigin, "NoName"), vecXRH.times(nodeFactorS), vecZRH.times(nodeFactorS), 2, 2),
155
+ //x-
156
+ createPointMeshForSide(spacePointOrigin, vecYRH.times(nodeFactorS), vecZRH.times(nodeFactorS), nbS, nbS),
157
+ //x+
158
+ createPointMeshForSide(vecXRH.getEndPoint(spacePointOrigin, "NoName"), vecYRH.times(nodeFactorS), vecZRH.times(nodeFactorS), 2, 2),
159
+ ];
160
+ };
161
+ const getArrCoordsFrame = (arrSpacePoint) => {
162
+ const xMin = arrSpacePoint
163
+ .map((spacePoint) => spacePoint.x.evaluate())
164
+ .reduce((acc, x) => Math.min(acc, x));
165
+ const xMax = arrSpacePoint
166
+ .map((spacePoint) => spacePoint.x.evaluate())
167
+ .reduce((acc, x) => Math.max(acc, x));
168
+ const yMin = arrSpacePoint
169
+ .map((spacePoint) => spacePoint.y.evaluate())
170
+ .reduce((acc, x) => Math.min(acc, x));
171
+ const yMax = arrSpacePoint
172
+ .map((spacePoint) => spacePoint.y.evaluate())
173
+ .reduce((acc, x) => Math.max(acc, x));
174
+ const zMin = arrSpacePoint
175
+ .map((spacePoint) => spacePoint.z.evaluate())
176
+ .reduce((acc, x) => Math.min(acc, x));
177
+ const zMax = arrSpacePoint
178
+ .map((spacePoint) => spacePoint.z.evaluate())
179
+ .reduce((acc, x) => Math.max(acc, x));
180
+ return [xMin, xMax, yMin, yMax, zMin, zMax].map((v) => v * 1.1);
181
+ };
182
+ const getHydrated = (identifiers) => {
183
+ const { spacePointIdsCubeOrigin, spacePointIdsCubeVecsEndPoint, spacePointIdsWrtBaseVecs, nodeIdsVecEquation, } = identifiers;
184
+ const spacePointCubeOrigin = SpacePointConstructor.fromIdentifiers(spacePointIdsCubeOrigin);
185
+ const [arrCubeVec] = [spacePointIdsCubeVecsEndPoint].map((arr) => arr.map((pointIds) => SpaceVectorConstructor.fromPoints(spacePointCubeOrigin, SpacePointConstructor.fromIdentifiers(pointIds))));
186
+ const arrSpacePointWrtBaseVecs = spacePointIdsWrtBaseVecs.map((spacePointIds) => SpacePointConstructor.fromIdentifiers(spacePointIds));
187
+ const arrSpacePointNamedCube = arrSpacePointWrtBaseVecs.map((spacePointWrtBaseVecs) => {
188
+ const spacePoint = getSpacePointForRelativeCoords(spacePointCubeOrigin, [
189
+ spacePointWrtBaseVecs.x,
190
+ spacePointWrtBaseVecs.y,
191
+ spacePointWrtBaseVecs.z,
192
+ ].map((node) => node.evaluate()), arrCubeVec);
193
+ spacePoint.name = spacePointWrtBaseVecs.name;
194
+ return spacePoint;
195
+ });
196
+ const arrNodeVecEquation = nodeIdsVecEquation.map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
197
+ const [K, L, M] = arrNodeVecEquation.map((nodeVecEquation) => createSpacePointFromNodeVecEquation(nodeVecEquation, arrSpacePointNamedCube));
198
+ const isAlignedKLM = isAligned([K, L, M]);
199
+ const arrNodeVecEquationOriginToTarget = arrNodeVecEquation.map((nodeVecEquation) => {
200
+ const nameLhs = nodeVecEquation.leftChild.name
201
+ .replace("\\overrightarrow{", "")
202
+ .replace("}", ""); //flemme de faire une regexp pour ça
203
+ const [nameFrom, nameTarget] = nameLhs.split("");
204
+ if (nameFrom === "A") {
205
+ return nodeVecEquation;
206
+ }
207
+ else {
208
+ return new EqualNode(new VariableNode(`\\overrightarrow{A${nameTarget}}`), add(new VariableNode(`\\overrightarrow{A${nameFrom}}`), nodeVecEquation.rightChild));
209
+ }
210
+ });
211
+ const [nodeVecEquationOriginToK] = arrNodeVecEquationOriginToTarget;
212
+ const [nodeVecEquationKL, nodeVecEquationKM] = zip(["KL", "KM"], arrNodeVecEquationOriginToTarget.slice(1)).map(([nameVec, nodeVecEquationOriginToTarget]) => {
213
+ return new EqualNode(new VariableNode(`\\overrightarrow{${nameVec}}`), substract(nodeVecEquationOriginToTarget.rightChild, nodeVecEquationOriginToK.rightChild));
214
+ });
215
+ return {
216
+ spacePointCubeOrigin,
217
+ arrCubeVec,
218
+ arrSpacePointNamedCube,
219
+ arrNodeVecEquation,
220
+ arrSpacePointNamedAsked: [K, L, M],
221
+ isAlignedKLM,
222
+ arrNodeVecEquationOriginToTarget,
223
+ nodeVecEquationKL,
224
+ nodeVecEquationKM,
225
+ };
226
+ };
227
+ const getInstruction = (identifiers) => {
228
+ const { arrNodeVecEquation } = getHydrated(identifiers);
229
+ return `Un cube $ABCDEFGH$ est affiché ci-dessous. On définit les points $K$, $L$ et $M$ par :
230
+
231
+ ${alignTex(arrNodeVecEquation.map((nodeVecEquation) => [nodeVecEquation.toTex()]))}
232
+
233
+ Les points $K$, $L$ et $M$ sont-ils alignés ?
234
+
235
+ *On pourra tourner la fenêtre graphique.*`;
236
+ };
237
+ const getAnswer = (identifiers) => {
238
+ const { isAlignedKLM } = getHydrated(identifiers);
239
+ return isAlignedKLM ? "Oui" : "Non";
240
+ };
241
+ const getHint = () => {
242
+ return `$P$, $Q$ et $R$ sont alignés si et seulement si $\\overrightarrow{PQ}$ et $\\overrightarrow{PR}$ sont colinéaires.
243
+ Pour montrer que $\\overrightarrow{PQ}$ et $\\overrightarrow{PR}$ sont colinéaires, on peut, entre autres :
244
+ - montrer par le calcul que $\\overrightarrow{PQ} \\wedge \\overrightarrow{PR} = \\overrightarrow{0}$
245
+ - trouver un réel $k$ tel que $\\overrightarrow{PQ} = k \\overrightarrow{PR}$`;
246
+ };
247
+ const getCorrection = (identifiers) => {
248
+ const { isAlignedKLM, nodeVecEquationKL, nodeVecEquationKM, arrNodeVecEquationOriginToTarget, } = getHydrated(identifiers);
249
+ return `$K$, $L$ et $M$ sont alignés si et seulement si $\\overrightarrow{KL}$ et $\\overrightarrow{KM}$ sont colinéaires.
250
+
251
+ On a :
252
+
253
+ ${alignTex(arrNodeVecEquationOriginToTarget.map((nodeVecEquation) => [
254
+ nodeVecEquation.toTex(),
255
+ ]))}
256
+
257
+ Donc :
258
+
259
+ ${alignTex([nodeVecEquationKL, nodeVecEquationKM].map((nodeVecEquation) => [
260
+ nodeVecEquation.toTex(),
261
+ ]))}
262
+
263
+ ${(() => {
264
+ if (isAlignedKLM) {
265
+ return `On a :
266
+
267
+ $$
268
+ \\overrightarrow{KL} \\wedge \\overrightarrow{KM} = \\overrightarrow{0}
269
+ $$
270
+
271
+ Donc les points $K$,$L$ et $M$ sont alignés.`;
272
+ }
273
+ else {
274
+ return `On a :
275
+
276
+ $$
277
+ \\overrightarrow{KL} \\wedge \\overrightarrow{KM} \\neq \\overrightarrow{0}
278
+ $$
279
+
280
+ Donc les points $K$,$L$ et $M$ ne sont pas alignés.`;
281
+ }
282
+ })()}
283
+
284
+ `;
285
+ };
286
+ const getCorrectionGGBOptions = (identifiers) => {
287
+ const { spacePointCubeOrigin, arrCubeVec, arrSpacePointNamedCube, arrSpacePointNamedAsked, isAlignedKLM, } = getHydrated(identifiers);
288
+ const [vecXCube, vecYCube, vecZCube] = arrCubeVec;
289
+ const prismSpacePoints = getPrismPoints(spacePointCubeOrigin, vecXCube, vecYCube, vecZCube);
290
+ const arrSide = getAllPointMeshes(spacePointCubeOrigin, vecXCube, vecYCube, vecZCube);
291
+ const arrSegment = arrSide.flatMap(createSegmentMeshForPointMesh);
292
+ const [K, L] = arrSpacePointNamedAsked;
293
+ const commands = [
294
+ //hide xOyPlane
295
+ `SetFilling(xOyPlane, 0)`,
296
+ //pretty names
297
+ ...[
298
+ //points
299
+ ...[...arrSpacePointNamedCube].flatMap((spacePoint) => spacePoint.toGGBCommand({
300
+ isFixed: true,
301
+ showLabel: true,
302
+ })),
303
+ ...[...arrSpacePointNamedAsked].flatMap((spacePoint) => spacePoint.toGGBCommand({
304
+ isFixed: true,
305
+ showLabel: true,
306
+ color: greenMain,
307
+ })),
308
+ ],
309
+ //no names
310
+ ...[
311
+ //prism
312
+ `Pri = Prism(${prismSpacePoints
313
+ .slice(0, 5)
314
+ .map((p) => p.toMathString())
315
+ .join(",")})`,
316
+ `SetColor(Pri, "${colorWithOpacity("#000000", 16)}")`,
317
+ `SetLineThickness(Pri, 1)`,
318
+ //segment meshes
319
+ ...arrSegment.flatMap(([spacePointStart, spacePointEnd], i) => {
320
+ return [
321
+ `S_${i} = Segment(${spacePointStart.toMathString()}, ${spacePointEnd.toMathString()})`,
322
+ `SetColor(S_${i}, "${colorWithOpacity("#BBBBBB", 37)}")`, //opacity is ignored
323
+ `SetLineThickness(S_${i}, 1)`,
324
+ ];
325
+ }),
326
+ //line
327
+ ...(isAlignedKLM
328
+ ? [
329
+ `Li = Line(${K.toMathString()}, ${L.toMathString()})`,
330
+ `ShowLabel(Li, false)`,
331
+ `SetColor(Li, "${greenMain}")`,
332
+ `SetLineThickness(Li, 1)`,
333
+ ]
334
+ : []),
335
+ ],
336
+ ];
337
+ const ggb = new GeogebraConstructor({
338
+ commands,
339
+ is3D: true,
340
+ hideAxes: true,
341
+ viewDirectionVector: [-0.7, -1, -0.45],
342
+ });
343
+ return ggb.getOptions({
344
+ coords: getArrCoordsFrame([
345
+ ...prismSpacePoints,
346
+ ...arrSpacePointNamedAsked,
347
+ ]),
348
+ });
349
+ };
350
+ const getGGBOptions = (identifiers) => {
351
+ const { spacePointCubeOrigin, arrCubeVec, arrSpacePointNamedCube } = getHydrated(identifiers);
352
+ const [vecXCube, vecYCube, vecZCube] = arrCubeVec;
353
+ const prismSpacePoints = getPrismPoints(spacePointCubeOrigin, vecXCube, vecYCube, vecZCube);
354
+ const arrSide = getAllPointMeshes(spacePointCubeOrigin, vecXCube, vecYCube, vecZCube);
355
+ const arrSegment = arrSide.flatMap(createSegmentMeshForPointMesh);
356
+ const commands = [
357
+ //hide xOyPlane
358
+ `SetFilling(xOyPlane, 0)`,
359
+ //pretty names
360
+ ...[
361
+ //points
362
+ ...arrSpacePointNamedCube.flatMap((spacePoint) => spacePoint.toGGBCommand({
363
+ isFixed: true,
364
+ showLabel: true,
365
+ })),
366
+ ],
367
+ //no names
368
+ ...[
369
+ //prism
370
+ `Pri = Prism(${prismSpacePoints
371
+ .slice(0, 5)
372
+ .map((p) => p.toMathString())
373
+ .join(",")})`,
374
+ `SetColor(Pri, "${colorWithOpacity("#000000", 16)}")`,
375
+ `SetLineThickness(Pri, 1)`,
376
+ //segment meshes
377
+ ...arrSegment.flatMap(([spacePointStart, spacePointEnd], i) => {
378
+ return [
379
+ `S_${i} = Segment(${spacePointStart.toMathString()}, ${spacePointEnd.toMathString()})`,
380
+ `SetColor(S_${i}, "${colorWithOpacity("#BBBBBB", 37)}")`, //opacity is ignored
381
+ `SetLineThickness(S_${i}, 1)`,
382
+ ];
383
+ }),
384
+ ],
385
+ ];
386
+ const ggb = new GeogebraConstructor({
387
+ commands,
388
+ is3D: true,
389
+ hideAxes: true,
390
+ viewDirectionVector: [-0.7, -1, -0.45],
391
+ });
392
+ return ggb.getOptions({
393
+ coords: getArrCoordsFrame(prismSpacePoints),
394
+ });
395
+ };
396
+ const getPropositions = (_n, { answer }) => {
397
+ const propositions = [];
398
+ ["Oui", "Non", "On ne peut pas savoir"].forEach((str) => {
399
+ if (str === answer) {
400
+ addValidProp(propositions, str, "raw");
401
+ }
402
+ else {
403
+ tryToAddWrongProp(propositions, str, "raw");
404
+ }
405
+ });
406
+ return propositions;
407
+ };
408
+ const createRandomArrNodeVecEquationAndCorrespondingArrSpacePoint = (arrSpacePointSrc, isAlignedRequired) => {
409
+ function randomVectorStrFromPoints(arrSpacePoint) {
410
+ const [P1, P2] = shuffle(arrSpacePoint);
411
+ return `\\overrightarrow{${P1.name}${P2.name}}`;
412
+ }
413
+ const arrNameTarget = ["K", "L", "M"];
414
+ let [K, L, M] = [];
415
+ let arrNodeVecEquation = [];
416
+ let isDistinctPoints;
417
+ do {
418
+ arrNodeVecEquation = arrNameTarget.map((name) => {
419
+ const spacePointStart = random(arrSpacePointSrc);
420
+ const nbStepsForVecPath = 1;
421
+ const nodeVecEquation = new EqualNode(new VariableNode(`\\overrightarrow{${spacePointStart.name}${name}}`), [...Array(nbStepsForVecPath).keys()].reduce((acc, _i) => {
422
+ const nodeFactorVec1 = random([
423
+ (-1).toTree(),
424
+ (-2).toTree(),
425
+ (1).toTree(),
426
+ frac(1, 2),
427
+ frac(3, 2),
428
+ (2).toTree(),
429
+ ]);
430
+ const strVec1 = randomVectorStrFromPoints(arrSpacePointSrc);
431
+ const nodeVec1 = new VariableNode(strVec1);
432
+ const nodeVec1Scaled = multiply(nodeFactorVec1, nodeVec1);
433
+ return add(acc, nodeVec1Scaled).simplify({
434
+ towardsDistribute: true,
435
+ forbidFactorize: true,
436
+ });
437
+ }, (0).toTree()));
438
+ return nodeVecEquation;
439
+ });
440
+ [K, L, M] = arrNodeVecEquation.map((nodeVecEquation) => createSpacePointFromNodeVecEquation(nodeVecEquation, arrSpacePointSrc));
441
+ const nbDistinctPoints = [
442
+ ...new Set([K, L, M].map((spacePoint) => spacePoint.toCoords())),
443
+ ].length;
444
+ isDistinctPoints = nbDistinctPoints === 3;
445
+ } while (!isDistinctPoints || isAligned([K, L, M]) !== isAlignedRequired);
446
+ return [arrNodeVecEquation, [K, L, M]];
447
+ };
448
+ const createRandomIdentifiers = () => {
449
+ const lengthSideCube = 5;
450
+ const [coordsVecX, coordsVecY, coordsVecZ] = [
451
+ [1, 0, 0],
452
+ [0, 1, 0],
453
+ [0, 0, 1],
454
+ ];
455
+ const [vecXCube, vecYCube, vecZCube] = zip(coinFlip() ? ["vecX", "vecY", "vecZ"] : ["vecY", "vecX", "vecZ"], [coordsVecX, coordsVecY, coordsVecZ]).map(([name, arr]) => SpaceVectorConstructor.fromScalars(arr.map((v) => v * lengthSideCube), name));
456
+ const spacePointCubeOrigin = SpacePointConstructor.fromScalars([0, 0, 0], "O");
457
+ const arrCubeVecEndPoint = [vecXCube, vecYCube, vecZCube].map((vec) => vec.getEndPoint(spacePointCubeOrigin));
458
+ const arrCubePoints = zip("ABCDEFGH".split(""), [
459
+ [0, 0, 0],
460
+ [0, 1, 0],
461
+ [1, 1, 0],
462
+ [1, 0, 0],
463
+ [0, 0, 1],
464
+ [0, 1, 1],
465
+ [1, 1, 1],
466
+ [1, 0, 1],
467
+ ]).map(([name, [x, y, z]]) => new SpacePoint(name, x.toTree(), y.toTree(), z.toTree()));
468
+ const isAligned = coinFlip();
469
+ const [arrNodeVecEquation, _arrSpacePoint] = createRandomArrNodeVecEquationAndCorrespondingArrSpacePoint(arrCubePoints, isAligned);
470
+ const arrSpacePointWithName = [...arrCubePoints];
471
+ const identifiers = {
472
+ spacePointIdsCubeOrigin: spacePointCubeOrigin.toIdentifiers(),
473
+ spacePointIdsCubeVecsEndPoint: arrCubeVecEndPoint.map((spacePoint) => spacePoint.toIdentifiers()),
474
+ spacePointIdsWrtBaseVecs: arrSpacePointWithName.map((spacePoint) => spacePoint.toIdentifiers()),
475
+ nodeIdsVecEquation: arrNodeVecEquation.map((nodeVecEquation) => nodeVecEquation.toIdentifiers()),
476
+ };
477
+ return identifiers;
478
+ };
479
+ const getCheckAlignedSpacePointsFromVecPathsFromCubeOuterPointsQuestion = () => {
480
+ const identifiers = createRandomIdentifiers();
481
+ return getQuestionFromIdentifiers(identifiers);
482
+ };
483
+ const getQuestionFromIdentifiers = (identifiers, _opts) => {
484
+ const question = {
485
+ answer: getAnswer(identifiers),
486
+ instruction: getInstruction(identifiers),
487
+ answerFormat: "raw",
488
+ identifiers,
489
+ hint: getHint(identifiers),
490
+ correction: getCorrection(identifiers),
491
+ correctionGgbOptions: getCorrectionGGBOptions(identifiers),
492
+ ggbOptions: getGGBOptions(identifiers),
493
+ };
494
+ return question;
495
+ };
496
+ export const checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints = {
497
+ id: "checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints",
498
+ label: "Déterminer si $3$ points définis par des égalités vectorielles sont alignés",
499
+ isSingleStep: true,
500
+ generator: (nb, opts) => getDistinctQuestions(() => getCheckAlignedSpacePointsFromVecPathsFromCubeOuterPointsQuestion(opts), nb),
501
+ qcmTimer: 60,
502
+ freeTimer: 60,
503
+ getPropositions,
504
+ subject: "Mathématiques",
505
+ getQuestionFromIdentifiers,
506
+ getHint,
507
+ getCorrection,
508
+ hasHintAndCorrection: true,
509
+ hasGeogebra: true,
510
+ answerType: "QCU",
511
+ };
@@ -0,0 +1,3 @@
1
+ export * from "./checkAlignedSpacePointsFromCoords.js";
2
+ export * from "./checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/spaceGeometry/collinearity/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,6DAA6D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./checkAlignedSpacePointsFromCoords.js";
2
+ export * from "./checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints.js";
@@ -1,6 +1,11 @@
1
1
  export * from "./vectors/index.js";
2
2
  export * from "./basis/index.js";
3
+ export * from "./planes/index.js";
3
4
  export * from "./sections/index.js";
4
5
  export * from "./sphere/index.js";
5
6
  export * from "./solids/index.js";
7
+ export * from "./collinearity/index.js";
8
+ export * from "./scalarProduct/index.js";
9
+ export * from "./orthogonalProjection/index.js";
10
+ export * from "./parametricLine/index.js";
6
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/spaceGeometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/spaceGeometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC"}
@@ -1,6 +1,10 @@
1
1
  export * from "./vectors/index.js";
2
2
  export * from "./basis/index.js";
3
- // export * from "./planes/index.js";
3
+ export * from "./planes/index.js";
4
4
  export * from "./sections/index.js";
5
5
  export * from "./sphere/index.js";
6
6
  export * from "./solids/index.js";
7
+ export * from "./collinearity/index.js";
8
+ export * from "./scalarProduct/index.js";
9
+ export * from "./orthogonalProjection/index.js";
10
+ export * from "./parametricLine/index.js";
@@ -0,0 +1,22 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { SpacePointIdentifiers } from "../../../../math/geometry/spacePoint.js";
3
+ import { SpaceVectorIdentifiers } from "../../../../math/geometry/spaceVector.js";
4
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
5
+ type PlaneIds = {
6
+ spacePointIdsContained: SpacePointIdentifiers;
7
+ spaceVectorIdsNormal: SpaceVectorIdentifiers;
8
+ nodeIdsPlaneEquation: NodeIdentifiers;
9
+ typeDefinitionData: string;
10
+ texName: string;
11
+ };
12
+ type Identifiers = {
13
+ idsP: PlaneIds;
14
+ spacePointIdsA: SpacePointIdentifiers;
15
+ spacePointIdsProposed: SpacePointIdentifiers[];
16
+ };
17
+ type Options = {
18
+ typeDataForPlane: string;
19
+ };
20
+ export declare const findOrthogonalProjectionOfPointOnPlane: Exercise<Identifiers, Options>;
21
+ export {};
22
+ //# sourceMappingURL=findOrthogonalProjectionOfPointOnPlane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findOrthogonalProjectionOfPointOnPlane.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/spaceGeometry/orthogonalProjection/findOrthogonalProjectionOfPointOnPlane.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAGL,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAGL,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AA0G7C,KAAK,QAAQ,GAAG;IACd,sBAAsB,EAAE,qBAAqB,CAAC;IAC9C,oBAAoB,EAAE,sBAAsB,CAAC;IAC7C,oBAAoB,EAAE,eAAe,CAAC;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,qBAAqB,CAAC;IACtC,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;CAChD,CAAC;AA0ZF,KAAK,OAAO,GAAG;IACb,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAqBF,eAAO,MAAM,sCAAsC,EAAE,QAAQ,CAC3D,WAAW,EACX,OAAO,CAqBR,CAAC"}