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,104 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, propWhile, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { mainTrigoValues } from "../../../../math/trigonometry/remarkableValues.js";
4
+ import { EquationSolutionNode } from "../../../../tree/nodes/equations/equationSolutionNode.js";
5
+ import { SinNode } from "../../../../tree/nodes/functions/sinNode.js";
6
+ import { DiscreteSetNode } from "../../../../tree/nodes/sets/discreteSetNode.js";
7
+ import { random } from "../../../../utils/alea/random.js";
8
+ const getPropositions = (n, { answer, degree }) => {
9
+ const propositions = [];
10
+ addValidProp(propositions, answer);
11
+ //distracteur avec une solution manquante
12
+ if (degree !== 90 && degree !== 270) {
13
+ const answerNode = getAnswerNode({ degree });
14
+ const newSet = answerNode.solutionsSet.toDeleteRandomElement();
15
+ tryToAddWrongProp(propositions, new EquationSolutionNode(newSet).toTex());
16
+ }
17
+ const mainSinusValues = mainTrigoValues.slice(3, 12);
18
+ propWhile(propositions, n, () => {
19
+ const value = random(mainSinusValues);
20
+ const randDegree = value.degree;
21
+ tryToAddWrongProp(propositions, getAnswer({ degree: randDegree }));
22
+ });
23
+ return shuffleProps(propositions, n);
24
+ };
25
+ const getAnswerNode = (identifiers) => {
26
+ const value = mainTrigoValues.find((v) => v.degree === identifiers.degree);
27
+ if (value.degree === 90 || value.degree === 270)
28
+ return new EquationSolutionNode(new DiscreteSetNode([value.angle]));
29
+ const isNegative = value.degree > 270;
30
+ let ans1;
31
+ let ans2;
32
+ if (isNegative) {
33
+ ans2 = value.angle;
34
+ const oppositeDegree = 270 - (value.degree - 270);
35
+ ans1 = mainTrigoValues.find((v) => v.degree === oppositeDegree).angle;
36
+ }
37
+ else {
38
+ ans1 = value.angle;
39
+ const oppositeDegree = 90 + (90 - value.degree);
40
+ ans2 = mainTrigoValues.find((v) => v.degree === oppositeDegree).angle;
41
+ }
42
+ return new EquationSolutionNode(new DiscreteSetNode([ans1, ans2]));
43
+ };
44
+ const getAnswer = (identifiers) => {
45
+ return getAnswerNode(identifiers).toTex();
46
+ };
47
+ const getInstruction = (identifiers) => {
48
+ const sin = mainTrigoValues.find((v) => v.degree === identifiers.degree).sin;
49
+ return `Résoudre :
50
+
51
+ $$
52
+ ${new SinNode("x".toTree()).toTex()}=${sin.toTex()}
53
+ $$
54
+
55
+ Donner les solutions dans l'intervalle $\\left]-\\pi,\\pi\\right]$.
56
+ `;
57
+ };
58
+ // const getHint: GetHint<Identifiers> = (identifiers) => {
59
+ // return "";
60
+ // };
61
+ // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {
62
+ // return "";
63
+ // };
64
+ const getKeys = () => {
65
+ return ["x", "S", "equal", "lbrace", "semicolon", "rbrace", "pi"];
66
+ };
67
+ const isAnswerValid = (ans, { degree }) => {
68
+ const answerNode = getAnswerNode({ degree });
69
+ return answerNode.toAllValidTexs().includes(ans);
70
+ };
71
+ const getBasicEquationSinQuestion = () => {
72
+ const mainSinusValues = mainTrigoValues.slice(3, 12);
73
+ const value = random(mainSinusValues);
74
+ const degree = value.degree;
75
+ const identifiers = { degree };
76
+ return getQuestionFromIdentifiers(identifiers);
77
+ };
78
+ const getQuestionFromIdentifiers = (identifiers) => {
79
+ const question = {
80
+ answer: getAnswer(identifiers),
81
+ instruction: getInstruction(identifiers),
82
+ keys: getKeys(identifiers),
83
+ answerFormat: "tex",
84
+ identifiers,
85
+ // hint: getHint(identifiers),
86
+ // correction: getCorrection(identifiers),
87
+ };
88
+ return question;
89
+ };
90
+ export const basicEquationSin = {
91
+ id: "basicEquationSin",
92
+ connector: "\\iff",
93
+ label: "Résoudre une équation du type $\\sin\\left(x\\right)=k$",
94
+ isSingleStep: true,
95
+ generator: (nb) => getDistinctQuestions(getBasicEquationSinQuestion, nb, 9),
96
+ qcmTimer: 60,
97
+ freeTimer: 60,
98
+ ggbTimer: 60,
99
+ getPropositions,
100
+ isAnswerValid,
101
+ subject: "Mathématiques",
102
+ getQuestionFromIdentifiers,
103
+ maxAllowedQuestions: 9,
104
+ };
@@ -0,0 +1,7 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ degree: number;
4
+ };
5
+ export declare const basicTrigoSystemEquation: Exercise<Identifiers>;
6
+ export {};
7
+ //# sourceMappingURL=basicTrigoSystemEquation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basicTrigoSystemEquation.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/functions/basicTrigoSystemEquation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAUrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAgFF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,WAAW,CAgB1D,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, propWhile, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { mainTrigoValues } from "../../../../math/trigonometry/remarkableValues.js";
4
+ import { EquationSolutionNode } from "../../../../tree/nodes/equations/equationSolutionNode.js";
5
+ import { CosNode } from "../../../../tree/nodes/functions/cosNode.js";
6
+ import { SinNode } from "../../../../tree/nodes/functions/sinNode.js";
7
+ import { DiscreteSetNode } from "../../../../tree/nodes/sets/discreteSetNode.js";
8
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
9
+ import { random } from "../../../../utils/alea/random.js";
10
+ const getPropositions = (n, { answer }) => {
11
+ const propositions = [];
12
+ addValidProp(propositions, answer);
13
+ propWhile(propositions, n, () => {
14
+ const value = random(mainTrigoValues);
15
+ tryToAddWrongProp(propositions, new EquationSolutionNode(new DiscreteSetNode([value.angle])).toTex());
16
+ });
17
+ return shuffleProps(propositions, n);
18
+ };
19
+ const getAnswerNode = (identifiers) => {
20
+ const value = mainTrigoValues.find((v) => v.degree === identifiers.degree);
21
+ return new EquationSolutionNode(new DiscreteSetNode([value.angle]));
22
+ };
23
+ const getAnswer = (identifiers) => {
24
+ return getAnswerNode(identifiers).toTex();
25
+ };
26
+ const getInstruction = (identifiers) => {
27
+ const value = mainTrigoValues.find((v) => v.degree === identifiers.degree);
28
+ return `Résoudre :
29
+
30
+ $$
31
+ \\left\\{${alignTex([
32
+ [`${new CosNode("x".toTree()).toTex()}=${value.cos.toTex()}`],
33
+ [`${new SinNode("x".toTree()).toTex()}=${value.sin.toTex()}`],
34
+ ], true)}\\right.
35
+ $$
36
+
37
+ Donner les solutions dans l'intervalle $\\left]-\\pi,\\pi\\right]$.
38
+ `;
39
+ };
40
+ // const getHint: GetHint<Identifiers> = (identifiers) => {};
41
+ // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {};
42
+ const getKeys = () => {
43
+ return ["x", "S", "equal", "lbrace", "semicolon", "rbrace", "pi"];
44
+ };
45
+ const isAnswerValid = (ans, { degree }) => {
46
+ const node = getAnswerNode({ degree });
47
+ return node.toAllValidTexs().includes(ans);
48
+ };
49
+ const getBasicTrigoSystemEquationQuestion = () => {
50
+ const value = random(mainTrigoValues);
51
+ const degree = value.degree;
52
+ const identifiers = {
53
+ degree,
54
+ };
55
+ return getQuestionFromIdentifiers(identifiers);
56
+ };
57
+ const getQuestionFromIdentifiers = (identifiers) => {
58
+ const question = {
59
+ answer: getAnswer(identifiers),
60
+ instruction: getInstruction(identifiers),
61
+ keys: getKeys(identifiers),
62
+ answerFormat: "tex",
63
+ identifiers,
64
+ // hint: getHint(identifiers),
65
+ // correction: getCorrection(identifiers),
66
+ };
67
+ return question;
68
+ };
69
+ export const basicTrigoSystemEquation = {
70
+ id: "basicTrigoSystemEquation",
71
+ connector: "\\iff",
72
+ label: "Résoudre un système du type $\\left\\{\\begin{matrix}\\cos(x)=a\\\\ \\sin(x)=b\\end{matrix}\\right.$",
73
+ isSingleStep: true,
74
+ generator: (nb) => getDistinctQuestions(getBasicTrigoSystemEquationQuestion, nb, 15),
75
+ qcmTimer: 60,
76
+ freeTimer: 60,
77
+ ggbTimer: 60,
78
+ getPropositions,
79
+ isAnswerValid,
80
+ subject: "Mathématiques",
81
+ getQuestionFromIdentifiers,
82
+ maxAllowedQuestions: 15,
83
+ };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ degree: number;
4
+ leftBoundPiMultiple: number;
5
+ };
6
+ export declare const equationCosOnRandomInterval: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=equationCosOnRandomInterval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equationCosOnRandomInterval.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/functions/equationCosOnRandomInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcT,MAAM,6BAA6B,CAAC;AAmBrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAkIF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,WAAW,CAc7D,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, propWhile, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { mainPositiveTrigovalues, mainTrigoValues, trigoValuesOnZeroTwoPIOF, } from "../../../../math/trigonometry/remarkableValues.js";
4
+ import { randint } from "../../../../math/utils/random/randint.js";
5
+ import { EquationSolutionNode } from "../../../../tree/nodes/equations/equationSolutionNode.js";
6
+ import { CosNode } from "../../../../tree/nodes/functions/cosNode.js";
7
+ import { PiNode } from "../../../../tree/nodes/numbers/piNode.js";
8
+ import { AddNode } from "../../../../tree/nodes/operators/addNode.js";
9
+ import { MultiplyNode } from "../../../../tree/nodes/operators/multiplyNode.js";
10
+ import { ClosureType } from "../../../../tree/nodes/sets/closure.js";
11
+ import { DiscreteSetNode } from "../../../../tree/nodes/sets/discreteSetNode.js";
12
+ import { IntervalNode } from "../../../../tree/nodes/sets/intervalNode.js";
13
+ import { random } from "../../../../utils/alea/random.js";
14
+ const getPropositions = (n, { answer, degree, leftBoundPiMultiple }) => {
15
+ const propositions = [];
16
+ addValidProp(propositions, answer);
17
+ //distracteur avec une solution manquante
18
+ if (degree !== 0 && degree !== 180) {
19
+ const answerNode = getAnswerNode({ degree, leftBoundPiMultiple });
20
+ const newSet = answerNode.solutionsSet.toDeleteRandomElement();
21
+ tryToAddWrongProp(propositions, new EquationSolutionNode(newSet).toTex());
22
+ }
23
+ propWhile(propositions, n, () => {
24
+ const value = random(mainPositiveTrigovalues);
25
+ const randDegree = value.degree;
26
+ tryToAddWrongProp(propositions, getAnswer({ degree: randDegree, leftBoundPiMultiple }));
27
+ });
28
+ return shuffleProps(propositions, n);
29
+ };
30
+ const getAnswerNode = (identifiers) => {
31
+ const coeff = identifiers.leftBoundPiMultiple;
32
+ /**
33
+ * Si l'intervalle est centré autour d'un multiple de 2pi (coeff impair) (genre ]3pi, 5pi]) on ajoute (coeff+1)/2 tours
34
+ * Sinon (coeff pair) (genre ]2pi, 4pipi]) , on chope la value de ]0, 2pi] et on ajoute coeff/2 tours
35
+ */
36
+ const turnsToAdd = Math.abs(coeff % 2) === 1 ? (coeff + 1) / 2 : coeff / 2;
37
+ const cos = mainTrigoValues
38
+ .find((v) => v.degree === identifiers.degree)
39
+ .cos.evaluate({});
40
+ const values = (Math.abs(coeff % 2) === 1 ? mainTrigoValues : trigoValuesOnZeroTwoPIOF).filter((v) => v.cos.evaluate({}) === cos);
41
+ if (values.length === 1) {
42
+ const value = values[0];
43
+ const newValue = new AddNode(value.angle, new MultiplyNode((turnsToAdd * 2).toTree(), PiNode)).simplify();
44
+ return new EquationSolutionNode(new DiscreteSetNode([newValue]));
45
+ }
46
+ else {
47
+ const newValues = values.map((v) => {
48
+ return new AddNode(v.angle, new MultiplyNode((turnsToAdd * 2).toTree(), PiNode)).simplify();
49
+ });
50
+ return new EquationSolutionNode(new DiscreteSetNode(newValues.sort((a, b) => a.evaluate({}) - b.evaluate({}))));
51
+ }
52
+ };
53
+ const getAnswer = (identifiers) => {
54
+ return getAnswerNode(identifiers).toTex();
55
+ };
56
+ const getInstruction = ({ degree, leftBoundPiMultiple, }) => {
57
+ const value = mainPositiveTrigovalues.find((v) => v.degree === degree);
58
+ const leftBound = new MultiplyNode(leftBoundPiMultiple.toTree(), PiNode).simplify();
59
+ const rightBound = new MultiplyNode((leftBoundPiMultiple + 2).toTree(), PiNode).simplify();
60
+ const interval = new IntervalNode(leftBound, rightBound, ClosureType.OF);
61
+ return `Résoudre sur $${interval.toTex()}$ l'équation :
62
+
63
+ $$
64
+ ${new CosNode("x".toTree()).toTex()}=${value.cos.toTex()}
65
+ $$`;
66
+ };
67
+ // const getHint: GetHint<Identifiers> = (identifiers) => {
68
+ // return "";
69
+ // };
70
+ // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {
71
+ // return "";
72
+ // };
73
+ const getKeys = () => {
74
+ return ["x", "S", "equal", "lbrace", "semicolon", "rbrace", "pi"];
75
+ };
76
+ const isAnswerValid = (ans, { degree, leftBoundPiMultiple }) => {
77
+ const answerNode = getAnswerNode({ degree, leftBoundPiMultiple });
78
+ return answerNode.toAllValidTexs().includes(ans);
79
+ };
80
+ const getEquationCosOnRandomIntervalQuestion = () => {
81
+ const value = random(mainPositiveTrigovalues);
82
+ const degree = value.degree;
83
+ const leftBoundPiMultiple = randint(-3, 4);
84
+ const identifiers = { degree, leftBoundPiMultiple };
85
+ return getQuestionFromIdentifiers(identifiers);
86
+ };
87
+ const getQuestionFromIdentifiers = (identifiers) => {
88
+ const question = {
89
+ answer: getAnswer(identifiers),
90
+ instruction: getInstruction(identifiers),
91
+ keys: getKeys(identifiers),
92
+ answerFormat: "tex",
93
+ identifiers,
94
+ // hint: getHint(identifiers),
95
+ // correction: getCorrection(identifiers),
96
+ };
97
+ return question;
98
+ };
99
+ export const equationCosOnRandomInterval = {
100
+ id: "equationCosOnRandomInterval",
101
+ connector: "\\iff",
102
+ label: "Résoudre une équation du type $\\cos\\left(x\\right)=k$ sur un intervalle donné",
103
+ isSingleStep: true,
104
+ generator: (nb) => getDistinctQuestions(getEquationCosOnRandomIntervalQuestion, nb),
105
+ qcmTimer: 60,
106
+ freeTimer: 60,
107
+ getPropositions,
108
+ isAnswerValid,
109
+ subject: "Mathématiques",
110
+ getQuestionFromIdentifiers,
111
+ };
@@ -0,0 +1,8 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ degree: number;
4
+ leftBoundPiMultiple: number;
5
+ };
6
+ export declare const equationSinOnRandomInterval: Exercise<Identifiers>;
7
+ export {};
8
+ //# sourceMappingURL=equationSinOnRandomInterval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equationSinOnRandomInterval.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/functions/equationSinOnRandomInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAaT,MAAM,6BAA6B,CAAC;AAmBrC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAiHF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,WAAW,CAc7D,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { addValidProp, shuffleProps, propWhile, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { mainPositiveTrigovalues, mainTrigoValues, trigoValuesOnZeroTwoPIOF, } from "../../../../math/trigonometry/remarkableValues.js";
4
+ import { randint } from "../../../../math/utils/random/randint.js";
5
+ import { EquationSolutionNode } from "../../../../tree/nodes/equations/equationSolutionNode.js";
6
+ import { SinNode } from "../../../../tree/nodes/functions/sinNode.js";
7
+ import { PiNode } from "../../../../tree/nodes/numbers/piNode.js";
8
+ import { AddNode } from "../../../../tree/nodes/operators/addNode.js";
9
+ import { MultiplyNode } from "../../../../tree/nodes/operators/multiplyNode.js";
10
+ import { ClosureType } from "../../../../tree/nodes/sets/closure.js";
11
+ import { DiscreteSetNode } from "../../../../tree/nodes/sets/discreteSetNode.js";
12
+ import { IntervalNode } from "../../../../tree/nodes/sets/intervalNode.js";
13
+ import { random } from "../../../../utils/alea/random.js";
14
+ const getPropositions = (n, { answer }) => {
15
+ const propositions = [];
16
+ addValidProp(propositions, answer);
17
+ propWhile(propositions, n, () => {
18
+ throw Error("QCM not implemented");
19
+ });
20
+ return shuffleProps(propositions, n);
21
+ };
22
+ const getAnswer = (identifiers) => {
23
+ const coeff = identifiers.leftBoundPiMultiple;
24
+ /**
25
+ * Si l'intervalle est centré autour d'un multiple de 2pi (coeff impair) (genre ]3pi, 5pi]) on ajoute (coeff+1)/2 tours
26
+ * Sinon (coeff pair) (genre ]2pi, 4pipi]) , on chope la value de ]0, 2pi] et on ajoute coeff/2 tours
27
+ */
28
+ const turnsToAdd = Math.abs(coeff % 2) === 1 ? (coeff + 1) / 2 : coeff / 2;
29
+ const sin = mainTrigoValues
30
+ .find((v) => v.degree === identifiers.degree)
31
+ .sin.evaluate({});
32
+ const values = (Math.abs(coeff % 2) === 1 ? mainTrigoValues : trigoValuesOnZeroTwoPIOF).filter((v) => v.sin.evaluate({}) === sin);
33
+ if (values.length === 1) {
34
+ const value = values[0];
35
+ const newValue = new AddNode(value.angle, new MultiplyNode((turnsToAdd * 2).toTree(), PiNode)).simplify();
36
+ return (new EquationSolutionNode(new DiscreteSetNode([newValue])).toTex() +
37
+ ` turns ${turnsToAdd}, value : ${value.angle.toTex()}`);
38
+ }
39
+ else {
40
+ const newValues = values.map((v) => {
41
+ return new AddNode(v.angle, new MultiplyNode((turnsToAdd * 2).toTree(), PiNode)).simplify();
42
+ });
43
+ return (new EquationSolutionNode(new DiscreteSetNode(newValues.sort((a, b) => a.evaluate({}) - b.evaluate({})))).toTex() +
44
+ ` turns ${turnsToAdd}, values: ${values.map((v) => v.angle.toTex())}`);
45
+ }
46
+ };
47
+ const getInstruction = ({ degree, leftBoundPiMultiple, }) => {
48
+ const value = mainPositiveTrigovalues.find((v) => v.degree === degree);
49
+ const leftBound = new MultiplyNode(leftBoundPiMultiple.toTree(), PiNode).simplify();
50
+ const rightBound = new MultiplyNode((leftBoundPiMultiple + 2).toTree(), PiNode).simplify();
51
+ const interval = new IntervalNode(leftBound, rightBound, ClosureType.OF);
52
+ return `Résoudre sur $${interval.toTex()}$ l'équation :
53
+
54
+ $$
55
+ ${new SinNode("x".toTree()).toTex()}=${value.sin.toTex()}
56
+ $$`;
57
+ };
58
+ // const getHint: GetHint<Identifiers> = (identifiers) => {
59
+ // return "";
60
+ // };
61
+ // const getCorrection: GetCorrection<Identifiers> = (identifiers) => {
62
+ // return "";
63
+ // };
64
+ const getKeys = () => {
65
+ return ["pi"];
66
+ };
67
+ const isAnswerValid = () => {
68
+ throw Error("VEA not implemented");
69
+ };
70
+ const getEquationSinOnRandomIntervalQuestion = () => {
71
+ const value = random(mainPositiveTrigovalues);
72
+ const degree = value.degree;
73
+ const leftBoundPiMultiple = randint(-3, 4);
74
+ const identifiers = { degree, leftBoundPiMultiple };
75
+ return getQuestionFromIdentifiers(identifiers);
76
+ };
77
+ const getQuestionFromIdentifiers = (identifiers) => {
78
+ const question = {
79
+ answer: getAnswer(identifiers),
80
+ instruction: getInstruction(identifiers),
81
+ keys: getKeys(identifiers),
82
+ answerFormat: "tex",
83
+ identifiers,
84
+ // hint: getHint(identifiers),
85
+ // correction: getCorrection(identifiers),
86
+ };
87
+ return question;
88
+ };
89
+ export const equationSinOnRandomInterval = {
90
+ id: "equationSinOnRandomInterval",
91
+ connector: "\\iff",
92
+ label: "Résoudre une équation du type $\\sin\\left(x\\right)=k$ sur un intervalle donné",
93
+ isSingleStep: true,
94
+ generator: (nb) => getDistinctQuestions(getEquationSinOnRandomIntervalQuestion, nb),
95
+ qcmTimer: 60,
96
+ freeTimer: 60,
97
+ getPropositions,
98
+ isAnswerValid,
99
+ subject: "Mathématiques",
100
+ getQuestionFromIdentifiers,
101
+ };
@@ -0,0 +1,6 @@
1
+ export * from "./basicEquationCos.js";
2
+ export * from "./basicEquationSin.js";
3
+ export * from "./basicTrigoSystemEquation.js";
4
+ export * from "./equationCosOnRandomInterval.js";
5
+ export * from "./trigoAssociateAngle.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./basicEquationCos.js";
2
+ export * from "./basicEquationSin.js";
3
+ export * from "./basicTrigoSystemEquation.js";
4
+ export * from "./equationCosOnRandomInterval.js";
5
+ // export * from "./equationSinOnRandomInterval.js";
6
+ export * from "./trigoAssociateAngle.js";
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ type Identifiers = {
3
+ isCos: boolean;
4
+ value: number;
5
+ associateType: number;
6
+ };
7
+ export declare const trigoAssociateAngle: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=trigoAssociateAngle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigoAssociateAngle.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/trigonometry/functions/trigoAssociateAngle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAeT,MAAM,6BAA6B,CAAC;AAgBrC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAsIF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAmBrD,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, propWhile, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { numberVEA } from "../../../../exercises/vea/numberVEA.js";
4
+ import { mainTrigoValues } from "../../../../math/trigonometry/remarkableValues.js";
5
+ import { randfloat } from "../../../../math/utils/random/randfloat.js";
6
+ import { randint } from "../../../../math/utils/random/randint.js";
7
+ import { cos } from "../../../../tree/nodes/functions/cosNode.js";
8
+ import { opposite } from "../../../../tree/nodes/functions/oppositeNode.js";
9
+ import { sin } from "../../../../tree/nodes/functions/sinNode.js";
10
+ import { PiNode } from "../../../../tree/nodes/numbers/piNode.js";
11
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
12
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
13
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
14
+ import { random } from "../../../../utils/alea/random.js";
15
+ import { handleVEAError } from "../../../../utils/errors/handleVEAError.js";
16
+ const getPropositions = (n, { answer, value }) => {
17
+ const propositions = [];
18
+ addValidProp(propositions, answer);
19
+ tryToAddWrongProp(propositions, value.frenchify());
20
+ tryToAddWrongProp(propositions, (-value).frenchify());
21
+ tryToAddWrongProp(propositions, random(mainTrigoValues).cos.toTex());
22
+ propWhile(propositions, n, () => {
23
+ tryToAddWrongProp(propositions, randfloat(-1, 1, 1).frenchify());
24
+ });
25
+ return shuffleProps(propositions, n);
26
+ };
27
+ const getAnswer = (identifiers) => {
28
+ const { isCos, value, associateType } = identifiers;
29
+ switch (associateType) {
30
+ case 0:
31
+ return isCos ? value.frenchify() : (-value).frenchify();
32
+ case 1:
33
+ return isCos ? (-value).frenchify() : value.frenchify();
34
+ case 2:
35
+ default:
36
+ return (-value).frenchify();
37
+ }
38
+ };
39
+ const getAssociateAngle = (identifiers) => {
40
+ switch (identifiers.associateType) {
41
+ case 0:
42
+ return opposite("a");
43
+ case 1:
44
+ return substract(PiNode, "a");
45
+ case 2:
46
+ default:
47
+ return add(PiNode, "a");
48
+ }
49
+ };
50
+ const getInstruction = (identifiers) => {
51
+ const { isCos, value } = identifiers;
52
+ const fc = isCos ? cos : sin;
53
+ return `On considère un nombre réel $a$ tel que :
54
+
55
+ $$
56
+ ${fc("a").toTex()} \\approx ${value.frenchify()}
57
+ $$
58
+
59
+ Donner une valeur approchée de $${fc(getAssociateAngle(identifiers)).toTex()}$.
60
+ `;
61
+ };
62
+ const getHint = (identifiers) => {
63
+ const { associateType } = identifiers;
64
+ switch (associateType) {
65
+ case 0:
66
+ return `Sur le cercle trigonométrique, le point image de $-a$ est le symétrique du point image de $a$ par rapport à l'axe des abscisses.`;
67
+ case 1:
68
+ return `Sur le cercle trigonométrique, le point image de $\\pi-a$ est le symétrique du point image de $a$ par rapport à l'axe des ordonnées.`;
69
+ case 2:
70
+ default:
71
+ return `Sur le cercle trigonométrique, le point image de $\\pi+a$ est le symétrique du point image de $a$ par rapport à l'origine du repère.`;
72
+ }
73
+ };
74
+ const getCorrection = (identifiers) => {
75
+ const { associateType, isCos } = identifiers;
76
+ const fc = isCos ? cos : sin;
77
+ const answer = getAnswer(identifiers);
78
+ const associate = getAssociateAngle(identifiers).toTex();
79
+ switch (associateType) {
80
+ case 0:
81
+ return `Sur le cercle trigonométrique, le point image de $-a$ est le symétrique du point image de $a$ par rapport à l'axe des abscisses. On a donc :
82
+
83
+ $$
84
+ ${fc(associate).toTex()} = ${isCos ? "" : "-"}${fc("a").toTex()} \\approx ${answer}
85
+ $$`;
86
+ case 1:
87
+ return `Sur le cercle trigonométrique, le point image de $\\pi-a$ est le symétrique du point image de $a$ par rapport à l'axe des ordonnées. On a donc :
88
+
89
+ $$
90
+ ${fc(associate).toTex()} = ${isCos ? "-" : ""}${fc("a").toTex()} \\approx ${answer}
91
+ $$`;
92
+ case 2:
93
+ default:
94
+ return `Sur le cercle trigonométrique, le point image de $\\pi+a$ est le symétrique du point image de $a$ par rapport à l'origine du repère. On a donc :
95
+
96
+ $$
97
+ ${fc(associate).toTex()} = -${fc("a").toTex()} \\approx ${answer}
98
+ $$`;
99
+ }
100
+ };
101
+ const getKeys = () => {
102
+ return [];
103
+ };
104
+ const isAnswerValid = (ans, { answer }) => {
105
+ try {
106
+ return numberVEA(ans, answer);
107
+ }
108
+ catch (err) {
109
+ return handleVEAError(err);
110
+ }
111
+ };
112
+ const getTrigoAssociateAngleQuestion = () => {
113
+ const isCos = coinFlip();
114
+ const associateType = randint(0, 3);
115
+ const value = randfloat(-1, 1, 1);
116
+ const identifiers = {
117
+ associateType,
118
+ isCos,
119
+ value,
120
+ };
121
+ return getQuestionFromIdentifiers(identifiers);
122
+ };
123
+ const getQuestionFromIdentifiers = (identifiers) => {
124
+ return {
125
+ answer: getAnswer(identifiers),
126
+ instruction: getInstruction(identifiers),
127
+ keys: getKeys(identifiers),
128
+ answerFormat: "tex",
129
+ identifiers,
130
+ hint: getHint(identifiers),
131
+ correction: getCorrection(identifiers),
132
+ };
133
+ };
134
+ export const trigoAssociateAngle = {
135
+ id: "trigoAssociateAngle",
136
+ connector: "=",
137
+ label: "Déterminer le cosinus ou le sinus d'un angle associé (opposé, supplémentaire, ou anti-supplémentaire)",
138
+ isSingleStep: true,
139
+ generator: (nb, opts) => getDistinctQuestions(() => getTrigoAssociateAngleQuestion(opts), nb),
140
+ qcmTimer: 60,
141
+ freeTimer: 60,
142
+ getPropositions,
143
+ isAnswerValid,
144
+ subject: "Mathématiques",
145
+ getInstruction,
146
+ getHint,
147
+ getCorrection,
148
+ getAnswer,
149
+ getQuestionFromIdentifiers,
150
+ hasHintAndCorrection: true,
151
+ };
@@ -1,20 +1,9 @@
1
- export * from "./mainRemarkableValues.js";
2
- export * from "./remarkableValues.js";
3
- export * from "./trigonometry.js";
4
- export * from "./trigonometryAngleCalcul.js";
5
- export * from "./trigonometrySideCalcul.js";
6
- export * from "./associatePoint.js";
1
+ export * from "./circle/index.js";
7
2
  export * from "./arcValue.js";
8
3
  export * from "./calculateCosSinAndTan.js";
9
- export * from "./basicEquationCos.js";
10
- export * from "./basicEquationSin.js";
11
- export * from "./basicTrigoSystemEquation.js";
12
- export * from "./mainAngleMeasure.js";
4
+ export * from "./functions/index.js";
13
5
  export * from "./degreeToRadians.js";
14
6
  export * from "./arcLength.js";
15
- export * from "./equationCosOnRandomInterval.js";
16
7
  export * from "./trigoFundamentalEquation.js";
17
- export * from "./trigonometrySohcahtoaCalcul.js";
18
- export * from "./trigonometrySideName.js";
19
- export * from "./trigonometrySohcahtoaUse.js";
8
+ export * from "./triangle/index.js";
20
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exercises/math/trigonometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}