math-exercises 3.0.156 → 3.0.158

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 (321) hide show
  1. package/lib/exercises/exercise.d.ts +7 -0
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calcul/proportionality/proportionalityTableCoefficient.js +1 -1
  4. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.d.ts +14 -0
  5. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.d.ts.map +1 -0
  6. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.js +145 -0
  7. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.d.ts +16 -0
  8. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.d.ts.map +1 -0
  9. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.js +444 -0
  10. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.d.ts +15 -0
  11. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.d.ts.map +1 -0
  12. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.js +292 -0
  13. package/lib/exercises/math/calculLitteral/equation/exp/index.d.ts +4 -0
  14. package/lib/exercises/math/calculLitteral/equation/exp/index.d.ts.map +1 -0
  15. package/lib/exercises/math/calculLitteral/equation/exp/index.js +3 -0
  16. package/lib/exercises/math/calculLitteral/equation/factorizeEquation.d.ts +4 -1
  17. package/lib/exercises/math/calculLitteral/equation/factorizeEquation.d.ts.map +1 -1
  18. package/lib/exercises/math/calculLitteral/equation/factorizeEquation.js +148 -31
  19. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.d.ts +4 -1
  20. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.d.ts.map +1 -1
  21. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.js +124 -44
  22. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts +18 -0
  23. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts.map +1 -0
  24. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.js +437 -0
  25. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts +2 -0
  26. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts.map +1 -0
  27. package/lib/exercises/math/calculLitteral/inequations/exp/index.js +1 -0
  28. package/lib/exercises/math/dataRepresentations/halfPieChartCommenting.d.ts.map +1 -1
  29. package/lib/exercises/math/dataRepresentations/halfPieChartCommenting.js +4 -1
  30. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.d.ts.map +1 -1
  31. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.js +29 -0
  32. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.d.ts.map +1 -1
  33. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.js +35 -2
  34. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.d.ts.map +1 -1
  35. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.js +19 -0
  36. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts +10 -0
  37. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts.map +1 -0
  38. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.js +282 -0
  39. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.d.ts.map +1 -1
  40. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.js +30 -2
  41. package/lib/exercises/math/derivation/derivative/productDerivative.d.ts.map +1 -1
  42. package/lib/exercises/math/derivation/derivative/productDerivative.js +68 -1
  43. package/lib/exercises/math/derivation/derivative/quotientDerivative.d.ts.map +1 -1
  44. package/lib/exercises/math/derivation/derivative/quotientDerivative.js +40 -4
  45. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.d.ts.map +1 -1
  46. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.js +30 -3
  47. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts +12 -0
  48. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts.map +1 -0
  49. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.js +127 -0
  50. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts +13 -0
  51. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts.map +1 -0
  52. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.js +161 -0
  53. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts +11 -0
  54. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts.map +1 -0
  55. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.js +116 -0
  56. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts +8 -0
  57. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts.map +1 -0
  58. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.js +142 -0
  59. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts +4 -0
  60. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts.map +1 -0
  61. package/lib/exercises/math/derivation/derivativeNumber/index.js +4 -0
  62. package/lib/exercises/math/derivation/index.d.ts +1 -1
  63. package/lib/exercises/math/derivation/index.js +1 -1
  64. package/lib/exercises/math/functions/affines/drawAffineFromPointAndLeadingCoeff.d.ts.map +1 -1
  65. package/lib/exercises/math/functions/affines/drawAffineFromPointAndLeadingCoeff.js +5 -4
  66. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts +13 -0
  67. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts.map +1 -0
  68. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.js +278 -0
  69. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts +11 -0
  70. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts.map +1 -0
  71. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.js +211 -0
  72. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts +9 -0
  73. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts.map +1 -0
  74. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.js +142 -0
  75. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts +5 -0
  76. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts.map +1 -0
  77. package/lib/exercises/math/functions/exponential/algebraic/index.js +4 -0
  78. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts +14 -0
  79. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts.map +1 -0
  80. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.js +337 -0
  81. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts +11 -0
  82. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts.map +1 -0
  83. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.js +234 -0
  84. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts +9 -0
  85. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts.map +1 -0
  86. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.js +190 -0
  87. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts +9 -0
  88. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts.map +1 -0
  89. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.js +190 -0
  90. package/lib/exercises/math/functions/exponential/definition/index.d.ts +5 -0
  91. package/lib/exercises/math/functions/exponential/definition/index.d.ts.map +1 -0
  92. package/lib/exercises/math/functions/exponential/definition/index.js +4 -0
  93. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts +13 -0
  94. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts.map +1 -0
  95. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.js +375 -0
  96. package/lib/exercises/math/functions/linear/linearFromExercise.d.ts.map +1 -1
  97. package/lib/exercises/math/functions/linear/linearFromExercise.js +4 -3
  98. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.d.ts.map +1 -1
  99. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.js +30 -3
  100. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.d.ts.map +1 -1
  101. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.js +35 -1
  102. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.d.ts.map +1 -1
  103. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.js +1 -1
  104. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.d.ts.map +1 -1
  105. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.js +23 -1
  106. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.d.ts.map +1 -1
  107. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.js +29 -0
  108. package/lib/exercises/math/functions/variations/exp/index.d.ts +3 -0
  109. package/lib/exercises/math/functions/variations/exp/index.d.ts.map +1 -0
  110. package/lib/exercises/math/functions/variations/exp/index.js +2 -0
  111. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts +9 -0
  112. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts.map +1 -0
  113. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.js +101 -0
  114. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts +11 -0
  115. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts.map +1 -0
  116. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.js +192 -0
  117. package/lib/exercises/math/geometry/euclidian/pinPointFromAxialOrCentralSymmetry.js +2 -2
  118. package/lib/exercises/math/geometry/euclidian/pinSegmentFromRotation.js +1 -1
  119. package/lib/exercises/math/geometry/euclidian/recognizeHomothetyCenter.d.ts.map +1 -1
  120. package/lib/exercises/math/geometry/euclidian/recognizeHomothetyCenter.js +4 -5
  121. package/lib/exercises/math/geometry/euclidianConstructions/placeHomothetyCenter.js +4 -4
  122. package/lib/exercises/math/geometry/perimeters/circleCircumference.d.ts.map +1 -1
  123. package/lib/exercises/math/geometry/perimeters/circleCircumference.js +5 -3
  124. package/lib/exercises/math/geometry/thales/thales.js +1 -1
  125. package/lib/exercises/math/geometry/thales/thalesCalcul.js +1 -1
  126. package/lib/exercises/math/geometry/vectors/colinearity/determinant.js +1 -1
  127. package/lib/exercises/math/geometry/vectors/scalarProduct/angleFromScalarProduct.js +1 -1
  128. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.d.ts.map +1 -1
  129. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.js +33 -7
  130. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCoords.js +1 -1
  131. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.d.ts.map +1 -1
  132. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.js +38 -1
  133. package/lib/exercises/math/geometry/volumes/parallelepipedVolume.d.ts.map +1 -1
  134. package/lib/exercises/math/geometry/volumes/parallelepipedVolume.js +18 -5
  135. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithSquareOrRectBase.d.ts.map +1 -1
  136. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithSquareOrRectBase.js +45 -21
  137. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.d.ts.map +1 -1
  138. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleBase.js +33 -12
  139. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleRectBase.d.ts.map +1 -1
  140. package/lib/exercises/math/geometry/volumes/volumeOfPyramidWithTriangleRectBase.js +38 -15
  141. package/lib/exercises/math/percent/findTVA.d.ts.map +1 -1
  142. package/lib/exercises/math/percent/findTVA.js +17 -11
  143. package/lib/exercises/math/percent/populationEffectifFromSubPopulation.js +1 -1
  144. package/lib/exercises/math/probaStat/basicProbas/index.d.ts +1 -0
  145. package/lib/exercises/math/probaStat/basicProbas/index.d.ts.map +1 -1
  146. package/lib/exercises/math/probaStat/basicProbas/index.js +1 -1
  147. package/lib/exercises/math/probaStat/basicProbas/pickEquiprobableSituations.d.ts.map +1 -1
  148. package/lib/exercises/math/probaStat/basicProbas/pickEquiprobableSituations.js +114 -20
  149. package/lib/exercises/math/probaStat/basicProbas/pickEquiprobableTo.js +2 -2
  150. package/lib/exercises/math/probaStat/conditionalProbability.d.ts +4 -1
  151. package/lib/exercises/math/probaStat/conditionalProbability.d.ts.map +1 -1
  152. package/lib/exercises/math/probaStat/conditionalProbability.js +38 -5
  153. package/lib/exercises/math/probaStat/independancy/independancy.d.ts +9 -0
  154. package/lib/exercises/math/probaStat/independancy/independancy.d.ts.map +1 -0
  155. package/lib/exercises/math/probaStat/independancy/independancy.js +114 -0
  156. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts +9 -0
  157. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts.map +1 -0
  158. package/lib/exercises/math/probaStat/independancy/independancyFindCap.js +101 -0
  159. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts +9 -0
  160. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts.map +1 -0
  161. package/lib/exercises/math/probaStat/independancy/independancyFindCup.js +118 -0
  162. package/lib/exercises/math/probaStat/independancy/index.d.ts +5 -0
  163. package/lib/exercises/math/probaStat/independancy/index.d.ts.map +1 -0
  164. package/lib/exercises/math/probaStat/independancy/index.js +4 -0
  165. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts +10 -0
  166. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts.map +1 -0
  167. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.js +106 -0
  168. package/lib/exercises/math/probaStat/index.d.ts +1 -1
  169. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  170. package/lib/exercises/math/probaStat/index.js +1 -1
  171. package/lib/exercises/math/probaStat/randomVariable/randomVariableStandardDeviation.js +1 -1
  172. package/lib/exercises/math/probaStat/stats1var/etendueTable.d.ts.map +1 -1
  173. package/lib/exercises/math/probaStat/stats1var/etendueTable.js +5 -1
  174. package/lib/exercises/math/probaStat/stats1var/medianWithList.js +1 -1
  175. package/lib/exercises/math/probaStat/stats1var/medianWithTable.d.ts.map +1 -1
  176. package/lib/exercises/math/probaStat/stats1var/medianWithTable.js +19 -5
  177. package/lib/exercises/math/probaStat/stats1var/plausibilityOfAverage.js +1 -1
  178. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.d.ts.map +1 -1
  179. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.js +41 -29
  180. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.d.ts.map +1 -1
  181. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.js +10 -3
  182. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.d.ts.map +1 -1
  183. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.js +9 -2
  184. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.d.ts.map +1 -1
  185. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.js +25 -10
  186. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts +9 -0
  187. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts.map +1 -0
  188. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.js +118 -0
  189. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.d.ts.map +1 -1
  190. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.js +55 -6
  191. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.d.ts.map +1 -1
  192. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.js +42 -1
  193. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts +4 -1
  194. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts.map +1 -1
  195. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.js +57 -7
  196. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts.map +1 -1
  197. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +24 -2
  198. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.d.ts.map +1 -1
  199. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.js +31 -8
  200. package/lib/exercises/math/sequences/arithmetic/index.d.ts +1 -1
  201. package/lib/exercises/math/sequences/arithmetic/index.d.ts.map +1 -1
  202. package/lib/exercises/math/sequences/arithmetic/index.js +1 -1
  203. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -1
  204. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +11 -1
  205. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstRankOne.js +5 -5
  206. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.d.ts.map +1 -1
  207. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.js +3 -1
  208. package/lib/exercises/math/sequences/geometric/geometricFindReason.d.ts.map +1 -1
  209. package/lib/exercises/math/sequences/geometric/geometricFindReason.js +41 -2
  210. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts.map +1 -1
  211. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.js +28 -2
  212. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts.map +1 -1
  213. package/lib/exercises/math/sequences/sequenceEvaluation.js +22 -2
  214. package/lib/exercises/math/spaceGeometry/solids/recognizeSolidFromSolidPattern.js +1 -1
  215. package/lib/exercises/math/spaceGeometry/sphere/index.d.ts +2 -0
  216. package/lib/exercises/math/spaceGeometry/sphere/index.d.ts.map +1 -1
  217. package/lib/exercises/math/spaceGeometry/sphere/index.js +3 -1
  218. package/lib/exercises/math/spaceGeometry/sphere/pinPointLatLon.2d.d.ts +12 -0
  219. package/lib/exercises/math/spaceGeometry/sphere/pinPointLatLon.2d.d.ts.map +1 -0
  220. package/lib/exercises/math/spaceGeometry/sphere/pinPointLatLon.2d.js +205 -0
  221. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.d.ts +13 -0
  222. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.d.ts.map +1 -0
  223. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.js +215 -0
  224. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.3d.d.ts +14 -0
  225. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.3d.d.ts.map +1 -0
  226. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.3d.js +390 -0
  227. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts +9 -0
  228. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts.map +1 -0
  229. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.js +107 -0
  230. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts +10 -0
  231. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts.map +1 -0
  232. package/lib/exercises/math/trigonometry/circle/associatePoint.js +86 -0
  233. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts +10 -0
  234. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts.map +1 -0
  235. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.js +205 -0
  236. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts +7 -0
  237. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts.map +1 -0
  238. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.js +121 -0
  239. package/lib/exercises/math/trigonometry/circle/index.d.ts +7 -0
  240. package/lib/exercises/math/trigonometry/circle/index.d.ts.map +1 -0
  241. package/lib/exercises/math/trigonometry/circle/index.js +7 -0
  242. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts +10 -0
  243. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts.map +1 -0
  244. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.js +100 -0
  245. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts +8 -0
  246. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts.map +1 -0
  247. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.js +97 -0
  248. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts +10 -0
  249. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts.map +1 -0
  250. package/lib/exercises/math/trigonometry/circle/remarkableValues.js +112 -0
  251. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts +7 -0
  252. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts.map +1 -0
  253. package/lib/exercises/math/trigonometry/functions/basicEquationCos.js +92 -0
  254. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts +7 -0
  255. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts.map +1 -0
  256. package/lib/exercises/math/trigonometry/functions/basicEquationSin.js +104 -0
  257. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts +7 -0
  258. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts.map +1 -0
  259. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.js +83 -0
  260. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts +8 -0
  261. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts.map +1 -0
  262. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.js +111 -0
  263. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts +8 -0
  264. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts.map +1 -0
  265. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.js +101 -0
  266. package/lib/exercises/math/trigonometry/functions/index.d.ts +6 -0
  267. package/lib/exercises/math/trigonometry/functions/index.d.ts.map +1 -0
  268. package/lib/exercises/math/trigonometry/functions/index.js +6 -0
  269. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts +9 -0
  270. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts.map +1 -0
  271. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.js +151 -0
  272. package/lib/exercises/math/trigonometry/index.d.ts +3 -14
  273. package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
  274. package/lib/exercises/math/trigonometry/index.js +3 -14
  275. package/lib/exercises/math/trigonometry/triangle/index.d.ts +7 -0
  276. package/lib/exercises/math/trigonometry/triangle/index.d.ts.map +1 -0
  277. package/lib/exercises/math/trigonometry/triangle/index.js +6 -0
  278. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts +10 -0
  279. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts.map +1 -0
  280. package/lib/exercises/math/trigonometry/triangle/trigonometry.js +207 -0
  281. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts +10 -0
  282. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts.map +1 -0
  283. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.js +174 -0
  284. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts +11 -0
  285. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts.map +1 -0
  286. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.js +224 -0
  287. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts +13 -0
  288. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts.map +1 -0
  289. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.js +189 -0
  290. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts +13 -0
  291. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts.map +1 -0
  292. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.js +290 -0
  293. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts +18 -0
  294. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts.map +1 -0
  295. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.js +386 -0
  296. package/lib/exercises/math/trigonometry/trigonometrySideCalcul.js +1 -1
  297. package/lib/exercises/pc/mathExosInPC.d.ts +2 -2
  298. package/lib/exercises/pc/mathExosInPC.d.ts.map +1 -1
  299. package/lib/exercises/pc/mathExosInPC.js +2 -2
  300. package/lib/exercises/vea/setVEA.d.ts.map +1 -1
  301. package/lib/exercises/vea/setVEA.js +4 -0
  302. package/lib/index.d.ts +87 -29
  303. package/lib/index.d.ts.map +1 -1
  304. package/lib/math/geometry/segment.d.ts +1 -1
  305. package/lib/math/geometry/vector.d.ts +2 -1
  306. package/lib/math/geometry/vector.d.ts.map +1 -1
  307. package/lib/math/geometry/vector.js +1 -1
  308. package/lib/math/numbers/reals/real.d.ts.map +1 -1
  309. package/lib/math/numbers/reals/real.js +2 -0
  310. package/lib/playground.d.ts.map +1 -1
  311. package/lib/playground.js +3 -1
  312. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  313. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  314. package/lib/tree/nodes/functions/sqrtNode.d.ts +2 -1
  315. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  316. package/lib/tree/nodes/functions/sqrtNode.js +17 -6
  317. package/lib/tree/nodes/operators/multiplyNode.js +1 -1
  318. package/lib/utils/arrays/dichoFilter.d.ts +2 -0
  319. package/lib/utils/arrays/dichoFilter.d.ts.map +1 -0
  320. package/lib/utils/arrays/dichoFilter.js +11 -0
  321. package/package.json +1 -1
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ a: number;
4
+ b: number;
5
+ intervalAskedIndex: number;
6
+ };
7
+ export declare const varOfAEXPlusB: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=varOfAEXPlusB.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"varOfAEXPlusB.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/functions/variations/exp/varOfAEXPlusB.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAkBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAwFF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAiB/C,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { AffineConstructor } from "../../../../../math/polynomials/affine.js";
4
+ import { randint } from "../../../../../math/utils/random/randint.js";
5
+ import { exp } from "../../../../../tree/nodes/functions/expNode.js";
6
+ import { MinusInfinityNode, PlusInfinityNode, } from "../../../../../tree/nodes/numbers/infiniteNode.js";
7
+ import { add } from "../../../../../tree/nodes/operators/addNode.js";
8
+ import { multiply } from "../../../../../tree/nodes/operators/multiplyNode.js";
9
+ import { ClosureType } from "../../../../../tree/nodes/sets/closure.js";
10
+ import { IntervalNode } from "../../../../../tree/nodes/sets/intervalNode.js";
11
+ const createNodeAEXPlusB = (a, b) => {
12
+ return add(multiply(a, exp("x".toTree())), b);
13
+ };
14
+ const getPropositions = (n, { answer }) => {
15
+ const propositions = [];
16
+ addValidProp(propositions, answer, "raw");
17
+ tryToAddWrongProp(propositions, "$f$ est décroissante", "raw");
18
+ tryToAddWrongProp(propositions, "$f$ est croissante", "raw");
19
+ tryToAddWrongProp(propositions, "$f$ n'est pas monotone", "raw");
20
+ return shuffleProps(propositions, n);
21
+ };
22
+ const getAnswer = (identifiers) => {
23
+ const { a } = identifiers;
24
+ return a > 0 ? "$f$ est croissante" : "$f$ est décroissante";
25
+ };
26
+ const getInterval = (identifiers) => {
27
+ const { intervalAskedIndex, a, b } = identifiers;
28
+ const interval = intervalAskedIndex === 0
29
+ ? new IntervalNode(MinusInfinityNode, a.toTree(), ClosureType.OF)
30
+ : intervalAskedIndex === 1
31
+ ? new IntervalNode(a.toTree(), b.toTree(), ClosureType.FF)
32
+ : new IntervalNode(b.toTree(), PlusInfinityNode, ClosureType.FO);
33
+ return interval;
34
+ };
35
+ const getInstructionNode = (identifiers) => {
36
+ const { a, b } = identifiers;
37
+ return createNodeAEXPlusB(a, b);
38
+ };
39
+ const getInstruction = (identifiers) => {
40
+ const interval = getInterval(identifiers);
41
+ const nodeInstruction = getInstructionNode(identifiers);
42
+ return `Soit la fonction $f$ définie sur $\\mathbb{R}$ par :
43
+
44
+ $$
45
+ f(x) = ${nodeInstruction.toTex()}
46
+ $$
47
+
48
+ Quel est le sens de variation de $f$ sur $${interval.toTex()}$ ?`;
49
+ };
50
+ const getHint = (identifiers) => {
51
+ const interval = getInterval(identifiers);
52
+ return `Observe comment varient les valeurs de $f(x)$ pour les valeurs de $x$ comprises dans l'intervalle $${interval.toTex()}$.`;
53
+ };
54
+ const getCorrection = (identifiers) => {
55
+ const { a, b } = identifiers;
56
+ const interval = getInterval(identifiers);
57
+ const nodeAffine = AffineConstructor.fromCoeffs([b, a]).toTree();
58
+ return `On sait que :
59
+ - $x \\mapsto e^x$ est strictement croissante sur $\\mathbb{R}$
60
+ - $x \\mapsto ${nodeAffine.toTex()}$ est strictement ${a > 0 ? "croissante" : "décroissante"} sur $\\mathbb{R}$
61
+
62
+ Par composition, on en conclut que ${getAnswer(identifiers).toLocaleLowerCase()} sur $${interval.toTex()}$.`;
63
+ };
64
+ const getVarOfAEXPlusBQuestion = () => {
65
+ const a = randint(-10, 11, [0]);
66
+ const b = randint(-10, 11);
67
+ const intervalAskedIndex = randint(0, 3);
68
+ const identifiers = {
69
+ a,
70
+ b,
71
+ intervalAskedIndex,
72
+ };
73
+ return getQuestionFromIdentifiers(identifiers);
74
+ };
75
+ const getQuestionFromIdentifiers = (identifiers) => {
76
+ return {
77
+ answer: getAnswer(identifiers),
78
+ instruction: getInstruction(identifiers),
79
+ answerFormat: "raw",
80
+ identifiers,
81
+ hint: getHint(identifiers),
82
+ correction: getCorrection(identifiers),
83
+ };
84
+ };
85
+ export const varOfAEXPlusB = {
86
+ id: "varOfAEXPlusB",
87
+ label: "Sens de variation de $ae^x+b$",
88
+ isSingleStep: true,
89
+ generator: (nb, opts) => getDistinctQuestions(() => getVarOfAEXPlusBQuestion(opts), nb),
90
+ qcmTimer: 60,
91
+ freeTimer: 60,
92
+ getPropositions,
93
+ subject: "Mathématiques",
94
+ getInstruction,
95
+ getHint,
96
+ getCorrection,
97
+ getAnswer,
98
+ getQuestionFromIdentifiers,
99
+ hasHintAndCorrection: true,
100
+ answerType: "QCU",
101
+ };
@@ -0,0 +1,11 @@
1
+ import { Exercise } from "../../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ a: number;
4
+ b: number;
5
+ c: number;
6
+ d: number;
7
+ intervalAskedIndex: number;
8
+ };
9
+ export declare const varOfAEXPlusBOverCEXPlusD: Exercise<Identifiers>;
10
+ export {};
11
+ //# sourceMappingURL=varOfAEXPlusBOverCEXPlusD.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"varOfAEXPlusBOverCEXPlusD.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAyBrC,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAsMF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,WAAW,CAiB3D,CAAC"}
@@ -0,0 +1,192 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, } from "../../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { randint } from "../../../../../math/utils/random/randint.js";
4
+ import { exp } from "../../../../../tree/nodes/functions/expNode.js";
5
+ import { MinusInfinityNode, PlusInfinityNode, } from "../../../../../tree/nodes/numbers/infiniteNode.js";
6
+ import { add } from "../../../../../tree/nodes/operators/addNode.js";
7
+ import { frac } from "../../../../../tree/nodes/operators/fractionNode.js";
8
+ import { multiply } from "../../../../../tree/nodes/operators/multiplyNode.js";
9
+ import { power } from "../../../../../tree/nodes/operators/powerNode.js";
10
+ import { substract } from "../../../../../tree/nodes/operators/substractNode.js";
11
+ import { ClosureType } from "../../../../../tree/nodes/sets/closure.js";
12
+ import { IntervalNode } from "../../../../../tree/nodes/sets/intervalNode.js";
13
+ const createNodeAEXPlusB = (a, b) => {
14
+ return add(multiply(a, exp("x".toTree())), b);
15
+ };
16
+ const getPropositions = (n, { answer }) => {
17
+ const propositions = [];
18
+ addValidProp(propositions, answer, "raw");
19
+ tryToAddWrongProp(propositions, "$f$ est décroissante", "raw");
20
+ tryToAddWrongProp(propositions, "$f$ est croissante", "raw");
21
+ tryToAddWrongProp(propositions, "$f$ n'est pas monotone", "raw");
22
+ return shuffleProps(propositions, n);
23
+ };
24
+ const getDerivativeNodeSimplified1 = (identifiers) => {
25
+ const { a, b, c, d } = identifiers;
26
+ const nodeDen = createNodeAEXPlusB(c, d);
27
+ return frac(multiply(substract(multiply(a, d), multiply(c, b)), exp("x".toTree())), power(nodeDen, 2));
28
+ };
29
+ const getDerivativeNodeSimplified2 = (identifiers) => {
30
+ const { a, b, c, d } = identifiers;
31
+ const nodeDen = createNodeAEXPlusB(c, d);
32
+ return frac(multiply(substract(multiply(a, d), multiply(c, b)).evaluate(), exp("x".toTree())), power(nodeDen, 2));
33
+ };
34
+ const getAnswer = (identifiers) => {
35
+ const { a, b, c, d } = identifiers;
36
+ const discr = substract(multiply(a, d), multiply(c, b)).evaluate();
37
+ return discr > 0 ? "$f$ est croissante" : "$f$ est décroissante";
38
+ };
39
+ const getInterval = (identifiers) => {
40
+ const { intervalAskedIndex, a, b } = identifiers;
41
+ const interval = intervalAskedIndex === 0
42
+ ? new IntervalNode(MinusInfinityNode, a.toTree(), ClosureType.OF)
43
+ : intervalAskedIndex === 1
44
+ ? new IntervalNode(a.toTree(), b.toTree(), ClosureType.FF)
45
+ : new IntervalNode(b.toTree(), PlusInfinityNode, ClosureType.FO);
46
+ return interval;
47
+ };
48
+ const getInstructionNode = (identifiers) => {
49
+ const { a, b, c, d } = identifiers;
50
+ const nodeNum = createNodeAEXPlusB(a, b);
51
+ const nodeDen = createNodeAEXPlusB(c, d);
52
+ return frac(nodeNum, nodeDen);
53
+ };
54
+ const getInstruction = (identifiers) => {
55
+ const interval = getInterval(identifiers);
56
+ const nodeInstruction = getInstructionNode(identifiers);
57
+ return `Soit la fonction $f$ définie sur $\\mathbb{R}$ par :
58
+
59
+ $$
60
+ f(x) = ${nodeInstruction.toTex()}
61
+ $$
62
+
63
+ Quel est le sens de variation de $f$ sur $${interval.toTex()}$ ?`;
64
+ };
65
+ const getHint = (identifiers) => {
66
+ const interval = getInterval(identifiers);
67
+ return `Calcule la dérivée de $f$ pour en déduire les variations de $f$ sur $${interval.toTex()}$.`;
68
+ };
69
+ const getCorrection = (identifiers) => {
70
+ const { a, b, c, d } = identifiers;
71
+ const nodeU = createNodeAEXPlusB(a, b);
72
+ const nodeV = createNodeAEXPlusB(c, d);
73
+ const nodeUPrime = nodeU.derivative().simplify();
74
+ const nodeVPrime = nodeV.derivative().simplify();
75
+ const discr = substract(multiply(a, d), multiply(c, b)).evaluate();
76
+ const interval = getInterval(identifiers);
77
+ return `On va calculer la dérivée du quotient.
78
+
79
+ Ici, on a :
80
+
81
+ $$
82
+ u(x) = ${nodeU.toTex()}
83
+ $$
84
+
85
+ $$
86
+ v(x) = ${nodeV.toTex()}
87
+ $$
88
+
89
+ On calcule :
90
+
91
+ $$
92
+ u'(x) = ${nodeUPrime.toTex()}
93
+ $$
94
+
95
+ $$
96
+ v'(x) = ${nodeVPrime.toTex()}
97
+ $$
98
+
99
+ Donc :
100
+
101
+ $$
102
+ f'(x) = (\\frac{u}{v})'(x) = ${frac(substract(multiply(nodeUPrime, nodeV), multiply(nodeU, nodeVPrime)), power(nodeV, 2)).toTex()}
103
+ $$
104
+
105
+ $$
106
+ f'(x) = (\\frac{u}{v})'(x) = ${getDerivativeNodeSimplified1(identifiers).toTex()}
107
+ $$
108
+
109
+ $$
110
+ f'(x) = (\\frac{u}{v})'(x) = ${getDerivativeNodeSimplified2(identifiers).toTex()}
111
+ $$
112
+
113
+ Conclusion : Pour tout $x$ réel :
114
+
115
+ $
116
+ f'(x) ${discr > 0 ? ">" : "<"} 0
117
+ $
118
+
119
+ Autrement dit :
120
+
121
+ ${getAnswer(identifiers).toLocaleLowerCase()} sur $${interval.toTex()}$.`;
122
+ };
123
+ const getVarOfAEXPlusBOverCEXPlusDQuestion = () => {
124
+ function createRandomIdentifiers() {
125
+ const a = randint(-10, 11, [0]);
126
+ const b = randint(-10, 11, [0]);
127
+ const c = randint(-10, 11, [0]);
128
+ const d = randint(-10, 11, [0]);
129
+ const intervalAskedIndex = randint(0, 3);
130
+ const identifiers = {
131
+ a,
132
+ b,
133
+ c,
134
+ d,
135
+ intervalAskedIndex,
136
+ };
137
+ return identifiers;
138
+ }
139
+ let identifiers;
140
+ let counter = -1;
141
+ let isValid = false;
142
+ while (!isValid && counter < 100) {
143
+ counter++;
144
+ const identifiersCandidate = createRandomIdentifiers();
145
+ isValid = (() => {
146
+ const { a, b, c, d } = identifiersCandidate;
147
+ const discr = substract(multiply(a, d), multiply(c, b)).evaluate();
148
+ return discr !== 0;
149
+ })();
150
+ if (isValid) {
151
+ identifiers = identifiersCandidate;
152
+ }
153
+ }
154
+ if (!isValid) {
155
+ const identifiersDefault = {
156
+ a: 2,
157
+ b: 3,
158
+ c: 5,
159
+ d: 7,
160
+ intervalAskedIndex: 0,
161
+ };
162
+ identifiers = identifiersDefault;
163
+ }
164
+ return getQuestionFromIdentifiers(identifiers);
165
+ };
166
+ const getQuestionFromIdentifiers = (identifiers) => {
167
+ return {
168
+ answer: getAnswer(identifiers),
169
+ instruction: getInstruction(identifiers),
170
+ answerFormat: "raw",
171
+ identifiers,
172
+ hint: getHint(identifiers),
173
+ correction: getCorrection(identifiers),
174
+ };
175
+ };
176
+ export const varOfAEXPlusBOverCEXPlusD = {
177
+ id: "varOfAEXPlusBOverCEXPlusD",
178
+ label: "Sens de variation de $\\frac{ae^x+b}{ce^x+d}$",
179
+ isSingleStep: true,
180
+ generator: (nb, opts) => getDistinctQuestions(() => getVarOfAEXPlusBOverCEXPlusDQuestion(opts), nb),
181
+ qcmTimer: 60,
182
+ freeTimer: 60,
183
+ getPropositions,
184
+ subject: "Mathématiques",
185
+ getInstruction,
186
+ getHint,
187
+ getCorrection,
188
+ getAnswer,
189
+ getQuestionFromIdentifiers,
190
+ hasHintAndCorrection: true,
191
+ answerType: "QCU",
192
+ };
@@ -284,8 +284,8 @@ const getPinPointFromAxialOrCentralSymmetryQuestion = (optsIn) => {
284
284
  const vecVRaw = VectorConstructor.fromPoints(point1, rotatePoint(point2, frac(PiNode, 2).evaluate(), point1, "N"));
285
285
  const vecVUnit = vecVRaw.times(frac(1, vecVRaw.getNorm().evaluate()).evaluate().toTree());
286
286
  const vecSrc = VectorConstructor.fromPoints(point1, pointSrc);
287
- const dotAx = vecSrc.scalarProduct(vecUUnit);
288
- const dotPerp = vecSrc.scalarProduct(vecVUnit);
287
+ const dotAx = vecSrc.scalarProduct(vecUUnit).simplify();
288
+ const dotPerp = vecSrc.scalarProduct(vecVUnit).simplify();
289
289
  const vecDst = vecUUnit
290
290
  .times(dotAx)
291
291
  .add(vecVUnit.times(multiply(-1, dotPerp)));
@@ -113,7 +113,7 @@ const getCorrection = (identifiers) => {
113
113
  const { nameObjSrc, nameObjDst, transformationIds, pointsDict } = identifiers;
114
114
  const pointsIds = Object.values(pointsDict);
115
115
  return `L'angle $\\widehat{${pointsIds[1].name}${pointsIds[0].name}${pointsIds[2].name}}$ vaut $60°$.
116
- L'image de $${nameObjSrc[0]}$ par ${getStrForTransformation(transformationIds)} est $${nameObjDst[1]}$ et celle de $${nameObjSrc[0]}$ est $${nameObjDst[1]}$.
116
+ L'image de $${nameObjSrc[0]}$ par ${getStrForTransformation(transformationIds)} est $${nameObjDst[0]}$ et celle de $${nameObjSrc[1]}$ est $${nameObjDst[1]}$.
117
117
  L'image de $[${nameObjSrc}]$ par ${getStrForTransformation(transformationIds)} est donc $[${nameObjDst}]$.`;
118
118
  };
119
119
  const getSegmentSrc = (identifiers) => {
@@ -1 +1 @@
1
- {"version":3,"file":"recognizeHomothetyCenter.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/euclidian/recognizeHomothetyCenter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAGL,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAKtC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAiE7C,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAuSF,KAAK,OAAO,GAAG;IACb,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAyBF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAiBnE,CAAC"}
1
+ {"version":3,"file":"recognizeHomothetyCenter.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/euclidian/recognizeHomothetyCenter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAGL,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAKtC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAiE7C,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAsSF,KAAK,OAAO,GAAG;IACb,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAyBF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAiBnE,CAAC"}
@@ -95,20 +95,20 @@ const getCorrection = (identifiers) => {
95
95
  ${(() => {
96
96
  if (isAboveZero) {
97
97
  return `Le rapport d'homothétie est positif
98
- donc le centre est donc à l'extérieur du segment $[${nameSrcPoint}${nameDstPoint}]$.`;
98
+ donc le centre est à l'extérieur du segment $[${nameSrcPoint}${nameDstPoint}]$.`;
99
99
  }
100
100
  else {
101
101
  return `Le rapport d'homothétie est négatif
102
- donc le centre est donc à l'intérieur du segment $[${nameSrcPoint}${nameDstPoint}]$.`;
102
+ donc le centre est à l'intérieur du segment $[${nameSrcPoint}${nameDstPoint}]$.`;
103
103
  }
104
104
  })()}${(() => {
105
105
  if (isAbsBelowOne) {
106
106
  return `Le rapport est inférieur à $1$ en valeur absolue
107
- donc le centre est donc plus proche de $${nameDstPoint}$ que de $${nameSrcPoint}$.`;
107
+ donc le centre est plus proche de $${nameDstPoint}$ que de $${nameSrcPoint}$.`;
108
108
  }
109
109
  else {
110
110
  return `Le rapport est supérieur à $1$ en valeur absolue
111
- donc le centre est donc plus proche de $${nameSrcPoint}$ que de $${nameDstPoint}$.`;
111
+ donc le centre est plus proche de $${nameSrcPoint}$ que de $${nameDstPoint}$.`;
112
112
  }
113
113
  })()}
114
114
 
@@ -218,7 +218,6 @@ const getRecognizeHomothetyCenterQuestion = (optsIn) => {
218
218
  counter++;
219
219
  try {
220
220
  identifiers = createRandomIdentifiers();
221
- console.log("identifiers", identifiers);
222
221
  }
223
222
  catch (_) {
224
223
  continue;
@@ -109,20 +109,20 @@ const getCorrection = (identifiers) => {
109
109
  ${(() => {
110
110
  if (isAboveZero) {
111
111
  return `Le rapport d'homothétie est positif
112
- donc le centre est donc à l'extérieur du segment $[${nameSrcPoint}${nameDstPoint}]$.`;
112
+ donc le centre est à l'extérieur du segment $[${nameSrcPoint}${nameDstPoint}]$.`;
113
113
  }
114
114
  else {
115
115
  return `Le rapport d'homothétie est négatif
116
- donc le centre est donc à l'intérieur du segment $[${nameSrcPoint}${nameDstPoint}]$.`;
116
+ donc le centre est à l'intérieur du segment $[${nameSrcPoint}${nameDstPoint}]$.`;
117
117
  }
118
118
  })()}${(() => {
119
119
  if (isAbsBelowOne) {
120
120
  return `Le rapport est inférieur à $1$ en valeur absolue
121
- donc le centre est donc plus proche de $${nameDstPoint}$ que de $${nameSrcPoint}$.`;
121
+ donc le centre est plus proche de $${nameDstPoint}$ que de $${nameSrcPoint}$.`;
122
122
  }
123
123
  else {
124
124
  return `Le rapport est supérieur à $1$ en valeur absolue
125
- donc le centre est donc plus proche de $${nameSrcPoint}$ que de $${nameDstPoint}$.`;
125
+ donc le centre est plus proche de $${nameSrcPoint}$ que de $${nameDstPoint}$.`;
126
126
  }
127
127
  })()}
128
128
 
@@ -1 +1 @@
1
- {"version":3,"file":"circleCircumference.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/perimeters/circleCircumference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA2GF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAcrD,CAAC"}
1
+ {"version":3,"file":"circleCircumference.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/perimeters/circleCircumference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAQrC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAgHF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAcrD,CAAC"}
@@ -22,11 +22,13 @@ const getAnswerNode = (identifiers) => {
22
22
  const getAnswer = (identifiers) => {
23
23
  return `${getAnswerNode(identifiers).toTex()} \\text{cm}`;
24
24
  };
25
- const getHint = () => {
26
- return `Le périmètre d'un cercle de rayon $r$ est donné par :
25
+ const getHint = (identifiers) => {
26
+ const { coin } = identifiers;
27
+ const isRadius = coin;
28
+ return `Le périmètre d'un cercle de ${isRadius ? "rayon $r$" : "diamètre $d$"} est donné par :
27
29
 
28
30
  $$
29
- C = 2\\pi r
31
+ C = ${isRadius ? "2\\pi r" : "\\pi\\times d"}
30
32
  $$`;
31
33
  };
32
34
  const getCorrection = (identifiers) => {
@@ -23,7 +23,7 @@ const getSubTriangle = ({ triangle, insidePointsNames, ratio, }) => {
23
23
  const getInstruction = (identifiers) => {
24
24
  const { triangleIdentifiers, insidePointsNames } = identifiers;
25
25
  const triangle = TriangleConstructor.fromIdentifiers(triangleIdentifiers);
26
- return `En utilisant le théoreme de Thalès, écrire l'égalité des quotients sachant que $\\left(${insidePointsNames.join("")}\\right)//\\left(${triangle.sides[2].toInsideName()}\\right)$.`;
26
+ return `En utilisant le théorème de Thalès, écrire l'égalité des quotients sachant que $\\left(${insidePointsNames.join("")}\\right)//\\left(${triangle.sides[2].toInsideName()}\\right)$.`;
27
27
  };
28
28
  const getAnswer = (identifiers) => {
29
29
  const { triangleIdentifiers, insidePointsNames, isPapillon, ratio } = identifiers;
@@ -244,7 +244,7 @@ const getQuestionFromIdentifiers = (identifiers, opts) => {
244
244
  export const thalesCalcul = {
245
245
  id: "thalesCalcul",
246
246
  connector: "=",
247
- label: "Utiliser le théoreme de Thalès pour calculer un côté",
247
+ label: "Utiliser le théorème de Thalès pour calculer un côté",
248
248
  isSingleStep: true,
249
249
  generator: (nb, opts) => getDistinctQuestions(() => getThalesFindSideQuestion(opts), nb),
250
250
  qcmTimer: 60,
@@ -75,7 +75,7 @@ const getPropositions = (n, { answer, ...identifiers }) => {
75
75
  const propositions = [];
76
76
  addValidProp(propositions, answer);
77
77
  const { u, v } = getVectors(identifiers);
78
- tryToAddWrongProp(propositions, u.scalarProduct(v).toTex());
78
+ tryToAddWrongProp(propositions, u.scalarProduct(v).simplify().toTex());
79
79
  propWhile(propositions, n, () => {
80
80
  const wrongAnswer = randint(-20, 20) + "";
81
81
  tryToAddWrongProp(propositions, wrongAnswer);
@@ -24,7 +24,7 @@ const getAnswer = (identifiers) => {
24
24
  const points = getPoints(identifiers);
25
25
  const u = VectorConstructor.fromPoints(points[1], points[0]);
26
26
  const v = VectorConstructor.fromPoints(points[1], points[2]);
27
- const ps = u.scalarProduct(v);
27
+ const ps = u.scalarProduct(v).simplify();
28
28
  const normU = u.getNorm();
29
29
  const normV = v.getNorm();
30
30
  const cos = frac(ps, multiply(normU, normV)).simplify();
@@ -1 +1 @@
1
- {"version":3,"file":"findCoordinatesToOrthogonalize.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAEL,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAOvC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC;AAoGF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,WAAW,CAqBhE,CAAC"}
1
+ {"version":3,"file":"findCoordinatesToOrthogonalize.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAEL,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAQvC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC;AA0HF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,WAAW,CAsBhE,CAAC"}
@@ -4,9 +4,10 @@ import { rationalVEA } from "../../../../../exercises/vea/rationalVEA.js";
4
4
  import { VectorConstructor, } from "../../../../../math/geometry/vector.js";
5
5
  import { RationalConstructor } from "../../../../../math/numbers/rationals/rational.js";
6
6
  import { randint } from "../../../../../math/utils/random/randint.js";
7
- import { equal } from "../../../../../tree/nodes/equations/equalNode.js";
7
+ import { equal, EqualNode } from "../../../../../tree/nodes/equations/equalNode.js";
8
8
  import { coinFlip } from "../../../../../utils/alea/coinFlip.js";
9
9
  import { handleVEAError } from "../../../../../utils/errors/handleVEAError.js";
10
+ import { alignTex } from "../../../../../utils/latex/alignTex.js";
10
11
  const getPropositions = (n, { answer }) => {
11
12
  const propositions = [];
12
13
  addValidProp(propositions, answer);
@@ -29,10 +30,34 @@ const getInstruction = (identifiers) => {
29
30
 
30
31
  Pour quelle valeur de $x$ les vecteurs $${u.toTex()}$ et $${v.toTex()}$ sont-ils orthogonaux ?`;
31
32
  };
32
- // const getHint : GetHint<Identifiers> = (identifiers)=>{
33
- // }
34
- // const getCorrection : GetCorrection<Identifiers> = (identifiers)=>{
35
- // }
33
+ const getHint = () => {
34
+ return `Deux vecteurs sont orthogonaux si et seulement leur produit scalaire est nul.`;
35
+ };
36
+ const getCorrection = (identifiers) => {
37
+ const { uIds, vIds } = identifiers;
38
+ const u = VectorConstructor.fromIdentifiers(uIds);
39
+ const v = VectorConstructor.fromIdentifiers(vIds);
40
+ const psNode = u.scalarProduct(v);
41
+ const psNodeSimp = psNode.simplify();
42
+ const equation = new EqualNode(psNodeSimp, (0).toTree());
43
+ const steps = [];
44
+ const res = equation.isolate("x", { steps });
45
+ return `On sait que deux vecteurs sont orthogonaux si et seulement si leur produit scaraire est nul.
46
+
47
+ On commence donc par calculer $${u.toTex()}\\cdot ${v.toTex()}$ :
48
+
49
+ ${alignTex([
50
+ [`${u.toTex()}\\cdot ${v.toTex()}`, "=", u.scalarProduct(v).toTex()],
51
+ ["", "=", u.scalarProduct(v).simplify().toTex()],
52
+ ])}
53
+
54
+ Il suffit alors de résoudre l'équation $${u.toTex()}\\cdot ${v.toTex()} = 0$ :
55
+
56
+ ${alignTex(steps.map((e) => [e]))}
57
+
58
+ Les vecteurs $${u.toTex()}$ et $${v.toTex()}$ sont donc orthogonaux si et seulement si $${res.toTex()}$.
59
+ `;
60
+ };
36
61
  const getKeys = () => {
37
62
  return [];
38
63
  };
@@ -88,8 +113,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
88
113
  keys: getKeys(identifiers),
89
114
  answerFormat: "tex",
90
115
  identifiers,
91
- // hint: getHint(identifiers),
92
- // correction: getCorrection(identifiers)
116
+ hint: getHint(identifiers),
117
+ correction: getCorrection(identifiers),
93
118
  };
94
119
  };
95
120
  export const findCoordinatesToOrthogonalize = {
@@ -108,4 +133,5 @@ export const findCoordinatesToOrthogonalize = {
108
133
  // getCorrection,
109
134
  getAnswer,
110
135
  getQuestionFromIdentifiers,
136
+ hasHintAndCorrection: true,
111
137
  };
@@ -27,7 +27,7 @@ const getAnswer = (identifiers) => {
27
27
  const { uCoords, vCoords } = identifiers;
28
28
  const u = new Vector("u", new NumberNode(Number(uCoords[0])), new NumberNode(Number(uCoords[1])));
29
29
  const v = new Vector("v", new NumberNode(Number(vCoords[0])), new NumberNode(Number(vCoords[1])));
30
- const answer = u.scalarProduct(v).toTex();
30
+ const answer = u.scalarProduct(v).simplify().toTex();
31
31
  return answer;
32
32
  };
33
33
  const getHint = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"scalarProductViaCos.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AA+EF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAerD,CAAC"}
1
+ {"version":3,"file":"scalarProductViaCos.d.ts","sourceRoot":"","sources":["../../../../../../src/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAqBrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAkHF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAgBrD,CAAC"}
@@ -3,13 +3,47 @@ import { getDistinctQuestions } from "../../../../../exercises/utils/getDistinct
3
3
  import { mainTrigoValues, remarkableTrigoValues, } from "../../../../../math/trigonometry/remarkableValues.js";
4
4
  import { randint } from "../../../../../math/utils/random/randint.js";
5
5
  import { NumberNode } from "../../../../../tree/nodes/numbers/numberNode.js";
6
- import { MultiplyNode } from "../../../../../tree/nodes/operators/multiplyNode.js";
6
+ import { multiply, MultiplyNode, } from "../../../../../tree/nodes/operators/multiplyNode.js";
7
7
  import { randomLetter } from "../../../../../utils/strings/randomLetter.js";
8
8
  import { shuffle } from "../../../../../utils/alea/shuffle.js";
9
9
  import { random } from "../../../../../utils/alea/random.js";
10
10
  import { handleVEAError } from "../../../../../utils/errors/handleVEAError.js";
11
11
  import { parseAlgebraic } from "../../../../../tree/parsers/latexParser.js";
12
+ import { alignTex } from "../../../../../utils/latex/alignTex.js";
13
+ import { cos } from "../../../../../tree/nodes/functions/cosNode.js";
12
14
  //|u| |v| cos(u,v)
15
+ const getHint = () => {
16
+ return `Utilise la formule du produit scalaire suivante :
17
+
18
+ $$
19
+ \\overrightarrow{u}\\cdot \\overrightarrow{v} = ||\\overrightarrow{u}|| \\times ||\\overrightarrow{v}||\\times \\cos(\\widehat{\\overrightarrow{u}, \\overrightarrow{v}})
20
+ $$`;
21
+ };
22
+ const getCorrection = (identifiers) => {
23
+ const { AB, AC, trigoPoint, letters } = identifiers;
24
+ const trigo = mainTrigoValues.find((v) => v.point === trigoPoint);
25
+ const [letterA, letterB, letterC] = letters;
26
+ const u = letterA + letterB;
27
+ const v = letterA + letterC;
28
+ return `Utilise la formule du produit scalaire suivante :
29
+
30
+ $$
31
+ \\overrightarrow{u}\\cdot \\overrightarrow{v} = ||\\overrightarrow{u}|| \\times ||\\overrightarrow{v}||\\times \\cos(\\widehat{\\overrightarrow{u}, \\overrightarrow{v}})
32
+ $$
33
+
34
+ Ici, on a donc :
35
+
36
+ ${alignTex([
37
+ [
38
+ `\\overrightarrow{${u}}\\cdot \\overrightarrow{${v}}`,
39
+ "=",
40
+ `${u}\\times ${v}\\times \\cos\\left(${letterB}${letterA}${letterC}\\right)`,
41
+ ],
42
+ ["", "=", multiply(multiply(AB, AC), cos(trigo.angle)).toTex()],
43
+ ["", "=", multiply(multiply(AB, AC), trigo.cos).toTex()],
44
+ ["", "=", getAnswer(identifiers)],
45
+ ])}`;
46
+ };
13
47
  const getInstruction = (identifiers) => {
14
48
  const { AB, AC, trigoPoint, letters } = identifiers;
15
49
  const [letterA, letterB, letterC] = letters;
@@ -45,6 +79,8 @@ const getQuestionFromIdentifiers = (identifiers) => {
45
79
  keys: ["pi"],
46
80
  answerFormat: "tex",
47
81
  identifiers,
82
+ hint: getHint(identifiers),
83
+ correction: getCorrection(identifiers),
48
84
  };
49
85
  return question;
50
86
  };
@@ -83,4 +119,5 @@ export const scalarProductViaCos = {
83
119
  getInstruction,
84
120
  getAnswer,
85
121
  getQuestionFromIdentifiers,
122
+ hasHintAndCorrection: true,
86
123
  };
@@ -1 +1 @@
1
- {"version":3,"file":"parallelepipedVolume.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/parallelepipedVolume.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA8KF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}
1
+ {"version":3,"file":"parallelepipedVolume.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/geometry/volumes/parallelepipedVolume.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAOrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAyLF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAetD,CAAC"}