math-exercises 3.0.157 → 3.0.159

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 (444) 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 +445 -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 +371 -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/equation/factorizeEquation.d.ts.map +1 -1
  16. package/lib/exercises/math/calculLitteral/equation/factorizeEquation.js +8 -2
  17. package/lib/exercises/math/calculLitteral/equation/index.d.ts +1 -0
  18. package/lib/exercises/math/calculLitteral/equation/index.d.ts.map +1 -1
  19. package/lib/exercises/math/calculLitteral/equation/index.js +1 -0
  20. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.d.ts.map +1 -1
  21. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.js +27 -2
  22. package/lib/exercises/math/calculLitteral/equation/solveByFactorizingWithIdRmq3.d.ts.map +1 -1
  23. package/lib/exercises/math/calculLitteral/equation/solveByFactorizingWithIdRmq3.js +0 -1
  24. package/lib/exercises/math/calculLitteral/equation/square/equationSquareWithSteps.d.ts.map +1 -1
  25. package/lib/exercises/math/calculLitteral/equation/square/equationSquareWithSteps.js +0 -1
  26. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts +18 -0
  27. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts.map +1 -0
  28. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.js +444 -0
  29. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts +2 -0
  30. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts.map +1 -0
  31. package/lib/exercises/math/calculLitteral/inequations/exp/index.js +1 -0
  32. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.d.ts.map +1 -1
  33. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.js +11 -5
  34. package/lib/exercises/math/calculLitteral/inequations/index.d.ts +1 -0
  35. package/lib/exercises/math/calculLitteral/inequations/index.d.ts.map +1 -1
  36. package/lib/exercises/math/calculLitteral/inequations/index.js +1 -0
  37. package/lib/exercises/math/derivation/derivative/exp/expDerivativeFour.d.ts.map +1 -1
  38. package/lib/exercises/math/derivation/derivative/exp/expDerivativeFour.js +91 -21
  39. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.d.ts.map +1 -1
  40. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.js +64 -15
  41. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.d.ts.map +1 -1
  42. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.js +71 -15
  43. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.d.ts.map +1 -1
  44. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.js +36 -17
  45. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts +10 -0
  46. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts.map +1 -0
  47. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.js +294 -0
  48. package/lib/exercises/math/derivation/derivative/exp/index.d.ts +1 -0
  49. package/lib/exercises/math/derivation/derivative/exp/index.d.ts.map +1 -1
  50. package/lib/exercises/math/derivation/derivative/exp/index.js +1 -0
  51. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.d.ts.map +1 -1
  52. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.js +30 -2
  53. package/lib/exercises/math/derivation/derivative/productDerivative.d.ts.map +1 -1
  54. package/lib/exercises/math/derivation/derivative/productDerivative.js +68 -1
  55. package/lib/exercises/math/derivation/derivative/quotientDerivative.d.ts.map +1 -1
  56. package/lib/exercises/math/derivation/derivative/quotientDerivative.js +40 -4
  57. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.d.ts.map +1 -1
  58. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.js +30 -3
  59. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts +12 -0
  60. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts.map +1 -0
  61. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.js +127 -0
  62. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts +13 -0
  63. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts.map +1 -0
  64. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.js +161 -0
  65. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts +11 -0
  66. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts.map +1 -0
  67. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.js +116 -0
  68. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts +8 -0
  69. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts.map +1 -0
  70. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.js +142 -0
  71. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts +4 -0
  72. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts.map +1 -0
  73. package/lib/exercises/math/derivation/derivativeNumber/index.js +4 -0
  74. package/lib/exercises/math/derivation/index.d.ts +1 -1
  75. package/lib/exercises/math/derivation/index.js +1 -1
  76. package/lib/exercises/math/derivation/variations/index.d.ts +1 -0
  77. package/lib/exercises/math/derivation/variations/index.d.ts.map +1 -1
  78. package/lib/exercises/math/derivation/variations/index.js +1 -0
  79. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.d.ts +7 -0
  80. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.d.ts.map +1 -0
  81. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.js +174 -0
  82. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts +13 -0
  83. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts.map +1 -0
  84. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.js +305 -0
  85. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts +11 -0
  86. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts.map +1 -0
  87. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.js +216 -0
  88. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts +9 -0
  89. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts.map +1 -0
  90. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.js +142 -0
  91. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts +5 -0
  92. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts.map +1 -0
  93. package/lib/exercises/math/functions/exponential/algebraic/index.js +4 -0
  94. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts +14 -0
  95. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts.map +1 -0
  96. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.js +337 -0
  97. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts +11 -0
  98. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts.map +1 -0
  99. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.js +223 -0
  100. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts +9 -0
  101. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts.map +1 -0
  102. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.js +262 -0
  103. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts +9 -0
  104. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts.map +1 -0
  105. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.js +245 -0
  106. package/lib/exercises/math/functions/exponential/definition/index.d.ts +5 -0
  107. package/lib/exercises/math/functions/exponential/definition/index.d.ts.map +1 -0
  108. package/lib/exercises/math/functions/exponential/definition/index.js +4 -0
  109. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts +13 -0
  110. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts.map +1 -0
  111. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.js +366 -0
  112. package/lib/exercises/math/functions/exponential/expFactorization.d.ts.map +1 -1
  113. package/lib/exercises/math/functions/exponential/expFactorization.js +54 -42
  114. package/lib/exercises/math/functions/exponential/index.d.ts +2 -0
  115. package/lib/exercises/math/functions/exponential/index.d.ts.map +1 -1
  116. package/lib/exercises/math/functions/exponential/index.js +2 -0
  117. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.d.ts.map +1 -1
  118. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.js +30 -3
  119. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.d.ts.map +1 -1
  120. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.js +35 -1
  121. package/lib/exercises/math/functions/trinoms/equation/secondDegreeInequation.js +3 -0
  122. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.d.ts.map +1 -1
  123. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.js +1 -1
  124. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.d.ts.map +1 -1
  125. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.js +23 -1
  126. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.d.ts.map +1 -1
  127. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.js +29 -0
  128. package/lib/exercises/math/functions/variations/exp/index.d.ts +3 -0
  129. package/lib/exercises/math/functions/variations/exp/index.d.ts.map +1 -0
  130. package/lib/exercises/math/functions/variations/exp/index.js +2 -0
  131. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts +9 -0
  132. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts.map +1 -0
  133. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.js +96 -0
  134. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts +11 -0
  135. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts.map +1 -0
  136. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.js +190 -0
  137. package/lib/exercises/math/functions/variations/index.d.ts +1 -0
  138. package/lib/exercises/math/functions/variations/index.d.ts.map +1 -1
  139. package/lib/exercises/math/functions/variations/index.js +1 -0
  140. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.d.ts +12 -0
  141. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.d.ts.map +1 -0
  142. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.js +230 -0
  143. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.d.ts +10 -0
  144. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.d.ts.map +1 -0
  145. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.js +167 -0
  146. package/lib/exercises/math/geometry/cartesian/index.d.ts +3 -0
  147. package/lib/exercises/math/geometry/cartesian/index.d.ts.map +1 -1
  148. package/lib/exercises/math/geometry/cartesian/index.js +3 -0
  149. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.d.ts +10 -0
  150. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.d.ts.map +1 -0
  151. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.js +131 -0
  152. package/lib/exercises/math/geometry/circles/index.d.ts +2 -0
  153. package/lib/exercises/math/geometry/circles/index.d.ts.map +1 -0
  154. package/lib/exercises/math/geometry/circles/index.js +1 -0
  155. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.d.ts +11 -0
  156. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.d.ts.map +1 -0
  157. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.js +131 -0
  158. package/lib/exercises/math/geometry/euclidian/pinPointFromAxialOrCentralSymmetry.js +2 -2
  159. package/lib/exercises/math/geometry/euclidian/pinSegmentFromRotation.d.ts.map +1 -1
  160. package/lib/exercises/math/geometry/euclidian/pinSegmentFromRotation.js +0 -2
  161. package/lib/exercises/math/geometry/index.d.ts +1 -0
  162. package/lib/exercises/math/geometry/index.d.ts.map +1 -1
  163. package/lib/exercises/math/geometry/index.js +1 -0
  164. package/lib/exercises/math/geometry/thales/thales.js +1 -1
  165. package/lib/exercises/math/geometry/thales/thalesCalcul.js +1 -1
  166. package/lib/exercises/math/geometry/vectors/colinearity/determinant.js +1 -1
  167. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.d.ts +4 -0
  168. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.d.ts.map +1 -0
  169. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.js +3 -0
  170. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.d.ts +9 -0
  171. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.d.ts.map +1 -0
  172. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.js +247 -0
  173. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.d.ts +13 -0
  174. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.d.ts.map +1 -0
  175. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.js +452 -0
  176. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.d.ts +9 -0
  177. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.d.ts.map +1 -0
  178. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.js +253 -0
  179. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.d.ts +4 -0
  180. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.d.ts.map +1 -0
  181. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.js +3 -0
  182. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.d.ts +10 -0
  183. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.d.ts.map +1 -0
  184. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.js +174 -0
  185. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.d.ts +9 -0
  186. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.d.ts.map +1 -0
  187. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.js +231 -0
  188. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.d.ts +14 -0
  189. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.d.ts.map +1 -0
  190. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.js +292 -0
  191. package/lib/exercises/math/geometry/vectors/scalarProduct/angleFromScalarProduct.js +1 -1
  192. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.d.ts.map +1 -1
  193. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.js +33 -7
  194. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.d.ts +6 -0
  195. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.d.ts.map +1 -0
  196. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.js +5 -0
  197. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.d.ts +9 -0
  198. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.d.ts.map +1 -0
  199. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.js +202 -0
  200. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.d.ts +9 -0
  201. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.d.ts.map +1 -0
  202. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.js +127 -0
  203. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.d.ts +12 -0
  204. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.d.ts.map +1 -0
  205. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.js +167 -0
  206. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.d.ts +12 -0
  207. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.d.ts.map +1 -0
  208. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.js +180 -0
  209. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.d.ts +12 -0
  210. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.d.ts.map +1 -0
  211. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.js +235 -0
  212. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.d.ts +12 -0
  213. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.d.ts.map +1 -0
  214. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.js +423 -0
  215. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.d.ts +17 -0
  216. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.d.ts.map +1 -0
  217. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.js +347 -0
  218. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.d.ts +8 -0
  219. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.d.ts.map +1 -0
  220. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.js +301 -0
  221. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCoords.js +1 -1
  222. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.d.ts.map +1 -1
  223. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.js +38 -1
  224. package/lib/exercises/math/probaStat/conditionalProbability.d.ts +4 -1
  225. package/lib/exercises/math/probaStat/conditionalProbability.d.ts.map +1 -1
  226. package/lib/exercises/math/probaStat/conditionalProbability.js +38 -5
  227. package/lib/exercises/math/probaStat/independancy/independancy.d.ts +9 -0
  228. package/lib/exercises/math/probaStat/independancy/independancy.d.ts.map +1 -0
  229. package/lib/exercises/math/probaStat/independancy/independancy.js +114 -0
  230. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts +9 -0
  231. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts.map +1 -0
  232. package/lib/exercises/math/probaStat/independancy/independancyFindCap.js +101 -0
  233. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts +9 -0
  234. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts.map +1 -0
  235. package/lib/exercises/math/probaStat/independancy/independancyFindCup.js +118 -0
  236. package/lib/exercises/math/probaStat/independancy/index.d.ts +5 -0
  237. package/lib/exercises/math/probaStat/independancy/index.d.ts.map +1 -0
  238. package/lib/exercises/math/probaStat/independancy/index.js +4 -0
  239. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts +10 -0
  240. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts.map +1 -0
  241. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.js +106 -0
  242. package/lib/exercises/math/probaStat/index.d.ts +1 -1
  243. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  244. package/lib/exercises/math/probaStat/index.js +1 -1
  245. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.d.ts +9 -0
  246. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.d.ts.map +1 -0
  247. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.js +141 -0
  248. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.d.ts +10 -0
  249. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.d.ts.map +1 -0
  250. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.js +174 -0
  251. package/lib/exercises/math/probaStat/randomVariable/index.d.ts +1 -0
  252. package/lib/exercises/math/probaStat/randomVariable/index.d.ts.map +1 -1
  253. package/lib/exercises/math/probaStat/randomVariable/index.js +2 -0
  254. package/lib/exercises/math/probaStat/randomVariable/randomVariableStandardDeviation.js +1 -1
  255. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.d.ts.map +1 -1
  256. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.js +7 -0
  257. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.d.ts.map +1 -1
  258. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.js +7 -0
  259. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.d.ts.map +1 -1
  260. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.js +7 -0
  261. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.d.ts.map +1 -1
  262. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.js +7 -0
  263. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts +9 -0
  264. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts.map +1 -0
  265. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.js +118 -0
  266. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.d.ts.map +1 -1
  267. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.js +55 -6
  268. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.d.ts.map +1 -1
  269. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.js +42 -1
  270. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts +4 -1
  271. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts.map +1 -1
  272. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.js +57 -7
  273. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts.map +1 -1
  274. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +24 -2
  275. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.d.ts.map +1 -1
  276. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.js +31 -8
  277. package/lib/exercises/math/sequences/arithmetic/index.d.ts +1 -1
  278. package/lib/exercises/math/sequences/arithmetic/index.d.ts.map +1 -1
  279. package/lib/exercises/math/sequences/arithmetic/index.js +1 -1
  280. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -1
  281. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +11 -1
  282. package/lib/exercises/math/sequences/generation/index.d.ts +2 -0
  283. package/lib/exercises/math/sequences/generation/index.d.ts.map +1 -0
  284. package/lib/exercises/math/sequences/generation/index.js +1 -0
  285. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.d.ts +8 -0
  286. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.d.ts.map +1 -0
  287. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.js +63 -0
  288. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstRankOne.js +5 -5
  289. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.d.ts.map +1 -1
  290. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.js +3 -1
  291. package/lib/exercises/math/sequences/geometric/geometricFindReason.d.ts.map +1 -1
  292. package/lib/exercises/math/sequences/geometric/geometricFindReason.js +41 -2
  293. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts.map +1 -1
  294. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.js +28 -2
  295. package/lib/exercises/math/sequences/graph/index.d.ts +2 -0
  296. package/lib/exercises/math/sequences/graph/index.d.ts.map +1 -0
  297. package/lib/exercises/math/sequences/graph/index.js +1 -0
  298. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.d.ts +11 -0
  299. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.d.ts.map +1 -0
  300. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.js +113 -0
  301. package/lib/exercises/math/sequences/index.d.ts +2 -0
  302. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  303. package/lib/exercises/math/sequences/index.js +2 -0
  304. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.d.ts +12 -0
  305. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.d.ts.map +1 -0
  306. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.js +114 -0
  307. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.d.ts +12 -0
  308. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.d.ts.map +1 -0
  309. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.js +111 -0
  310. package/lib/exercises/math/sequences/notation/index.d.ts +3 -0
  311. package/lib/exercises/math/sequences/notation/index.d.ts.map +1 -0
  312. package/lib/exercises/math/sequences/notation/index.js +2 -0
  313. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts.map +1 -1
  314. package/lib/exercises/math/sequences/sequenceEvaluation.js +22 -2
  315. package/lib/exercises/math/spaceGeometry/basis/findSpacePointOnRectangularPrism.d.ts.map +1 -1
  316. package/lib/exercises/math/spaceGeometry/basis/findSpacePointOnRectangularPrism.js +0 -1
  317. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.d.ts.map +1 -1
  318. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.js +0 -2
  319. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts +9 -0
  320. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts.map +1 -0
  321. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.js +107 -0
  322. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts +10 -0
  323. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts.map +1 -0
  324. package/lib/exercises/math/trigonometry/circle/associatePoint.js +86 -0
  325. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts +10 -0
  326. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts.map +1 -0
  327. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.js +205 -0
  328. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts +7 -0
  329. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts.map +1 -0
  330. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.js +121 -0
  331. package/lib/exercises/math/trigonometry/circle/index.d.ts +7 -0
  332. package/lib/exercises/math/trigonometry/circle/index.d.ts.map +1 -0
  333. package/lib/exercises/math/trigonometry/circle/index.js +7 -0
  334. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts +10 -0
  335. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts.map +1 -0
  336. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.js +100 -0
  337. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts +8 -0
  338. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts.map +1 -0
  339. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.js +97 -0
  340. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts +10 -0
  341. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts.map +1 -0
  342. package/lib/exercises/math/trigonometry/circle/remarkableValues.js +112 -0
  343. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts +7 -0
  344. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts.map +1 -0
  345. package/lib/exercises/math/trigonometry/functions/basicEquationCos.js +92 -0
  346. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts +7 -0
  347. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts.map +1 -0
  348. package/lib/exercises/math/trigonometry/functions/basicEquationSin.js +104 -0
  349. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts +7 -0
  350. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts.map +1 -0
  351. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.js +83 -0
  352. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts +8 -0
  353. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts.map +1 -0
  354. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.js +111 -0
  355. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts +8 -0
  356. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts.map +1 -0
  357. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.js +101 -0
  358. package/lib/exercises/math/trigonometry/functions/index.d.ts +6 -0
  359. package/lib/exercises/math/trigonometry/functions/index.d.ts.map +1 -0
  360. package/lib/exercises/math/trigonometry/functions/index.js +6 -0
  361. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts +9 -0
  362. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts.map +1 -0
  363. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.js +151 -0
  364. package/lib/exercises/math/trigonometry/index.d.ts +3 -14
  365. package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
  366. package/lib/exercises/math/trigonometry/index.js +3 -14
  367. package/lib/exercises/math/trigonometry/triangle/index.d.ts +7 -0
  368. package/lib/exercises/math/trigonometry/triangle/index.d.ts.map +1 -0
  369. package/lib/exercises/math/trigonometry/triangle/index.js +6 -0
  370. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts +10 -0
  371. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts.map +1 -0
  372. package/lib/exercises/math/trigonometry/triangle/trigonometry.js +207 -0
  373. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts +10 -0
  374. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts.map +1 -0
  375. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.js +174 -0
  376. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts +11 -0
  377. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts.map +1 -0
  378. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.js +224 -0
  379. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts +13 -0
  380. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts.map +1 -0
  381. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.js +189 -0
  382. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts +13 -0
  383. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts.map +1 -0
  384. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.js +290 -0
  385. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts +18 -0
  386. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts.map +1 -0
  387. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.js +386 -0
  388. package/lib/exercises/pc/mathExosInPC.d.ts +2 -2
  389. package/lib/exercises/pc/mathExosInPC.d.ts.map +1 -1
  390. package/lib/exercises/pc/mathExosInPC.js +2 -2
  391. package/lib/exercises/vea/cartesianLineVEA.d.ts +2 -0
  392. package/lib/exercises/vea/cartesianLineVEA.d.ts.map +1 -0
  393. package/lib/exercises/vea/cartesianLineVEA.js +1 -0
  394. package/lib/index.d.ts +186 -27
  395. package/lib/index.d.ts.map +1 -1
  396. package/lib/math/geometry/line.d.ts +2 -0
  397. package/lib/math/geometry/line.d.ts.map +1 -1
  398. package/lib/math/geometry/line.js +7 -0
  399. package/lib/math/geometry/point.d.ts +1 -0
  400. package/lib/math/geometry/point.d.ts.map +1 -1
  401. package/lib/math/geometry/point.js +5 -0
  402. package/lib/math/geometry/polygons/relationPP.d.ts +8 -0
  403. package/lib/math/geometry/polygons/relationPP.d.ts.map +1 -0
  404. package/lib/math/geometry/polygons/relationPP.js +41 -0
  405. package/lib/math/geometry/segment.d.ts +1 -1
  406. package/lib/math/geometry/vector.d.ts +2 -1
  407. package/lib/math/geometry/vector.d.ts.map +1 -1
  408. package/lib/math/geometry/vector.js +1 -1
  409. package/lib/math/numbers/reals/real.d.ts.map +1 -1
  410. package/lib/math/numbers/reals/real.js +2 -0
  411. package/lib/math/polynomials/trinom.d.ts +1 -1
  412. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  413. package/lib/math/polynomials/trinom.js +15 -6
  414. package/lib/math/utils/arithmetic/primeFactors.js +1 -1
  415. package/lib/math/utils/geometry/randomVecs2.d.ts +6 -0
  416. package/lib/math/utils/geometry/randomVecs2.d.ts.map +1 -0
  417. package/lib/math/utils/geometry/randomVecs2.js +34 -0
  418. package/lib/playground.d.ts.map +1 -1
  419. package/lib/playground.js +3 -1
  420. package/lib/tests/questionTest.d.ts.map +1 -1
  421. package/lib/tests/questionTest.js +2 -2
  422. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  423. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  424. package/lib/tree/nodes/equations/equationSolutionNode.d.ts +1 -0
  425. package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
  426. package/lib/tree/nodes/equations/equationSolutionNode.js +3 -0
  427. package/lib/tree/nodes/functions/expNode.d.ts +1 -1
  428. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  429. package/lib/tree/nodes/functions/sqrtNode.d.ts +2 -1
  430. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  431. package/lib/tree/nodes/functions/sqrtNode.js +17 -6
  432. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +1 -0
  433. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  434. package/lib/tree/nodes/inequations/inequationSolutionNode.js +3 -0
  435. package/lib/tree/nodes/operators/fractionNode.d.ts +1 -1
  436. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  437. package/lib/tree/nodes/operators/fractionNode.js +6 -4
  438. package/lib/tree/nodes/operators/multiplyNode.js +1 -1
  439. package/lib/tree/nodes/sets/intervalNode.d.ts +6 -0
  440. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  441. package/lib/tree/nodes/sets/namedIntervalNode.d.ts +31 -0
  442. package/lib/tree/nodes/sets/namedIntervalNode.d.ts.map +1 -0
  443. package/lib/tree/nodes/sets/namedIntervalNode.js +77 -0
  444. package/package.json +1 -1
@@ -0,0 +1,452 @@
1
+ import { addValidProp, shuffleProps, tryToAddWrongProp, propWhile, GeneratorOptionTarget, GeneratorOptionType, } from "../../../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { greenMain, orange } from "../../../../../../geogebra/colors.js";
4
+ import { GeogebraConstructor } from "../../../../../../geogebra/geogebraConstructor.js";
5
+ import { Angle } from "../../../../../../math/geometry/angle.js";
6
+ import { Point, PointConstructor, } from "../../../../../../math/geometry/point.js";
7
+ import { relationPP } from "../../../../../../math/geometry/polygons/relationPP.js";
8
+ import { Segment } from "../../../../../../math/geometry/segment.js";
9
+ import { Triangle, TriangleConstructor, } from "../../../../../../math/geometry/triangles/triangle.js";
10
+ import { VectorConstructor } from "../../../../../../math/geometry/vector.js";
11
+ import { randfloat } from "../../../../../../math/utils/random/randfloat.js";
12
+ import { round } from "../../../../../../math/utils/round.js";
13
+ import { abs } from "../../../../../../tree/nodes/functions/absNode.js";
14
+ import { arccos } from "../../../../../../tree/nodes/functions/arccosNode.js";
15
+ import { sin } from "../../../../../../tree/nodes/functions/sinNode.js";
16
+ import { sqrt } from "../../../../../../tree/nodes/functions/sqrtNode.js";
17
+ import { add } from "../../../../../../tree/nodes/operators/addNode.js";
18
+ import { frac } from "../../../../../../tree/nodes/operators/fractionNode.js";
19
+ import { multiply } from "../../../../../../tree/nodes/operators/multiplyNode.js";
20
+ import { power } from "../../../../../../tree/nodes/operators/powerNode.js";
21
+ import { substract } from "../../../../../../tree/nodes/operators/substractNode.js";
22
+ import { parseAlgebraic } from "../../../../../../tree/parsers/latexParser.js";
23
+ import { probaFlip } from "../../../../../../utils/alea/probaFlip.js";
24
+ import { random } from "../../../../../../utils/alea/random.js";
25
+ import { zip } from "../../../../../../utils/arrays/arrayZip.js";
26
+ import { arrayRotation } from "../../../../../../utils/arrays/rotation.js";
27
+ import { handleVEAError } from "../../../../../../utils/errors/handleVEAError.js";
28
+ const precision = 2;
29
+ const getHydrated = (identifiers) => {
30
+ const { triangleIds, pointIdsH } = identifiers;
31
+ const triangle = TriangleConstructor.fromIdentifiers(triangleIds);
32
+ const indexAngle = 1; //B
33
+ const sides = arrayRotation(triangle.sides, indexAngle);
34
+ const sideLengths = sides.map((segment) => round(segment.getLengthNode().evaluate(), precision));
35
+ const angleNames = arrayRotation(triangle.angles, indexAngle).map((angle) => angle.toTexMini());
36
+ const pointH = PointConstructor.fromIdentifiers(pointIdsH);
37
+ return {
38
+ triangle,
39
+ sides,
40
+ sideLengths,
41
+ angleNames,
42
+ pointH,
43
+ };
44
+ };
45
+ const getInstruction = (identifiers) => {
46
+ const { triangle, sides, sideLengths } = getHydrated(identifiers);
47
+ return `Soit $${triangle.name}$ un triangle dont on connaît les longueurs des côtés :
48
+
49
+ ${zip(sides, sideLengths).map(([segment, valueLength]) => `- $${segment.toInsideName()} = ${valueLength.frenchify()}$`).join(`
50
+
51
+ `)}
52
+
53
+ Combien le segment $BH$ mesure-t-il ?
54
+ Donner une valeur approchée en degrés avec $${precision}$ décimales.`;
55
+ };
56
+ const getAnswerStuff = (identifiers) => {
57
+ const { sideLengths } = getHydrated(identifiers);
58
+ const nodeCosAngle = frac(substract(add(power(sideLengths[1], 2), power(sideLengths[2], 2)), power(sideLengths[0], 2)), multiply(2, multiply(sideLengths[1], sideLengths[2])));
59
+ const nodeLengthBA = sideLengths[1];
60
+ const nodeLengthBH = multiply(nodeLengthBA, abs(nodeCosAngle));
61
+ return {
62
+ nodeCosAngle,
63
+ nodeLengthBH,
64
+ };
65
+ };
66
+ const getAnswerNode = (identifiers) => {
67
+ return getAnswerStuff(identifiers).nodeLengthBH;
68
+ };
69
+ const getAnswer = (identifiers) => {
70
+ return round(getAnswerNode(identifiers).evaluate(), precision).frenchify();
71
+ };
72
+ const getHint = () => {
73
+ return `Applique le théorème d'Al Kashi dans le triangle $ABC$ pour l'angle $\\widehat{B}$.
74
+
75
+ Ensuite, calcule $\\overrightarrow{BA} \\cdot \\overrightarrow{BC}$ de deux manières différentes.`;
76
+ };
77
+ const getCorrection = (identifiers) => {
78
+ const { sides, angleNames } = getHydrated(identifiers);
79
+ const sideNames = sides
80
+ .map((segment) => segment.toInsideName())
81
+ .map((name) => {
82
+ return {
83
+ AB: "c",
84
+ AC: "b",
85
+ BC: "a",
86
+ }[name];
87
+ });
88
+ const nodeCosAngle = frac(substract(add(power(sideNames[1], 2), power(sideNames[2], 2)), power(sideNames[0], 2)), multiply(2, multiply(sideNames[1], sideNames[2])));
89
+ const { nodeLengthBH } = getAnswerStuff(identifiers);
90
+ return `On applique le théorème d'Al Kashi dans le triangle $ABC$.
91
+
92
+ On utilise les notations suivantes :
93
+
94
+ $$
95
+ a \\ = \\ BC \\ ; \\ b \\ = \\ AC \\ ; \\ c \\ = \\ AB \\
96
+ $$
97
+
98
+ $$
99
+ ${sideNames[0]}^2 = ${sideNames[1]}^2 + ${sideNames[2]}^2 - 2 ${sideNames[1]} ${sideNames[2]} \\cos(${angleNames[0]})
100
+ $$
101
+
102
+ $$
103
+ \\cos(${angleNames[0]}) = ${nodeCosAngle.toTex()}
104
+ $$
105
+
106
+ D'une part, par définition du produit scalaire :
107
+
108
+ $$
109
+ \\overrightarrow{BA} \\cdot \\overrightarrow{BC} = BA \\times BC \\times \\cos(${angleNames[0]})
110
+ $$
111
+
112
+ D'autre part, puisque $B$,$C$ et $H$ sont alignés :
113
+
114
+ $$
115
+ \\lvert \\overrightarrow{BH} \\cdot \\overrightarrow{BC} \\rvert = BH \\times BC
116
+ $$
117
+
118
+ On a donc :
119
+
120
+ $$
121
+ BH = BA \\times \\lvert \\cos(${angleNames[0]}) \\rvert
122
+ $$
123
+
124
+ $$
125
+ BH = ${nodeLengthBH.toTex()}
126
+ $$
127
+
128
+ On arrondit à la toute fin :
129
+
130
+ $$
131
+ BH \\approx ${getAnswer(identifiers)}
132
+ $$
133
+
134
+ `;
135
+ };
136
+ const getCorrectionGGBOptions = (identifiers) => {
137
+ const { triangle, pointH: H } = getHydrated(identifiers);
138
+ const [A, B, C] = triangle.points;
139
+ const ggb = new GeogebraConstructor({
140
+ commands: [
141
+ //triangle
142
+ ...triangle.commands,
143
+ //AH
144
+ ...H.toGGBCommand({ isFixed: true, showLabel: true }),
145
+ ...new Segment(A, H).toGGBCommands(false, {
146
+ isFixed: true,
147
+ style: 2,
148
+ color: `${orange}`,
149
+ }),
150
+ //BH
151
+ ...new Segment(B, H).toGGBCommands(false, {
152
+ isFixed: true,
153
+ style: 2,
154
+ }),
155
+ //angle
156
+ ...new Angle([A, H, C]).toCommands(),
157
+ //angle
158
+ ...new Angle([A, B, C]).toCommands({ color: greenMain }),
159
+ ],
160
+ hideAxes: true,
161
+ });
162
+ return ggb.getOptions({
163
+ coords: ggb.getCoordsForPoints([B, A, C, H]),
164
+ });
165
+ };
166
+ const getGGBOptions = (identifiers) => {
167
+ const { triangle, pointH: H } = getHydrated(identifiers);
168
+ const [A, B, C] = triangle.points;
169
+ const ggb = new GeogebraConstructor({
170
+ commands: [
171
+ //triangle
172
+ ...triangle.commands,
173
+ //AH
174
+ ...H.toGGBCommand({ isFixed: true, showLabel: true }),
175
+ ...new Segment(A, H).toGGBCommands(false, {
176
+ isFixed: true,
177
+ style: 2,
178
+ color: `${orange}`,
179
+ }),
180
+ //BH
181
+ ...new Segment(B, H).toGGBCommands(false, {
182
+ isFixed: true,
183
+ style: 2,
184
+ }),
185
+ //angle
186
+ ...new Angle([A, H, C]).toCommands(),
187
+ ],
188
+ hideAxes: true,
189
+ });
190
+ return ggb.getOptions({
191
+ coords: ggb.getCoordsForPoints([B, A, C, H]),
192
+ });
193
+ };
194
+ const getPropositions = (n, { answer, ...identifiers }) => {
195
+ const propositions = [];
196
+ addValidProp(propositions, answer);
197
+ const { sideLengths } = getHydrated(identifiers);
198
+ const [BC, BA, _] = sideLengths;
199
+ const arrValueWrong = [];
200
+ //student: sign error
201
+ {
202
+ const nodeCosAngle = frac(substract(add(power(sideLengths[1], 2), power(sideLengths[2], 2)), power(sideLengths[0], 2)), multiply(-2, multiply(sideLengths[1], sideLengths[2])));
203
+ const nodeLengthBA = sideLengths[1];
204
+ const nodeLengthBH = multiply(nodeLengthBA, abs(nodeCosAngle));
205
+ const vWrong = nodeLengthBH.evaluate();
206
+ arrValueWrong.push(vWrong);
207
+ tryToAddWrongProp(propositions, round(vWrong, precision).frenchify());
208
+ }
209
+ //student: computes AH instead of BH
210
+ {
211
+ const nodeCosAngle = frac(substract(add(power(sideLengths[1], 2), power(sideLengths[2], 2)), power(sideLengths[0], 2)), multiply(-2, multiply(sideLengths[1], sideLengths[2])));
212
+ const nodeLengthBA = sideLengths[1];
213
+ const nodeLengthAH = multiply(nodeLengthBA, abs(sin(arccos(nodeCosAngle))));
214
+ const vWrong = nodeLengthAH.evaluate();
215
+ arrValueWrong.push(vWrong);
216
+ tryToAddWrongProp(propositions, round(vWrong, precision).frenchify());
217
+ }
218
+ //student: pythagore with BA and BC
219
+ {
220
+ if (BA >= BC) {
221
+ const nodeWrong = sqrt(substract(power(BA, 2), power(BC, 2)));
222
+ const vWrong = nodeWrong.evaluate();
223
+ arrValueWrong.push(vWrong);
224
+ tryToAddWrongProp(propositions, round(vWrong, precision).frenchify());
225
+ }
226
+ }
227
+ //terror: around answer, _most of the time_
228
+ {
229
+ const value = (() => {
230
+ const vAnswer = getAnswerStuff(identifiers).nodeLengthBH.evaluate();
231
+ if (probaFlip(0.6)) {
232
+ return vAnswer;
233
+ }
234
+ else {
235
+ return random([...arrValueWrong, vAnswer]);
236
+ }
237
+ })();
238
+ [...Array(2).keys()].forEach(() => {
239
+ const valueAnswerOffsetted = value + randfloat(-1.2, 1.2, 2, [0]);
240
+ if (valueAnswerOffsetted > 0) {
241
+ tryToAddWrongProp(propositions, round(valueAnswerOffsetted, precision).frenchify());
242
+ }
243
+ });
244
+ }
245
+ propWhile(propositions, n, () => {
246
+ tryToAddWrongProp(propositions, randfloat(2, 20, 2, [0, 20]).frenchify());
247
+ });
248
+ return shuffleProps(propositions, n);
249
+ };
250
+ const getKeys = () => {
251
+ return [];
252
+ };
253
+ const isAnswerValid = (ans, { answer }) => {
254
+ try {
255
+ const parsed = parseAlgebraic(ans);
256
+ return parsed.simplify().toTex() === answer;
257
+ }
258
+ catch (err) {
259
+ return handleVEAError(err);
260
+ }
261
+ };
262
+ const getScalarProductAlKashiBHQuestion = (optsIn) => {
263
+ const arrayedOptions = optsIn ?? optsDefault;
264
+ const opts = {
265
+ sectorOfPointH: random(arrayedOptions.sectorOfPointH),
266
+ };
267
+ const { sectorOfPointH } = opts;
268
+ function createRandomPoints() {
269
+ const offsetBtoC = 10;
270
+ const pointB = new Point("B", randfloat(0, 10), randfloat(0, 10));
271
+ const pointC = new Point("C", pointB.x.evaluate() + offsetBtoC + randfloat(-2, 8), randfloat(0, 10));
272
+ const vecBC = VectorConstructor.fromPoints(pointB, pointC);
273
+ const nodeLengthBC = vecBC.getNorm();
274
+ const vecBCUnited = vecBC.times(frac(1, nodeLengthBC));
275
+ const vecOrthUnited = vecBCUnited.getOrthogonal().times((-1).toTree());
276
+ //rect PQRS will contain A, D is Proj(P,(BC)), E is Proj(S,(BC))
277
+ const nodeOffsetDtoE = (10).toTree();
278
+ const nodeOffsetBtoD = (() => {
279
+ switch (sectorOfPointH) {
280
+ case "Entre $B$ et $C$":
281
+ return (0).toTree();
282
+ case "Après $C$":
283
+ return nodeLengthBC;
284
+ case "Avant $B$":
285
+ return multiply((-1).toTree(), nodeOffsetDtoE);
286
+ default:
287
+ throw new Error("Unsupported opts.sectorOfPointH: " + opts.sectorOfPointH);
288
+ }
289
+ })();
290
+ const pointD = vecBCUnited.times(nodeOffsetBtoD).getEndPoint(pointB);
291
+ const pointE = vecBCUnited.times(nodeOffsetDtoE).getEndPoint(pointD);
292
+ const minOffsetBCtoA = 3;
293
+ const maxOffsetBCtoA = minOffsetBCtoA + 10;
294
+ const pointP = vecOrthUnited
295
+ .times(minOffsetBCtoA.toTree())
296
+ .getEndPoint(pointD);
297
+ const pointQ = vecOrthUnited
298
+ .times((maxOffsetBCtoA - minOffsetBCtoA).toTree())
299
+ .getEndPoint(pointP);
300
+ const pointS = vecOrthUnited
301
+ .times(minOffsetBCtoA.toTree())
302
+ .getEndPoint(pointE);
303
+ const pointR = vecOrthUnited
304
+ .times((maxOffsetBCtoA - minOffsetBCtoA).toTree())
305
+ .getEndPoint(pointS);
306
+ function getCoordsForPoints(points) {
307
+ const xMin = Math.min(...points.map((p) => p.x.evaluate()));
308
+ const xMax = Math.max(...points.map((p) => p.x.evaluate()));
309
+ const yMin = Math.min(...points.map((p) => p.y.evaluate()));
310
+ const yMax = Math.max(...points.map((p) => p.y.evaluate()));
311
+ return [xMin, xMax, yMin, yMax];
312
+ }
313
+ function getRandomPointInside(points) {
314
+ const [xMin, xMax, yMin, yMax] = getCoordsForPoints(points);
315
+ let point;
316
+ let counter = -1;
317
+ let isValid = false;
318
+ while (!isValid && counter < 1000) {
319
+ counter++;
320
+ const x = randfloat(Math.ceil(xMin), Math.floor(xMax));
321
+ const y = randfloat(Math.ceil(yMin), Math.floor(yMax));
322
+ const pointCandidate = new Point("RIP", x, y);
323
+ isValid = relationPP(pointCandidate, points) !== -1;
324
+ if (isValid) {
325
+ point = pointCandidate;
326
+ }
327
+ }
328
+ if (!isValid) {
329
+ throw new Error("getRandomPointInside: too many iterations");
330
+ }
331
+ return point;
332
+ }
333
+ const pointRand = getRandomPointInside([pointP, pointQ, pointR, pointS]);
334
+ const pointA = new Point("A", pointRand.x, pointRand.y);
335
+ const vecBA = VectorConstructor.fromPoints(pointB, pointA);
336
+ const vecBH = vecBCUnited.times(frac(vecBA.scalarProduct(vecBC), nodeLengthBC));
337
+ const pointHRaw = vecBH.getEndPoint(pointB, "H");
338
+ const pointH = new Point("H", pointHRaw.x.evaluate(), pointHRaw.y.evaluate());
339
+ return [pointB, pointA, pointC, pointH];
340
+ }
341
+ function isValidPoints(points) {
342
+ const [B, _, C, H] = points;
343
+ const minDistance = 2;
344
+ const isHFarEnough = () => B.distanceTo(H) > minDistance && C.distanceTo(H) > minDistance;
345
+ return isHFarEnough();
346
+ }
347
+ let identifiers;
348
+ let counter = -1;
349
+ let isValid = false;
350
+ while (!isValid && counter < 100) {
351
+ counter++;
352
+ try {
353
+ const pointsCandidate = createRandomPoints();
354
+ isValid = isValidPoints(pointsCandidate);
355
+ if (isValid) {
356
+ const [B, A, C, H] = pointsCandidate;
357
+ const triangle = new Triangle([A, B, C]);
358
+ identifiers = {
359
+ triangleIds: triangle.toIdentifiers(),
360
+ pointIdsH: H.toIdentifiers(),
361
+ };
362
+ }
363
+ }
364
+ catch (_) {
365
+ (() => { })();
366
+ }
367
+ }
368
+ if (!isValid) {
369
+ const pointB = new Point("B", 10, 0);
370
+ const pointC = new Point("C", 20, 1);
371
+ const pointA = (() => {
372
+ switch (sectorOfPointH) {
373
+ case "Entre $B$ et $C$":
374
+ return new Point("A", 14, 7);
375
+ case "Après $C$":
376
+ return new Point("A", 25, 7);
377
+ case "Avant $B$":
378
+ return new Point("A", 5, 7);
379
+ default:
380
+ throw new Error("Unsupported opts.sectorOfPointH: " + opts.sectorOfPointH);
381
+ }
382
+ })();
383
+ const vecBC = VectorConstructor.fromPoints(pointB, pointC);
384
+ const nodeLengthBC = vecBC.getNorm().evaluate().toTree();
385
+ const vecBCUnited = vecBC.times(frac(1, nodeLengthBC));
386
+ const vecBA = VectorConstructor.fromPoints(pointB, pointA);
387
+ const vecBH = vecBCUnited.times(frac(vecBA.scalarProduct(vecBC), nodeLengthBC));
388
+ const pointHRaw = vecBH.getEndPoint(pointB, "H");
389
+ const pointH = new Point("H", pointHRaw.x.evaluate(), pointHRaw.y.evaluate());
390
+ const [B, A, C, H] = [pointB, pointA, pointC, pointH];
391
+ const triangle = new Triangle([A, B, C]);
392
+ const identifiersDefault = {
393
+ triangleIds: triangle.toIdentifiers(),
394
+ pointIdsH: H.toIdentifiers(),
395
+ };
396
+ identifiers = identifiersDefault;
397
+ }
398
+ return getQuestionFromIdentifiers(identifiers);
399
+ };
400
+ const getQuestionFromIdentifiers = (identifiers, opts) => {
401
+ return {
402
+ answer: getAnswer(identifiers, opts),
403
+ instruction: getInstruction(identifiers, opts),
404
+ keys: getKeys(identifiers, opts),
405
+ answerFormat: "tex",
406
+ identifiers,
407
+ hint: getHint(identifiers, opts),
408
+ correction: getCorrection(identifiers, opts),
409
+ correctionGgbOptions: getCorrectionGGBOptions(identifiers, opts),
410
+ ggbOptions: getGGBOptions(identifiers, opts),
411
+ options: opts,
412
+ };
413
+ };
414
+ const optsDefault = {
415
+ sectorOfPointH: ["Entre $B$ et $C$"],
416
+ };
417
+ const options = [
418
+ {
419
+ id: "sectorOfPointH",
420
+ label: "Position du point $H$",
421
+ target: GeneratorOptionTarget.generation,
422
+ type: GeneratorOptionType.multiselect,
423
+ values: ["Entre $B$ et $C$", "Après $C$", "Avant $B$"],
424
+ defaultValue: optsDefault.sectorOfPointH,
425
+ },
426
+ ];
427
+ export const scalarProductAlKashiBH = {
428
+ id: "scalarProductAlKashiBH",
429
+ connector: "=",
430
+ label: "Connaissant les longueurs de trois côtés d'un triangle $ABC$, calculer $BH$ ($H$ étant le pied de la hauteur issue de $A$)",
431
+ isSingleStep: true,
432
+ generator: (nb, opts) => getDistinctQuestions(() => getScalarProductAlKashiBHQuestion(opts), nb),
433
+ options,
434
+ validateOptions: (opts) => {
435
+ return {
436
+ valid: !!(opts?.sectorOfPointH.length > 0),
437
+ message: "Veuillez choisir au moins un secteur pour le point $H$.",
438
+ };
439
+ },
440
+ qcmTimer: 60,
441
+ freeTimer: 60,
442
+ getPropositions,
443
+ isAnswerValid,
444
+ subject: "Mathématiques",
445
+ getInstruction,
446
+ getHint,
447
+ getCorrection,
448
+ hasHintAndCorrection: true,
449
+ getAnswer,
450
+ getQuestionFromIdentifiers,
451
+ hasGeogebra: true,
452
+ };
@@ -0,0 +1,9 @@
1
+ import { Exercise } from "../../../../../../exercises/exercise.js";
2
+ import { TriangleIdentifiers } from "../../../../../../math/geometry/triangles/triangle.js";
3
+ type Identifiers = {
4
+ triangleIds: TriangleIdentifiers;
5
+ indexSide: number;
6
+ };
7
+ export declare const scalarProductAlKashiSideLength: Exercise<Identifiers>;
8
+ export {};
9
+ //# sourceMappingURL=scalarProductAlKashiSideLength.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalarProductAlKashiSideLength.d.ts","sourceRoot":"","sources":["../../../../../../../src/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAgBT,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAEL,mBAAmB,EACpB,MAAM,2CAA2C,CAAC;AAoBnD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,mBAAmB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA4SF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,WAAW,CAsBhE,CAAC"}