math-exercises 3.0.157 → 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 (260) 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/calculLitteral/equation/exp/expOfAffineEquals1Equation.d.ts +14 -0
  4. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.d.ts.map +1 -0
  5. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.js +145 -0
  6. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.d.ts +16 -0
  7. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.d.ts.map +1 -0
  8. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.js +444 -0
  9. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.d.ts +15 -0
  10. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.d.ts.map +1 -0
  11. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.js +292 -0
  12. package/lib/exercises/math/calculLitteral/equation/exp/index.d.ts +4 -0
  13. package/lib/exercises/math/calculLitteral/equation/exp/index.d.ts.map +1 -0
  14. package/lib/exercises/math/calculLitteral/equation/exp/index.js +3 -0
  15. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts +18 -0
  16. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts.map +1 -0
  17. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.js +437 -0
  18. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts +2 -0
  19. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts.map +1 -0
  20. package/lib/exercises/math/calculLitteral/inequations/exp/index.js +1 -0
  21. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.d.ts.map +1 -1
  22. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.js +29 -0
  23. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.d.ts.map +1 -1
  24. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.js +35 -2
  25. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.d.ts.map +1 -1
  26. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.js +19 -0
  27. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts +10 -0
  28. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts.map +1 -0
  29. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.js +282 -0
  30. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.d.ts.map +1 -1
  31. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.js +30 -2
  32. package/lib/exercises/math/derivation/derivative/productDerivative.d.ts.map +1 -1
  33. package/lib/exercises/math/derivation/derivative/productDerivative.js +68 -1
  34. package/lib/exercises/math/derivation/derivative/quotientDerivative.d.ts.map +1 -1
  35. package/lib/exercises/math/derivation/derivative/quotientDerivative.js +40 -4
  36. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.d.ts.map +1 -1
  37. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.js +30 -3
  38. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts +12 -0
  39. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts.map +1 -0
  40. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.js +127 -0
  41. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts +13 -0
  42. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts.map +1 -0
  43. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.js +161 -0
  44. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts +11 -0
  45. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts.map +1 -0
  46. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.js +116 -0
  47. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts +8 -0
  48. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts.map +1 -0
  49. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.js +142 -0
  50. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts +4 -0
  51. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts.map +1 -0
  52. package/lib/exercises/math/derivation/derivativeNumber/index.js +4 -0
  53. package/lib/exercises/math/derivation/index.d.ts +1 -1
  54. package/lib/exercises/math/derivation/index.js +1 -1
  55. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts +13 -0
  56. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts.map +1 -0
  57. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.js +278 -0
  58. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts +11 -0
  59. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts.map +1 -0
  60. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.js +211 -0
  61. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts +9 -0
  62. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts.map +1 -0
  63. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.js +142 -0
  64. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts +5 -0
  65. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts.map +1 -0
  66. package/lib/exercises/math/functions/exponential/algebraic/index.js +4 -0
  67. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts +14 -0
  68. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts.map +1 -0
  69. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.js +337 -0
  70. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts +11 -0
  71. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts.map +1 -0
  72. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.js +234 -0
  73. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts +9 -0
  74. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts.map +1 -0
  75. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.js +190 -0
  76. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts +9 -0
  77. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts.map +1 -0
  78. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.js +190 -0
  79. package/lib/exercises/math/functions/exponential/definition/index.d.ts +5 -0
  80. package/lib/exercises/math/functions/exponential/definition/index.d.ts.map +1 -0
  81. package/lib/exercises/math/functions/exponential/definition/index.js +4 -0
  82. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts +13 -0
  83. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts.map +1 -0
  84. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.js +375 -0
  85. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.d.ts.map +1 -1
  86. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.js +30 -3
  87. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.d.ts.map +1 -1
  88. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.js +35 -1
  89. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.d.ts.map +1 -1
  90. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.js +1 -1
  91. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.d.ts.map +1 -1
  92. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.js +23 -1
  93. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.d.ts.map +1 -1
  94. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.js +29 -0
  95. package/lib/exercises/math/functions/variations/exp/index.d.ts +3 -0
  96. package/lib/exercises/math/functions/variations/exp/index.d.ts.map +1 -0
  97. package/lib/exercises/math/functions/variations/exp/index.js +2 -0
  98. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts +9 -0
  99. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts.map +1 -0
  100. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.js +101 -0
  101. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts +11 -0
  102. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts.map +1 -0
  103. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.js +192 -0
  104. package/lib/exercises/math/geometry/euclidian/pinPointFromAxialOrCentralSymmetry.js +2 -2
  105. package/lib/exercises/math/geometry/thales/thales.js +1 -1
  106. package/lib/exercises/math/geometry/thales/thalesCalcul.js +1 -1
  107. package/lib/exercises/math/geometry/vectors/colinearity/determinant.js +1 -1
  108. package/lib/exercises/math/geometry/vectors/scalarProduct/angleFromScalarProduct.js +1 -1
  109. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.d.ts.map +1 -1
  110. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.js +33 -7
  111. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCoords.js +1 -1
  112. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.d.ts.map +1 -1
  113. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.js +38 -1
  114. package/lib/exercises/math/probaStat/conditionalProbability.d.ts +4 -1
  115. package/lib/exercises/math/probaStat/conditionalProbability.d.ts.map +1 -1
  116. package/lib/exercises/math/probaStat/conditionalProbability.js +38 -5
  117. package/lib/exercises/math/probaStat/independancy/independancy.d.ts +9 -0
  118. package/lib/exercises/math/probaStat/independancy/independancy.d.ts.map +1 -0
  119. package/lib/exercises/math/probaStat/independancy/independancy.js +114 -0
  120. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts +9 -0
  121. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts.map +1 -0
  122. package/lib/exercises/math/probaStat/independancy/independancyFindCap.js +101 -0
  123. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts +9 -0
  124. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts.map +1 -0
  125. package/lib/exercises/math/probaStat/independancy/independancyFindCup.js +118 -0
  126. package/lib/exercises/math/probaStat/independancy/index.d.ts +5 -0
  127. package/lib/exercises/math/probaStat/independancy/index.d.ts.map +1 -0
  128. package/lib/exercises/math/probaStat/independancy/index.js +4 -0
  129. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts +10 -0
  130. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts.map +1 -0
  131. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.js +106 -0
  132. package/lib/exercises/math/probaStat/index.d.ts +1 -1
  133. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  134. package/lib/exercises/math/probaStat/index.js +1 -1
  135. package/lib/exercises/math/probaStat/randomVariable/randomVariableStandardDeviation.js +1 -1
  136. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.d.ts.map +1 -1
  137. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.js +7 -0
  138. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.d.ts.map +1 -1
  139. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.js +7 -0
  140. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.d.ts.map +1 -1
  141. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.js +7 -0
  142. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.d.ts.map +1 -1
  143. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.js +7 -0
  144. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts +9 -0
  145. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts.map +1 -0
  146. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.js +118 -0
  147. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.d.ts.map +1 -1
  148. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.js +55 -6
  149. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.d.ts.map +1 -1
  150. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.js +42 -1
  151. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts +4 -1
  152. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts.map +1 -1
  153. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.js +57 -7
  154. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts.map +1 -1
  155. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +24 -2
  156. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.d.ts.map +1 -1
  157. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.js +31 -8
  158. package/lib/exercises/math/sequences/arithmetic/index.d.ts +1 -1
  159. package/lib/exercises/math/sequences/arithmetic/index.d.ts.map +1 -1
  160. package/lib/exercises/math/sequences/arithmetic/index.js +1 -1
  161. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -1
  162. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +11 -1
  163. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstRankOne.js +5 -5
  164. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.d.ts.map +1 -1
  165. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.js +3 -1
  166. package/lib/exercises/math/sequences/geometric/geometricFindReason.d.ts.map +1 -1
  167. package/lib/exercises/math/sequences/geometric/geometricFindReason.js +41 -2
  168. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts.map +1 -1
  169. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.js +28 -2
  170. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts.map +1 -1
  171. package/lib/exercises/math/sequences/sequenceEvaluation.js +22 -2
  172. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts +9 -0
  173. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts.map +1 -0
  174. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.js +107 -0
  175. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts +10 -0
  176. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts.map +1 -0
  177. package/lib/exercises/math/trigonometry/circle/associatePoint.js +86 -0
  178. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts +10 -0
  179. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts.map +1 -0
  180. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.js +205 -0
  181. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts +7 -0
  182. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts.map +1 -0
  183. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.js +121 -0
  184. package/lib/exercises/math/trigonometry/circle/index.d.ts +7 -0
  185. package/lib/exercises/math/trigonometry/circle/index.d.ts.map +1 -0
  186. package/lib/exercises/math/trigonometry/circle/index.js +7 -0
  187. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts +10 -0
  188. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts.map +1 -0
  189. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.js +100 -0
  190. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts +8 -0
  191. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts.map +1 -0
  192. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.js +97 -0
  193. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts +10 -0
  194. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts.map +1 -0
  195. package/lib/exercises/math/trigonometry/circle/remarkableValues.js +112 -0
  196. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts +7 -0
  197. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts.map +1 -0
  198. package/lib/exercises/math/trigonometry/functions/basicEquationCos.js +92 -0
  199. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts +7 -0
  200. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts.map +1 -0
  201. package/lib/exercises/math/trigonometry/functions/basicEquationSin.js +104 -0
  202. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts +7 -0
  203. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts.map +1 -0
  204. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.js +83 -0
  205. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts +8 -0
  206. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts.map +1 -0
  207. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.js +111 -0
  208. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts +8 -0
  209. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts.map +1 -0
  210. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.js +101 -0
  211. package/lib/exercises/math/trigonometry/functions/index.d.ts +6 -0
  212. package/lib/exercises/math/trigonometry/functions/index.d.ts.map +1 -0
  213. package/lib/exercises/math/trigonometry/functions/index.js +6 -0
  214. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts +9 -0
  215. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts.map +1 -0
  216. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.js +151 -0
  217. package/lib/exercises/math/trigonometry/index.d.ts +3 -14
  218. package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
  219. package/lib/exercises/math/trigonometry/index.js +3 -14
  220. package/lib/exercises/math/trigonometry/triangle/index.d.ts +7 -0
  221. package/lib/exercises/math/trigonometry/triangle/index.d.ts.map +1 -0
  222. package/lib/exercises/math/trigonometry/triangle/index.js +6 -0
  223. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts +10 -0
  224. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts.map +1 -0
  225. package/lib/exercises/math/trigonometry/triangle/trigonometry.js +207 -0
  226. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts +10 -0
  227. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts.map +1 -0
  228. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.js +174 -0
  229. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts +11 -0
  230. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts.map +1 -0
  231. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.js +224 -0
  232. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts +13 -0
  233. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts.map +1 -0
  234. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.js +189 -0
  235. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts +13 -0
  236. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts.map +1 -0
  237. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.js +290 -0
  238. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts +18 -0
  239. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts.map +1 -0
  240. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.js +386 -0
  241. package/lib/exercises/pc/mathExosInPC.d.ts +2 -2
  242. package/lib/exercises/pc/mathExosInPC.d.ts.map +1 -1
  243. package/lib/exercises/pc/mathExosInPC.js +2 -2
  244. package/lib/index.d.ts +63 -27
  245. package/lib/index.d.ts.map +1 -1
  246. package/lib/math/geometry/segment.d.ts +1 -1
  247. package/lib/math/geometry/vector.d.ts +2 -1
  248. package/lib/math/geometry/vector.d.ts.map +1 -1
  249. package/lib/math/geometry/vector.js +1 -1
  250. package/lib/math/numbers/reals/real.d.ts.map +1 -1
  251. package/lib/math/numbers/reals/real.js +2 -0
  252. package/lib/playground.d.ts.map +1 -1
  253. package/lib/playground.js +3 -1
  254. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  255. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  256. package/lib/tree/nodes/functions/sqrtNode.d.ts +2 -1
  257. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  258. package/lib/tree/nodes/functions/sqrtNode.js +17 -6
  259. package/lib/tree/nodes/operators/multiplyNode.js +1 -1
  260. package/package.json +1 -1
@@ -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)));
@@ -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
  };
@@ -7,6 +7,9 @@ type Identifiers = {
7
7
  pA_B?: number;
8
8
  pB_A?: number;
9
9
  };
10
- export declare const conditionalProbability: Exercise<Identifiers>;
10
+ type Options = {
11
+ probaType: string[];
12
+ };
13
+ export declare const conditionalProbability: Exercise<Identifiers, Options>;
11
14
  export {};
12
15
  //# sourceMappingURL=conditionalProbability.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditionalProbability.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/conditionalProbability.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EAeT,MAAM,mBAAmB,CAAC;AAM3B,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA8SF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,CAcxD,CAAC"}
1
+ {"version":3,"file":"conditionalProbability.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/probaStat/conditionalProbability.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EAmBT,MAAM,mBAAmB,CAAC;AAO3B,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAoRF,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAyDF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAiBjE,CAAC"}
@@ -1,12 +1,13 @@
1
1
  /* eslint-disable @typescript-eslint/naming-convention*/
2
2
  //? it makes sense here to use pA_B
3
3
  import { randint } from "../../../math/utils/random/randint.js";
4
- import { addValidProp, propWhile, tryToAddWrongProp, } from "../../exercise.js";
4
+ import { GeneratorOptionTarget, GeneratorOptionType, addValidProp, propWhile, tryToAddWrongProp, } from "../../exercise.js";
5
5
  import { getDistinctQuestions } from "../../utils/getDistinctQuestions.js";
6
6
  import { round } from "../../../math/utils/round.js";
7
7
  import { shuffle } from "../../../utils/alea/shuffle.js";
8
8
  import { alignTex } from "../../../utils/latex/alignTex.js";
9
9
  import { numberVEA } from "../../../exercises/vea/numberVEA.js";
10
+ import { random } from "../../../utils/alea/random.js";
10
11
  const getInstruction = (identifiers) => {
11
12
  const { flip, pA, pAB, pA_B, pB, pB_A } = identifiers;
12
13
  let instruction = `On considère deux événements $A$ et $B$ tels que `;
@@ -223,9 +224,18 @@ ${alignTex([
223
224
  }
224
225
  }
225
226
  };
226
- const getConditionalProbability = () => {
227
+ const getConditionalProbability = (opts) => {
227
228
  let pA, pB, pAB, pA_B, pB_A;
228
- const flip = randint(1, 7);
229
+ const types = opts?.probaType ?? ["$P(A)$", "$P(A\\cap B)$", "$P_A(B)$"];
230
+ const flipChoices = [];
231
+ if (types.includes("$P(A)$"))
232
+ flipChoices.push(5, 6);
233
+ if (types.includes("$P(A\\cap B)$"))
234
+ flipChoices.push(3, 4);
235
+ if (types.includes("$P_A(B)$"))
236
+ flipChoices.push(1, 2);
237
+ const flip = random(flipChoices);
238
+ //1,2 = P_AB, 3,4 = PANB, 5,6 = PA
229
239
  switch (flip) {
230
240
  case 1:
231
241
  pA = randint(2, 100);
@@ -259,6 +269,27 @@ const getConditionalProbability = () => {
259
269
  const identifiers = { flip, pA, pAB, pB, pA_B, pB_A };
260
270
  return getQuestionFromIdentifiers(identifiers);
261
271
  };
272
+ const options = [
273
+ {
274
+ id: "probaType",
275
+ label: "Probabilité demandée",
276
+ target: GeneratorOptionTarget.generation,
277
+ type: GeneratorOptionType.multiselect,
278
+ values: ["$P(A)$", "$P(A\\cap B)$", "$P_A(B)$"],
279
+ defaultValue: ["$P(A)$", "$P(A\\cap B)$", "$P_A(B)$"],
280
+ },
281
+ ];
282
+ const validateOptions = (opts) => {
283
+ if (!opts?.probaType?.length)
284
+ return {
285
+ valid: false,
286
+ message: "Veuillez choisir au moins un type de probabilité demandée.",
287
+ };
288
+ return {
289
+ valid: true,
290
+ message: "",
291
+ };
292
+ };
262
293
  const getQuestionFromIdentifiers = (identifiers) => {
263
294
  const question = {
264
295
  instruction: getInstruction(identifiers),
@@ -286,9 +317,9 @@ const isAnswerValid = (ans, { answer }) => {
286
317
  export const conditionalProbability = {
287
318
  id: "conditionalProbability",
288
319
  connector: "=",
289
- label: "Calcul de probabilité conditionnelle avec la formule de Bayes",
320
+ label: "Calcul de probabilité conditionnelle avec la formule de Bayes $P(A \\cap B) = P_A(B) \\times P(A)$",
290
321
  isSingleStep: false,
291
- generator: (nb) => getDistinctQuestions(getConditionalProbability, nb),
322
+ generator: (nb, opts) => getDistinctQuestions(() => getConditionalProbability(opts), nb),
292
323
  qcmTimer: 60,
293
324
  freeTimer: 60,
294
325
  getPropositions,
@@ -296,4 +327,6 @@ export const conditionalProbability = {
296
327
  subject: "Mathématiques",
297
328
  hasHintAndCorrection: true,
298
329
  getQuestionFromIdentifiers,
330
+ options,
331
+ validateOptions,
299
332
  };
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ pA: number;
4
+ pB: number;
5
+ pUnion: number;
6
+ };
7
+ export declare const independancy: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=independancy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"independancy.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/probaStat/independancy/independancy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAYT,MAAM,6BAA6B,CAAC;AAWrC,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAkHF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,WAAW,CAc9C,CAAC"}