math-exercises 3.0.214 → 3.0.216

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 (371) hide show
  1. package/lib/exercises/math/arithmetic/findLeftInHugeNumberDivision.d.ts +9 -0
  2. package/lib/exercises/math/arithmetic/findLeftInHugeNumberDivision.d.ts.map +1 -0
  3. package/lib/exercises/math/arithmetic/findLeftInHugeNumberDivision.js +194 -0
  4. package/lib/exercises/math/arithmetic/findMissingNumberToMakeNumberDivisibleBy9.d.ts +8 -0
  5. package/lib/exercises/math/arithmetic/findMissingNumberToMakeNumberDivisibleBy9.d.ts.map +1 -0
  6. package/lib/exercises/math/arithmetic/findMissingNumberToMakeNumberDivisibleBy9.js +121 -0
  7. package/lib/exercises/math/arithmetic/index.d.ts +7 -0
  8. package/lib/exercises/math/arithmetic/index.d.ts.map +1 -1
  9. package/lib/exercises/math/arithmetic/index.js +7 -0
  10. package/lib/exercises/math/arithmetic/isBigNumberPrime.d.ts +7 -0
  11. package/lib/exercises/math/arithmetic/isBigNumberPrime.d.ts.map +1 -0
  12. package/lib/exercises/math/arithmetic/isBigNumberPrime.js +107 -0
  13. package/lib/exercises/math/arithmetic/numberOfEndingZerosOfBigProduct.d.ts +8 -0
  14. package/lib/exercises/math/arithmetic/numberOfEndingZerosOfBigProduct.d.ts.map +1 -0
  15. package/lib/exercises/math/arithmetic/numberOfEndingZerosOfBigProduct.js +139 -0
  16. package/lib/exercises/math/arithmetic/pgcdFromEuclid.d.ts +8 -0
  17. package/lib/exercises/math/arithmetic/pgcdFromEuclid.d.ts.map +1 -0
  18. package/lib/exercises/math/arithmetic/pgcdFromEuclid.js +123 -0
  19. package/lib/exercises/math/arithmetic/solveDiophantianEquationByUsingPrimality.d.ts +7 -0
  20. package/lib/exercises/math/arithmetic/solveDiophantianEquationByUsingPrimality.d.ts.map +1 -0
  21. package/lib/exercises/math/arithmetic/solveDiophantianEquationByUsingPrimality.js +117 -0
  22. package/lib/exercises/math/arithmetic/whichDayInXDays.d.ts +8 -0
  23. package/lib/exercises/math/arithmetic/whichDayInXDays.d.ts.map +1 -0
  24. package/lib/exercises/math/arithmetic/whichDayInXDays.js +82 -0
  25. package/lib/exercises/math/calcul/fractions/fractionsSumFillInTheBlank.d.ts +15 -0
  26. package/lib/exercises/math/calcul/fractions/fractionsSumFillInTheBlank.d.ts.map +1 -0
  27. package/lib/exercises/math/calcul/fractions/fractionsSumFillInTheBlank.js +256 -0
  28. package/lib/exercises/math/calcul/fractions/index.d.ts +1 -0
  29. package/lib/exercises/math/calcul/fractions/index.d.ts.map +1 -1
  30. package/lib/exercises/math/calcul/fractions/index.js +1 -0
  31. package/lib/exercises/math/calcul/index.d.ts +1 -0
  32. package/lib/exercises/math/calcul/index.d.ts.map +1 -1
  33. package/lib/exercises/math/calcul/index.js +1 -0
  34. package/lib/exercises/math/calcul/mentalCaluls/index.d.ts +3 -0
  35. package/lib/exercises/math/calcul/mentalCaluls/index.d.ts.map +1 -1
  36. package/lib/exercises/math/calcul/mentalCaluls/index.js +3 -0
  37. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication101AndFriends.d.ts +10 -0
  38. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication101AndFriends.d.ts.map +1 -0
  39. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication101AndFriends.js +264 -0
  40. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication11AndFriends.d.ts +10 -0
  41. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication11AndFriends.d.ts.map +1 -0
  42. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplication11AndFriends.js +264 -0
  43. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplicationTable.d.ts +11 -0
  44. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplicationTable.d.ts.map +1 -0
  45. package/lib/exercises/math/calcul/mentalCaluls/mentalMultiplicationTable.js +141 -0
  46. package/lib/exercises/math/calcul/ratio/index.d.ts +1 -0
  47. package/lib/exercises/math/calcul/ratio/index.d.ts.map +1 -1
  48. package/lib/exercises/math/calcul/ratio/index.js +1 -0
  49. package/lib/exercises/math/calcul/ratio/partsUsingRatio.d.ts +13 -0
  50. package/lib/exercises/math/calcul/ratio/partsUsingRatio.d.ts.map +1 -0
  51. package/lib/exercises/math/calcul/ratio/partsUsingRatio.js +237 -0
  52. package/lib/exercises/math/calcul/relatives/index.d.ts +2 -0
  53. package/lib/exercises/math/calcul/relatives/index.d.ts.map +1 -0
  54. package/lib/exercises/math/calcul/relatives/index.js +1 -0
  55. package/lib/exercises/math/calcul/relatives/relativesAddAndSub.d.ts +17 -0
  56. package/lib/exercises/math/calcul/relatives/relativesAddAndSub.d.ts.map +1 -0
  57. package/lib/exercises/math/calcul/relatives/relativesAddAndSub.js +448 -0
  58. package/lib/exercises/math/calculLitteral/factorisation/factoByXK.d.ts +10 -0
  59. package/lib/exercises/math/calculLitteral/factorisation/factoByXK.d.ts.map +1 -0
  60. package/lib/exercises/math/calculLitteral/factorisation/factoByXK.js +190 -0
  61. package/lib/exercises/math/calculLitteral/factorisation/index.d.ts +1 -0
  62. package/lib/exercises/math/calculLitteral/factorisation/index.d.ts.map +1 -1
  63. package/lib/exercises/math/calculLitteral/factorisation/index.js +1 -0
  64. package/lib/exercises/math/complex/algebraic/addComplex.d.ts +10 -0
  65. package/lib/exercises/math/complex/algebraic/addComplex.d.ts.map +1 -0
  66. package/lib/exercises/math/complex/algebraic/addComplex.js +125 -0
  67. package/lib/exercises/math/complex/algebraic/conjugateComplex.d.ts +8 -0
  68. package/lib/exercises/math/complex/algebraic/conjugateComplex.d.ts.map +1 -0
  69. package/lib/exercises/math/complex/algebraic/conjugateComplex.js +105 -0
  70. package/lib/exercises/math/complex/algebraic/conjugateDivideComplex.d.ts +8 -0
  71. package/lib/exercises/math/complex/algebraic/conjugateDivideComplex.d.ts.map +1 -0
  72. package/lib/exercises/math/complex/algebraic/conjugateDivideComplex.js +137 -0
  73. package/lib/exercises/math/complex/algebraic/conjugateMultiplyComplex.d.ts +8 -0
  74. package/lib/exercises/math/complex/algebraic/conjugateMultiplyComplex.d.ts.map +1 -0
  75. package/lib/exercises/math/complex/algebraic/conjugateMultiplyComplex.js +116 -0
  76. package/lib/exercises/math/complex/algebraic/divideComplex.d.ts +8 -0
  77. package/lib/exercises/math/complex/algebraic/divideComplex.d.ts.map +1 -0
  78. package/lib/exercises/math/complex/algebraic/divideComplex.js +128 -0
  79. package/lib/exercises/math/complex/algebraic/index.d.ts +11 -0
  80. package/lib/exercises/math/complex/algebraic/index.d.ts.map +1 -0
  81. package/lib/exercises/math/complex/algebraic/index.js +10 -0
  82. package/lib/exercises/math/complex/algebraic/inverseComplex.d.ts +8 -0
  83. package/lib/exercises/math/complex/algebraic/inverseComplex.d.ts.map +1 -0
  84. package/lib/exercises/math/complex/algebraic/inverseComplex.js +95 -0
  85. package/lib/exercises/math/complex/algebraic/linearCombinaisonComplex.d.ts +10 -0
  86. package/lib/exercises/math/complex/algebraic/linearCombinaisonComplex.d.ts.map +1 -0
  87. package/lib/exercises/math/complex/algebraic/linearCombinaisonComplex.js +105 -0
  88. package/lib/exercises/math/complex/algebraic/moduloFromAlgebraicComplex.d.ts +8 -0
  89. package/lib/exercises/math/complex/algebraic/moduloFromAlgebraicComplex.d.ts.map +1 -0
  90. package/lib/exercises/math/complex/algebraic/moduloFromAlgebraicComplex.js +93 -0
  91. package/lib/exercises/math/complex/algebraic/mutiplyComplex.d.ts +8 -0
  92. package/lib/exercises/math/complex/algebraic/mutiplyComplex.d.ts.map +1 -0
  93. package/lib/exercises/math/complex/algebraic/mutiplyComplex.js +106 -0
  94. package/lib/exercises/math/complex/algebraic/reAndIm.d.ts +9 -0
  95. package/lib/exercises/math/complex/algebraic/reAndIm.d.ts.map +1 -0
  96. package/lib/exercises/math/complex/algebraic/reAndIm.js +92 -0
  97. package/lib/exercises/math/complex/geometric/complexAlgebraicFromModuloAndArg.d.ts +9 -0
  98. package/lib/exercises/math/complex/geometric/complexAlgebraicFromModuloAndArg.d.ts.map +1 -0
  99. package/lib/exercises/math/complex/geometric/complexAlgebraicFromModuloAndArg.js +151 -0
  100. package/lib/exercises/math/complex/geometric/complexDistance.d.ts +11 -0
  101. package/lib/exercises/math/complex/geometric/complexDistance.d.ts.map +1 -0
  102. package/lib/exercises/math/complex/geometric/complexDistance.js +125 -0
  103. package/lib/exercises/math/complex/geometric/complexGeomAffixAlgFromPoint.d.ts +9 -0
  104. package/lib/exercises/math/complex/geometric/complexGeomAffixAlgFromPoint.d.ts.map +1 -0
  105. package/lib/exercises/math/complex/geometric/complexGeomAffixAlgFromPoint.js +326 -0
  106. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromCenteredRegularPolygon.d.ts +10 -0
  107. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromCenteredRegularPolygon.d.ts.map +1 -0
  108. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromCenteredRegularPolygon.js +459 -0
  109. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromPoint.d.ts +14 -0
  110. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromPoint.d.ts.map +1 -0
  111. package/lib/exercises/math/complex/geometric/complexGeomAffixExpFromPoint.js +539 -0
  112. package/lib/exercises/math/complex/geometric/complexGeomAffixTrigFromPoint.d.ts +13 -0
  113. package/lib/exercises/math/complex/geometric/complexGeomAffixTrigFromPoint.d.ts.map +1 -0
  114. package/lib/exercises/math/complex/geometric/complexGeomAffixTrigFromPoint.js +485 -0
  115. package/lib/exercises/math/complex/geometric/complexGeomApproxOfCosArgOrSinArgFromPointAndAffixTrig.d.ts +12 -0
  116. package/lib/exercises/math/complex/geometric/complexGeomApproxOfCosArgOrSinArgFromPointAndAffixTrig.d.ts.map +1 -0
  117. package/lib/exercises/math/complex/geometric/complexGeomApproxOfCosArgOrSinArgFromPointAndAffixTrig.js +224 -0
  118. package/lib/exercises/math/complex/geometric/complexGeomArgumentOfFracCBABFromFigure.d.ts +11 -0
  119. package/lib/exercises/math/complex/geometric/complexGeomArgumentOfFracCBABFromFigure.d.ts.map +1 -0
  120. package/lib/exercises/math/complex/geometric/complexGeomArgumentOfFracCBABFromFigure.js +448 -0
  121. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromAffixExp.d.ts +11 -0
  122. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromAffixExp.d.ts.map +1 -0
  123. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromAffixExp.js +223 -0
  124. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromPowerOfUnitRootFromFigure.d.ts +11 -0
  125. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromPowerOfUnitRootFromFigure.d.ts.map +1 -0
  126. package/lib/exercises/math/complex/geometric/complexGeomFindPointFromPowerOfUnitRootFromFigure.js +348 -0
  127. package/lib/exercises/math/complex/geometric/complexGeomPlaceAffixPoint.d.ts +8 -0
  128. package/lib/exercises/math/complex/geometric/complexGeomPlaceAffixPoint.d.ts.map +1 -0
  129. package/lib/exercises/math/complex/geometric/complexGeomPlaceAffixPoint.js +86 -0
  130. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZAPlusZ.d.ts +11 -0
  131. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZAPlusZ.d.ts.map +1 -0
  132. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZAPlusZ.js +311 -0
  133. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATimesZ.d.ts +11 -0
  134. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATimesZ.d.ts.map +1 -0
  135. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATimesZ.js +345 -0
  136. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATransformed.d.ts +16 -0
  137. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATransformed.d.ts.map +1 -0
  138. package/lib/exercises/math/complex/geometric/complexGeomPlacePointFromZATransformed.js +729 -0
  139. package/lib/exercises/math/complex/geometric/complexGeomPlacePointWithAffixInU.d.ts +11 -0
  140. package/lib/exercises/math/complex/geometric/complexGeomPlacePointWithAffixInU.d.ts.map +1 -0
  141. package/lib/exercises/math/complex/geometric/complexGeomPlacePointWithAffixInU.js +253 -0
  142. package/lib/exercises/math/complex/geometric/index.d.ts +12 -0
  143. package/lib/exercises/math/complex/geometric/index.d.ts.map +1 -0
  144. package/lib/exercises/math/complex/geometric/index.js +19 -0
  145. package/lib/exercises/math/complex/index.d.ts +4 -10
  146. package/lib/exercises/math/complex/index.d.ts.map +1 -1
  147. package/lib/exercises/math/complex/index.js +4 -11
  148. package/lib/exercises/math/complex/polynomials/factorizePolynomialInC.d.ts +10 -0
  149. package/lib/exercises/math/complex/polynomials/factorizePolynomialInC.d.ts.map +1 -0
  150. package/lib/exercises/math/complex/polynomials/factorizePolynomialInC.js +176 -0
  151. package/lib/exercises/math/complex/polynomials/index.d.ts +4 -0
  152. package/lib/exercises/math/complex/polynomials/index.d.ts.map +1 -0
  153. package/lib/exercises/math/complex/polynomials/index.js +3 -0
  154. package/lib/exercises/math/complex/polynomials/solveSecondDegreeInComplex.d.ts +10 -0
  155. package/lib/exercises/math/complex/polynomials/solveSecondDegreeInComplex.d.ts.map +1 -0
  156. package/lib/exercises/math/complex/polynomials/solveSecondDegreeInComplex.js +190 -0
  157. package/lib/exercises/math/complex/polynomials/solveZSquareEqualsA.d.ts +11 -0
  158. package/lib/exercises/math/complex/polynomials/solveZSquareEqualsA.d.ts.map +1 -0
  159. package/lib/exercises/math/complex/polynomials/solveZSquareEqualsA.js +158 -0
  160. package/lib/exercises/math/complex/unitRoots/giveNUnitRoot.d.ts +7 -0
  161. package/lib/exercises/math/complex/unitRoots/giveNUnitRoot.d.ts.map +1 -0
  162. package/lib/exercises/math/complex/unitRoots/giveNUnitRoot.js +122 -0
  163. package/lib/exercises/math/complex/unitRoots/giveOneSolutionToComplexPowNEqualsOne.d.ts +8 -0
  164. package/lib/exercises/math/complex/unitRoots/giveOneSolutionToComplexPowNEqualsOne.d.ts.map +1 -0
  165. package/lib/exercises/math/complex/unitRoots/giveOneSolutionToComplexPowNEqualsOne.js +138 -0
  166. package/lib/exercises/math/complex/unitRoots/index.d.ts +3 -0
  167. package/lib/exercises/math/complex/unitRoots/index.d.ts.map +1 -0
  168. package/lib/exercises/math/complex/unitRoots/index.js +2 -0
  169. package/lib/exercises/math/conversion/clock/clockReading.d.ts +12 -0
  170. package/lib/exercises/math/conversion/clock/clockReading.d.ts.map +1 -0
  171. package/lib/exercises/math/conversion/clock/clockReading.js +385 -0
  172. package/lib/exercises/math/conversion/clock/clockReadingPlusTimeOperation.d.ts +2 -0
  173. package/lib/exercises/math/conversion/clock/clockReadingPlusTimeOperation.d.ts.map +1 -0
  174. package/lib/exercises/math/conversion/clock/clockReadingPlusTimeOperation.js +521 -0
  175. package/lib/exercises/math/conversion/clock/clockWritingByManipulatingNeedles.d.ts +2 -0
  176. package/lib/exercises/math/conversion/clock/clockWritingByManipulatingNeedles.d.ts.map +1 -0
  177. package/lib/exercises/math/conversion/clock/clockWritingByManipulatingNeedles.js +359 -0
  178. package/lib/exercises/math/conversion/clock/dateTimeOperationAdd.d.ts +16 -0
  179. package/lib/exercises/math/conversion/clock/dateTimeOperationAdd.d.ts.map +1 -0
  180. package/lib/exercises/math/conversion/clock/dateTimeOperationAdd.js +319 -0
  181. package/lib/exercises/math/conversion/clock/index.d.ts +2 -0
  182. package/lib/exercises/math/conversion/clock/index.d.ts.map +1 -0
  183. package/lib/exercises/math/conversion/clock/index.js +4 -0
  184. package/lib/exercises/math/conversion/index.d.ts +1 -0
  185. package/lib/exercises/math/conversion/index.d.ts.map +1 -1
  186. package/lib/exercises/math/conversion/index.js +1 -0
  187. package/lib/exercises/math/geometry/angles/angleNatureFromFigure.d.ts +11 -0
  188. package/lib/exercises/math/geometry/angles/angleNatureFromFigure.d.ts.map +1 -0
  189. package/lib/exercises/math/geometry/angles/angleNatureFromFigure.js +233 -0
  190. package/lib/exercises/math/geometry/angles/angleNatureFromMeasure.d.ts +10 -0
  191. package/lib/exercises/math/geometry/angles/angleNatureFromMeasure.d.ts.map +1 -0
  192. package/lib/exercises/math/geometry/angles/angleNatureFromMeasure.js +137 -0
  193. package/lib/exercises/math/geometry/angles/index.d.ts +2 -0
  194. package/lib/exercises/math/geometry/angles/index.d.ts.map +1 -1
  195. package/lib/exercises/math/geometry/angles/index.js +2 -0
  196. package/lib/exercises/math/geometry/circles/buildCircleFromRadius.d.ts +9 -0
  197. package/lib/exercises/math/geometry/circles/buildCircleFromRadius.d.ts.map +1 -0
  198. package/lib/exercises/math/geometry/circles/buildCircleFromRadius.js +187 -0
  199. package/lib/exercises/math/geometry/circles/index.d.ts +1 -0
  200. package/lib/exercises/math/geometry/circles/index.d.ts.map +1 -1
  201. package/lib/exercises/math/geometry/circles/index.js +1 -0
  202. package/lib/exercises/math/geometry/lines/buildParallelFromLineAndPoint.d.ts +11 -0
  203. package/lib/exercises/math/geometry/lines/buildParallelFromLineAndPoint.d.ts.map +1 -0
  204. package/lib/exercises/math/geometry/lines/buildParallelFromLineAndPoint.js +154 -0
  205. package/lib/exercises/math/geometry/lines/buildPerpendicularFromLineAndPoint.d.ts +11 -0
  206. package/lib/exercises/math/geometry/lines/buildPerpendicularFromLineAndPoint.d.ts.map +1 -0
  207. package/lib/exercises/math/geometry/lines/buildPerpendicularFromLineAndPoint.js +157 -0
  208. package/lib/exercises/math/geometry/lines/index.d.ts +2 -0
  209. package/lib/exercises/math/geometry/lines/index.d.ts.map +1 -1
  210. package/lib/exercises/math/geometry/lines/index.js +2 -0
  211. package/lib/exercises/math/geometry/triangles/index.d.ts +2 -0
  212. package/lib/exercises/math/geometry/triangles/index.d.ts.map +1 -1
  213. package/lib/exercises/math/geometry/triangles/index.js +2 -1
  214. package/lib/exercises/math/geometry/triangles/traceHeightInTriangle.d.ts +13 -0
  215. package/lib/exercises/math/geometry/triangles/traceHeightInTriangle.d.ts.map +1 -0
  216. package/lib/exercises/math/geometry/triangles/traceHeightInTriangle.js +271 -0
  217. package/lib/exercises/math/geometry/triangles/traceMedianInTriangle.d.ts +8 -0
  218. package/lib/exercises/math/geometry/triangles/traceMedianInTriangle.d.ts.map +1 -1
  219. package/lib/exercises/math/geometry/triangles/traceMedianInTriangle.js +284 -53
  220. package/lib/exercises/math/geometry/vectors/constructions/index.d.ts +1 -0
  221. package/lib/exercises/math/geometry/vectors/constructions/index.d.ts.map +1 -1
  222. package/lib/exercises/math/geometry/vectors/constructions/index.js +1 -0
  223. package/lib/exercises/math/geometry/vectors/constructions/traceVectorSumFromVecs.d.ts +8 -0
  224. package/lib/exercises/math/geometry/vectors/constructions/traceVectorSumFromVecs.d.ts.map +1 -0
  225. package/lib/exercises/math/geometry/vectors/constructions/traceVectorSumFromVecs.js +165 -0
  226. package/lib/exercises/math/geometry/volumes/index.d.ts +1 -0
  227. package/lib/exercises/math/geometry/volumes/index.d.ts.map +1 -1
  228. package/lib/exercises/math/geometry/volumes/index.js +1 -0
  229. package/lib/exercises/math/geometry/volumes/volumeOfCylinder.d.ts +8 -0
  230. package/lib/exercises/math/geometry/volumes/volumeOfCylinder.d.ts.map +1 -0
  231. package/lib/exercises/math/geometry/volumes/volumeOfCylinder.js +157 -0
  232. package/lib/exercises/math/graphs/adjacentMatrixPath.d.ts +10 -0
  233. package/lib/exercises/math/graphs/adjacentMatrixPath.d.ts.map +1 -0
  234. package/lib/exercises/math/graphs/adjacentMatrixPath.js +89 -0
  235. package/lib/exercises/math/graphs/edgesNumberFromSummitsDegrees.d.ts +7 -0
  236. package/lib/exercises/math/graphs/edgesNumberFromSummitsDegrees.d.ts.map +1 -0
  237. package/lib/exercises/math/graphs/edgesNumberFromSummitsDegrees.js +98 -0
  238. package/lib/exercises/math/graphs/eulerianChainFromAdjacentMatrix.d.ts +8 -0
  239. package/lib/exercises/math/graphs/eulerianChainFromAdjacentMatrix.d.ts.map +1 -0
  240. package/lib/exercises/math/graphs/eulerianChainFromAdjacentMatrix.js +96 -0
  241. package/lib/exercises/math/graphs/graphsChainOrPathOfLengthN.d.ts +15 -0
  242. package/lib/exercises/math/graphs/graphsChainOrPathOfLengthN.d.ts.map +1 -0
  243. package/lib/exercises/math/graphs/graphsChainOrPathOfLengthN.js +262 -0
  244. package/lib/exercises/math/graphs/graphsCheckIsConnectedUndirectedGraph.d.ts +11 -0
  245. package/lib/exercises/math/graphs/graphsCheckIsConnectedUndirectedGraph.d.ts.map +1 -0
  246. package/lib/exercises/math/graphs/graphsCheckIsConnectedUndirectedGraph.js +178 -0
  247. package/lib/exercises/math/graphs/graphsCheckIsSameGraph.d.ts +19 -0
  248. package/lib/exercises/math/graphs/graphsCheckIsSameGraph.d.ts.map +1 -0
  249. package/lib/exercises/math/graphs/graphsCheckIsSameGraph.js +301 -0
  250. package/lib/exercises/math/graphs/graphsCheckIsVerticesAdjacent.d.ts +16 -0
  251. package/lib/exercises/math/graphs/graphsCheckIsVerticesAdjacent.d.ts.map +1 -0
  252. package/lib/exercises/math/graphs/graphsCheckIsVerticesAdjacent.js +207 -0
  253. package/lib/exercises/math/graphs/graphsDegreeOfVertex.d.ts +15 -0
  254. package/lib/exercises/math/graphs/graphsDegreeOfVertex.d.ts.map +1 -0
  255. package/lib/exercises/math/graphs/graphsDegreeOfVertex.js +232 -0
  256. package/lib/exercises/math/graphs/graphsOrderOfGraph.d.ts +14 -0
  257. package/lib/exercises/math/graphs/graphsOrderOfGraph.d.ts.map +1 -0
  258. package/lib/exercises/math/graphs/graphsOrderOfGraph.js +222 -0
  259. package/lib/exercises/math/graphs/index.d.ts +10 -0
  260. package/lib/exercises/math/graphs/index.d.ts.map +1 -0
  261. package/lib/exercises/math/graphs/index.js +9 -0
  262. package/lib/exercises/math/index.d.ts +1 -0
  263. package/lib/exercises/math/index.d.ts.map +1 -1
  264. package/lib/exercises/math/index.js +1 -0
  265. package/lib/exercises/math/matrices/areMatricesInverse.d.ts +9 -0
  266. package/lib/exercises/math/matrices/areMatricesInverse.d.ts.map +1 -0
  267. package/lib/exercises/math/matrices/areMatricesInverse.js +106 -0
  268. package/lib/exercises/math/matrices/computeFixedMatrixInRecurrenceSequence.d.ts +9 -0
  269. package/lib/exercises/math/matrices/computeFixedMatrixInRecurrenceSequence.d.ts.map +1 -0
  270. package/lib/exercises/math/matrices/computeFixedMatrixInRecurrenceSequence.js +144 -0
  271. package/lib/exercises/math/matrices/findInversedMatrixFromSystem.d.ts +8 -0
  272. package/lib/exercises/math/matrices/findInversedMatrixFromSystem.d.ts.map +1 -0
  273. package/lib/exercises/math/matrices/findInversedMatrixFromSystem.js +148 -0
  274. package/lib/exercises/math/matrices/index.d.ts +12 -0
  275. package/lib/exercises/math/matrices/index.d.ts.map +1 -1
  276. package/lib/exercises/math/matrices/index.js +12 -0
  277. package/lib/exercises/math/matrices/isMatrixTransitionMatrix.d.ts +8 -0
  278. package/lib/exercises/math/matrices/isMatrixTransitionMatrix.d.ts.map +1 -0
  279. package/lib/exercises/math/matrices/isMatrixTransitionMatrix.js +132 -0
  280. package/lib/exercises/math/matrices/matrixBuildMatrixFromCoefficients.d.ts +8 -0
  281. package/lib/exercises/math/matrices/matrixBuildMatrixFromCoefficients.d.ts.map +1 -0
  282. package/lib/exercises/math/matrices/matrixBuildMatrixFromCoefficients.js +152 -0
  283. package/lib/exercises/math/matrices/matrixCheckIsSymmetrical.d.ts +8 -0
  284. package/lib/exercises/math/matrices/matrixCheckIsSymmetrical.d.ts.map +1 -0
  285. package/lib/exercises/math/matrices/matrixCheckIsSymmetrical.js +155 -0
  286. package/lib/exercises/math/matrices/matrixComputeDetOfMat2.d.ts +8 -0
  287. package/lib/exercises/math/matrices/matrixComputeDetOfMat2.d.ts.map +1 -0
  288. package/lib/exercises/math/matrices/matrixComputeDetOfMat2.js +142 -0
  289. package/lib/exercises/math/matrices/matrixComputeInverseOfMat2.d.ts +8 -0
  290. package/lib/exercises/math/matrices/matrixComputeInverseOfMat2.d.ts.map +1 -0
  291. package/lib/exercises/math/matrices/matrixComputeInverseOfMat2.js +237 -0
  292. package/lib/exercises/math/matrices/matrixComputeLinearCombination.d.ts +15 -0
  293. package/lib/exercises/math/matrices/matrixComputeLinearCombination.d.ts.map +1 -0
  294. package/lib/exercises/math/matrices/matrixComputeLinearCombination.js +232 -0
  295. package/lib/exercises/math/matrices/matrixComputePower.d.ts +12 -0
  296. package/lib/exercises/math/matrices/matrixComputePower.d.ts.map +1 -0
  297. package/lib/exercises/math/matrices/matrixComputePower.js +230 -0
  298. package/lib/exercises/math/matrices/matrixComputeProduct.d.ts +9 -0
  299. package/lib/exercises/math/matrices/matrixComputeProduct.d.ts.map +1 -0
  300. package/lib/exercises/math/matrices/matrixComputeProduct.js +178 -0
  301. package/lib/exercises/math/matrices/writeMatrixAssociatedToSystem.d.ts +8 -0
  302. package/lib/exercises/math/matrices/writeMatrixAssociatedToSystem.d.ts.map +1 -0
  303. package/lib/exercises/math/matrices/writeMatrixAssociatedToSystem.js +105 -0
  304. package/lib/exercises/math/spaceGeometry/basis/index.d.ts +1 -0
  305. package/lib/exercises/math/spaceGeometry/basis/index.d.ts.map +1 -1
  306. package/lib/exercises/math/spaceGeometry/basis/index.js +1 -0
  307. package/lib/exercises/math/spaceGeometry/basis/spaceSegmentLengthInRectangularPrism.d.ts +18 -0
  308. package/lib/exercises/math/spaceGeometry/basis/spaceSegmentLengthInRectangularPrism.d.ts.map +1 -0
  309. package/lib/exercises/math/spaceGeometry/basis/spaceSegmentLengthInRectangularPrism.js +538 -0
  310. package/lib/exercises/math/trigonometry/formulas/trigoAdditionFormulaUsage.d.ts.map +1 -1
  311. package/lib/exercises/math/trigonometry/formulas/trigoAdditionFormulaUsage.js +6 -5
  312. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.js +1 -1
  313. package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts +1 -0
  314. package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts.map +1 -1
  315. package/lib/exercises/utils/geogebra/toolBarConstructor.js +2 -0
  316. package/lib/exercises/vea/matrixVEA.d.ts +2 -0
  317. package/lib/exercises/vea/matrixVEA.d.ts.map +1 -0
  318. package/lib/exercises/vea/matrixVEA.js +1 -0
  319. package/lib/geogebra/parsers/geogebraParser.d.ts +3 -0
  320. package/lib/geogebra/parsers/geogebraParser.d.ts.map +1 -1
  321. package/lib/geogebra/parsers/geogebraParser.js +27 -0
  322. package/lib/index.d.ts +286 -23
  323. package/lib/index.d.ts.map +1 -1
  324. package/lib/latexTester.js +2 -0
  325. package/lib/math/geometry/angle.d.ts.map +1 -1
  326. package/lib/math/geometry/angle.js +3 -0
  327. package/lib/math/geometry/point.d.ts.map +1 -1
  328. package/lib/math/geometry/point.js +3 -1
  329. package/lib/math/geometry/segment.d.ts +1 -1
  330. package/lib/math/geometry/segment.d.ts.map +1 -1
  331. package/lib/math/geometry/segment.js +5 -2
  332. package/lib/math/graphs/graph.d.ts +43 -0
  333. package/lib/math/graphs/graph.d.ts.map +1 -0
  334. package/lib/math/graphs/graph.js +391 -0
  335. package/lib/math/matrices/matrix.d.ts +42 -3
  336. package/lib/math/matrices/matrix.d.ts.map +1 -1
  337. package/lib/math/matrices/matrix.js +173 -7
  338. package/lib/math/matrices/parseMatrix.d.ts +3 -0
  339. package/lib/math/matrices/parseMatrix.d.ts.map +1 -0
  340. package/lib/math/matrices/parseMatrix.js +22 -0
  341. package/lib/math/systems/generalSystem.d.ts +2 -0
  342. package/lib/math/systems/generalSystem.d.ts.map +1 -1
  343. package/lib/math/systems/generalSystem.js +5 -0
  344. package/lib/math/utils/geometry/angleBetweenPoints.d.ts +4 -0
  345. package/lib/math/utils/geometry/angleBetweenPoints.d.ts.map +1 -0
  346. package/lib/math/utils/geometry/angleBetweenPoints.js +58 -0
  347. package/lib/math/utils/geometry/angleNWSE.d.ts +3 -0
  348. package/lib/math/utils/geometry/angleNWSE.d.ts.map +1 -0
  349. package/lib/math/utils/geometry/angleNWSE.js +56 -0
  350. package/lib/math/utils/graphs/graphRenderer.d.ts +25 -0
  351. package/lib/math/utils/graphs/graphRenderer.d.ts.map +1 -0
  352. package/lib/math/utils/graphs/graphRenderer.js +123 -0
  353. package/lib/playground.d.ts +6 -1
  354. package/lib/playground.d.ts.map +1 -1
  355. package/lib/playground.js +6 -5
  356. package/lib/tests/singleExo.test.d.ts.map +1 -1
  357. package/lib/tests/singleExo.test.js +2 -2
  358. package/lib/tree/parsers/latexParser.d.ts +1 -1
  359. package/lib/tree/utilities/nodeSimplifier.d.ts +1 -1
  360. package/lib/types/keyIds.d.ts +2 -0
  361. package/lib/types/keyIds.d.ts.map +1 -1
  362. package/lib/utils/arrays/arrayChunks.d.ts +9 -0
  363. package/lib/utils/arrays/arrayChunks.d.ts.map +1 -0
  364. package/lib/utils/arrays/arrayChunks.js +34 -0
  365. package/lib/utils/strings/frenchDays.d.ts +2 -0
  366. package/lib/utils/strings/frenchDays.d.ts.map +1 -0
  367. package/lib/utils/strings/frenchDays.js +9 -0
  368. package/lib/utils/strings/ordinalSuffixed.d.ts +2 -0
  369. package/lib/utils/strings/ordinalSuffixed.d.ts.map +1 -0
  370. package/lib/utils/strings/ordinalSuffixed.js +5 -0
  371. package/package.json +7 -1
@@ -0,0 +1,345 @@
1
+ import { toolBarConstructor } from "../../../../exercises/utils/geogebra/toolBarConstructor.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { colorWithOpacity, greenMain, orange } from "../../../../geogebra/colors.js";
4
+ import { GeogebraConstructor } from "../../../../geogebra/geogebraConstructor.js";
5
+ import { ggbPointToCoords } from "../../../../geogebra/parsers/ggbPointToCoords.js";
6
+ import { parseGGBPoints } from "../../../../geogebra/parsers/parseGGBPoints.js";
7
+ import { Point, PointConstructor, } from "../../../../math/geometry/point.js";
8
+ import { Vector } from "../../../../math/geometry/vector.js";
9
+ import { randint } from "../../../../math/utils/random/randint.js";
10
+ import { round } from "../../../../math/utils/round.js";
11
+ import { abs } from "../../../../tree/nodes/functions/absNode.js";
12
+ import { cos } from "../../../../tree/nodes/functions/cosNode.js";
13
+ import { exp } from "../../../../tree/nodes/functions/expNode.js";
14
+ import { sin } from "../../../../tree/nodes/functions/sinNode.js";
15
+ import { NodeConstructor, } from "../../../../tree/nodes/nodeConstructor.js";
16
+ import { PiNode } from "../../../../tree/nodes/numbers/piNode.js";
17
+ import { add } from "../../../../tree/nodes/operators/addNode.js";
18
+ import { frac, isFractionNode, } from "../../../../tree/nodes/operators/fractionNode.js";
19
+ import { multiply } from "../../../../tree/nodes/operators/multiplyNode.js";
20
+ import { substract } from "../../../../tree/nodes/operators/substractNode.js";
21
+ import { VariableNode } from "../../../../tree/nodes/variables/variableNode.js";
22
+ import { coinFlip } from "../../../../utils/alea/coinFlip.js";
23
+ import { random } from "../../../../utils/alea/random.js";
24
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
25
+ const lFrame = 4;
26
+ const coordsFrame = (() => {
27
+ const lFrameMore = lFrame + 0.1;
28
+ return [-lFrameMore, lFrameMore, -lFrameMore, lFrameMore];
29
+ })();
30
+ //TODO: frac does not simplify "i"
31
+ // const nodeI = new ComplexNode((0).toTree(), (1).toTree());
32
+ const nodeI = new VariableNode("i");
33
+ const _degreesToRadians = (angleInDegrees, precision) => {
34
+ const oneOver180 = 0.00555555555555555;
35
+ return round(multiply(multiply(angleInDegrees, PiNode), oneOver180).evaluate(), precision);
36
+ };
37
+ const rotateVector = (vec, angle, name) => {
38
+ //x' = cos(t)*x -sin(t)*y
39
+ //y' = sin(t)*x + cos(t)*y
40
+ const cos = Math.cos(angle);
41
+ const sin = Math.sin(angle);
42
+ return new Vector(name, substract(multiply(cos, vec.x), multiply(sin, vec.y)).evaluate().toTree(), add(multiply(sin, vec.x), multiply(cos, vec.y)).evaluate().toTree());
43
+ };
44
+ const rotatePoint = (target, angle, center, name, precision = 2) => {
45
+ const vSrc = createVector(center, target, "vSrc", precision);
46
+ const vRotated = rotateVector(vSrc, angle, "vRotated");
47
+ return createPoint(add(center.x, vRotated.x).evaluate(), add(center.y, vRotated.y).evaluate(), name, precision);
48
+ };
49
+ const createVector = (from, to, name, precision = 5) => {
50
+ return new Vector(name, round(substract(to.x, from.x).evaluate(), precision).toTree(), round(substract(to.y, from.y).evaluate(), precision).toTree());
51
+ };
52
+ const createPoint = (x, y, name, precision = 5) => {
53
+ return new Point(name, round(x, precision), round(y, precision));
54
+ };
55
+ const _createPointForModuleAndArgument = (nodeModule, nodeArgument, name) => new Point(name, multiply(nodeModule, cos(nodeArgument)), multiply(nodeModule, sin(nodeArgument)));
56
+ const getHydrated = (identifiers) => {
57
+ const { pointIdsA, nodeIdsModuleZ, nodeIdsArgumentZ } = identifiers;
58
+ const [nodeModuleZ, nodeArgumentZ] = [nodeIdsModuleZ, nodeIdsArgumentZ].map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
59
+ const pointA = PointConstructor.fromIdentifiers(pointIdsA);
60
+ const pointB = (() => {
61
+ const pointO = new Point("O", 0, 0);
62
+ const pointARotated = rotatePoint(pointA, nodeArgumentZ.evaluate(), pointO, "ARotated");
63
+ const pointARotatedAndScaled = new Point("B", multiply(nodeModuleZ, pointARotated.x), multiply(nodeModuleZ, pointARotated.y));
64
+ return pointARotatedAndScaled;
65
+ })();
66
+ const nodeAffixZ = multiply(nodeModuleZ, exp(multiply(nodeI, nodeArgumentZ.simplify({ towardsDistribute: true }))));
67
+ return {
68
+ pointA,
69
+ nodeModuleZ,
70
+ nodeArgumentZ,
71
+ pointB,
72
+ nodeAffixZ,
73
+ };
74
+ };
75
+ const getInstruction = (identifiers) => {
76
+ const { nodeAffixZ } = getHydrated(identifiers);
77
+ return `Sur la figure ci-dessous, le point $A$ a pour affixe $z_{A}$.
78
+ Placer le point $B$ d'affixe $z_{B}$ tel que :
79
+
80
+ $$
81
+ z_{B} = z_{A} \\times ${nodeAffixZ.toTex()}
82
+ $$
83
+
84
+ `;
85
+ };
86
+ const getGGBAnswer = (identifiers) => {
87
+ const { pointB } = getHydrated(identifiers);
88
+ return [
89
+ ...[pointB].flatMap((point) => point.toGGBCommand({
90
+ isFixed: true,
91
+ isSelectionnable: true,
92
+ showLabel: true,
93
+ // style: 1,
94
+ color: greenMain,
95
+ })),
96
+ ];
97
+ };
98
+ const getHint = (identifiers) => {
99
+ const { nodeAffixZ, nodeModuleZ, nodeArgumentZ } = getHydrated(identifiers);
100
+ return `Soit $O$ l'origine du repère.
101
+ Soit $z = ${nodeAffixZ.toTex()}$.
102
+ Si $M$ est le point d'affixe $z$ alors :
103
+
104
+ ${alignTex([
105
+ ["z_{B}", "=", "z_{A} \\times z"],
106
+ [
107
+ "",
108
+ "=",
109
+ "(\\lvert z_{A} \\rvert e^{i \\arg(z_{A})} ) (\\lvert z \\rvert e^{i \\arg(z)} )",
110
+ ],
111
+ [
112
+ "",
113
+ "=",
114
+ "(\\lvert z_{A} \\rvert \\lvert z \\rvert ) ( e^{i \\arg(z_{A})} e^{i \\arg(z)} )",
115
+ ],
116
+ [
117
+ "",
118
+ "=",
119
+ `(\\lvert z_{A} \\rvert \\times ${nodeModuleZ.toTex()} ) ( e^{i (\\arg(z_{A}) + (${nodeArgumentZ.toTex()})) } )`,
120
+ ],
121
+ ])}
122
+
123
+ La forme exponentielle est particulièrement adaptée à ce cas de figure :
124
+ - Le module de $z_{B}$ est le module de $z_{A}$ multiplié par $${nodeModuleZ.toTex()}$.
125
+ - L'argument de $z_{B}$ est l'argument de $z_{A}$ auquel on a ajouté $${nodeArgumentZ.toTex()}$.
126
+
127
+ `;
128
+ };
129
+ const getCorrection = (identifiers) => {
130
+ const { nodeAffixZ, nodeModuleZ, nodeArgumentZ } = getHydrated(identifiers);
131
+ return `Soit $O$ l'origine du repère.
132
+ Soit $z = ${nodeAffixZ.toTex()}$.
133
+ Si $M$ est le point d'affixe $z$ alors :
134
+
135
+ ${alignTex([
136
+ ["z_{B}", "=", "z_{A} \\times z"],
137
+ [
138
+ "",
139
+ "=",
140
+ "(\\lvert z_{A} \\rvert e^{i \\arg(z_{A})} ) (\\lvert z \\rvert e^{i \\arg(z)} )",
141
+ ],
142
+ [
143
+ "",
144
+ "=",
145
+ "(\\lvert z_{A} \\rvert \\lvert z \\rvert ) ( e^{i \\arg(z_{A})} e^{i \\arg(z)} )",
146
+ ],
147
+ [
148
+ "",
149
+ "=",
150
+ `(\\lvert z_{A} \\rvert \\times ${nodeModuleZ.toTex()} ) ( e^{i (\\arg(z_{A}) + (${nodeArgumentZ.toTex()})) } )`,
151
+ ],
152
+ ])}
153
+
154
+ La forme exponentielle est particulièrement adaptée à ce cas de figure :
155
+ - Le module de $z_{B}$ est le module de $z_{A}$ multiplié par $${nodeModuleZ.toTex()}$.
156
+ - L'argument de $z_{B}$ est l'argument de $z_{A}$ auquel on a ajouté $${nodeArgumentZ.toTex()}$.
157
+
158
+ Ce qui signifie géométriquement que l'on opère sur le point $A$
159
+ une homothétie de centre $O$ et de rapport $${nodeModuleZ.toTex()}$
160
+ puis une rotation de centre $O$ et d'angle $${nodeArgumentZ.toTex()}$.`;
161
+ };
162
+ const getCorrectionGGBOptions = (identifiers) => {
163
+ const { pointA, pointB, nodeModuleZ, nodeArgumentZ } = getHydrated(identifiers);
164
+ const nodeAngleBase = (() => {
165
+ const nodeAbsArgumentZ = abs(nodeArgumentZ).simplify({
166
+ towardsDistribute: false,
167
+ });
168
+ if (isFractionNode(nodeAbsArgumentZ)) {
169
+ const nodeDen = nodeAbsArgumentZ.rightChild;
170
+ return frac(PiNode, nodeDen);
171
+ }
172
+ else {
173
+ throw new Error("isFractionNode(nodeAbsArgumentZ) === false");
174
+ }
175
+ })();
176
+ const nbRays = frac(multiply(2, PiNode), nodeAngleBase)
177
+ .simplify({ towardsDistribute: false })
178
+ .evaluate();
179
+ const arrNodeAngle = [...Array(nbRays).keys()].map((i) => multiply(i, nodeAngleBase));
180
+ const pointAScaled = new Point("AScaled", multiply(nodeModuleZ, pointA.x), multiply(nodeModuleZ, pointA.y));
181
+ const precision = 5;
182
+ const pointO = new Point("O", 0, 0);
183
+ const arrPointForAngle = arrNodeAngle.map((nodeAngle, i) => rotatePoint(pointAScaled, nodeAngle.evaluate(), pointO, `PF${i}`, precision));
184
+ const strLineColor = `"${colorWithOpacity("#000000", 26)}"`;
185
+ const ggb = new GeogebraConstructor({
186
+ isGridSimple: true,
187
+ commands: [
188
+ ...[pointA].flatMap((point) => point.toGGBCommand({
189
+ isFixed: true,
190
+ isSelectionnable: true,
191
+ showLabel: true,
192
+ // style: 1,
193
+ })),
194
+ //circles
195
+ ...[
196
+ `cirA = Circle(${pointO.toMathString()}, ${pointA.toMathString()})`,
197
+ `SetLineThickness(cirA, 1)`,
198
+ `SetLineStyle(cirA, 2)`,
199
+ ],
200
+ ...[
201
+ `cirB = Circle(${pointO.toMathString()}, ${pointB.toMathString()})`,
202
+ `SetLineThickness(cirB, 1)`,
203
+ `SetLineStyle(cirB, 2)`,
204
+ ],
205
+ //segments (rays)
206
+ ...arrPointForAngle.flatMap((point, i) => [
207
+ `segRay${i} = Segment(${pointO.toMathString()}, ${point.toMathString()})`,
208
+ `SetColor(segRay${i}, ${strLineColor})`,
209
+ `SetLineThickness(segRay${i}, 1)`,
210
+ `SetLineStyle(segRay${i}, 0)`,
211
+ ]),
212
+ //pointB
213
+ ...[pointB].flatMap((point) => point.toGGBCommand({
214
+ isFixed: true,
215
+ isSelectionnable: true,
216
+ showLabel: true,
217
+ // style: 1,
218
+ color: greenMain,
219
+ })),
220
+ //argument
221
+ ...(() => {
222
+ const isClockwise = nodeArgumentZ.evaluate() > 0;
223
+ return [
224
+ `rayOA = Ray(${pointO.toMathString()}, ${pointA.toMathString()})`,
225
+ `rayOB = Ray(${pointO.toMathString()}, ${pointB.toMathString()})`,
226
+ `SetVisibleInView(rayOA, 1, false)`,
227
+ `SetVisibleInView(rayOB, 1, false)`,
228
+ `angArg = ${isClockwise ? "Angle(rayOA, rayOB)" : "Angle(rayOB, rayOA)"}`,
229
+ `SetDecoration(angArg, ${isClockwise ? 6 : 7})`,
230
+ `SetColor(angArg, "${orange}")`,
231
+ `SetCaption(angArg, "$\\\\ \\\\ \\ \\ ${nodeArgumentZ.toTex()}$")`,
232
+ `ShowLabel(angArg, true)`,
233
+ ];
234
+ })(),
235
+ ],
236
+ fontSize: 16,
237
+ });
238
+ return ggb.getOptions({
239
+ coords: ggb.getCoordsForPoints(arrPointForAngle),
240
+ });
241
+ };
242
+ const getStudentGGBOptions = (identifiers) => {
243
+ const { pointA } = getHydrated(identifiers);
244
+ const studentGgb = new GeogebraConstructor({
245
+ customToolBar: toolBarConstructor({ point: true }),
246
+ isGridSimple: true,
247
+ commands: [
248
+ //points
249
+ ...[pointA].flatMap((point) => point.toGGBCommand({
250
+ isFixed: true,
251
+ isSelectionnable: true,
252
+ showLabel: true,
253
+ // style: 1,
254
+ })),
255
+ ],
256
+ fontSize: 16,
257
+ });
258
+ return studentGgb.getOptions({
259
+ coords: coordsFrame,
260
+ });
261
+ };
262
+ const isGGBAnswerValid = (ggbAns, { ggbAnswer, ...identifiers }) => {
263
+ const { pointB, nodeModuleZ } = getHydrated(identifiers);
264
+ const pointCoords = parseGGBPoints(ggbAns).map((p) => ggbPointToCoords(p));
265
+ if (pointCoords.length !== 1)
266
+ return false;
267
+ const distanceBonus = nodeModuleZ.evaluate() * 0.2;
268
+ return (new Point("K", pointCoords[0].x, pointCoords[0].y).distanceTo(pointB) <
269
+ 0.47 + distanceBonus);
270
+ };
271
+ const getComplexGeomPlacePointFromZATimesZQuestion = () => {
272
+ function createRandomAffixObj() {
273
+ const nodeModule = random([
274
+ frac(1, 3),
275
+ frac(1, 2),
276
+ frac(3, 2),
277
+ ...[1, 2, 3].map((v) => v.toTree()),
278
+ ]);
279
+ const nodeArgument = (() => {
280
+ const den = random([3, 4, 6, 8]);
281
+ const num = (coinFlip() ? +1 : -1) * randint(1, Math.ceil(den / 2));
282
+ return multiply(multiply(2, PiNode), frac(num, den)).simplify({
283
+ towardsDistribute: false,
284
+ });
285
+ })();
286
+ const affixObj = { nodeModule, nodeArgument };
287
+ return affixObj;
288
+ }
289
+ function isPointBInFrame(pointB, coordsFrame) {
290
+ const [xMin, xMax, yMin, yMax] = coordsFrame;
291
+ const [vX, vY] = [pointB.x, pointB.y].map((node) => node.evaluate());
292
+ return xMin <= vX && vX <= xMax && yMin <= vY && vY <= yMax;
293
+ }
294
+ const pointA = (() => {
295
+ const lFrameA = lFrame - 1;
296
+ return new Point("A", (randint(-(lFrameA * 2), lFrameA * 2 + 1) * 0.5).toTree(), (randint(-(lFrameA * 2), lFrameA * 2 + 1) * 0.5).toTree());
297
+ })();
298
+ const { nodeModule: nodeModuleZ, nodeArgument: nodeArgumentZ } = (() => {
299
+ let affixObj;
300
+ let pointB;
301
+ do {
302
+ affixObj = createRandomAffixObj();
303
+ const { nodeModule, nodeArgument } = affixObj;
304
+ pointB = (() => {
305
+ const pointO = new Point("O", 0, 0);
306
+ const pointARotated = rotatePoint(pointA, nodeArgument.evaluate(), pointO, "ARotated");
307
+ const pointARotatedAndScaled = new Point("B", multiply(nodeModule, pointARotated.x), multiply(nodeModule, pointARotated.y));
308
+ return pointARotatedAndScaled;
309
+ })();
310
+ } while (!isPointBInFrame(pointB, coordsFrame));
311
+ return affixObj;
312
+ })();
313
+ const identifiers = {
314
+ pointIdsA: pointA.toIdentifiers(),
315
+ nodeIdsModuleZ: nodeModuleZ.toIdentifiers(),
316
+ nodeIdsArgumentZ: nodeArgumentZ.toIdentifiers(),
317
+ };
318
+ return getQuestionFromIdentifiers(identifiers);
319
+ };
320
+ const getQuestionFromIdentifiers = (identifiers, opts) => {
321
+ const question = {
322
+ ggbAnswer: getGGBAnswer(identifiers),
323
+ instruction: getInstruction(identifiers),
324
+ answerFormat: "tex",
325
+ identifiers,
326
+ hint: getHint(identifiers),
327
+ correction: getCorrection(identifiers),
328
+ correctionGgbOptions: getCorrectionGGBOptions(identifiers),
329
+ studentGgbOptions: getStudentGGBOptions(identifiers, opts),
330
+ };
331
+ return question;
332
+ };
333
+ export const complexGeomPlacePointFromZATimesZ = {
334
+ id: "complexGeomPlacePointFromZATimesZ",
335
+ label: "Placer le point image d'un nombre de la forme $z_{A} \\times z$",
336
+ isSingleStep: true,
337
+ generator: (nb, opts) => getDistinctQuestions(() => getComplexGeomPlacePointFromZATimesZQuestion(opts), nb),
338
+ qcmTimer: 60,
339
+ freeTimer: 60,
340
+ subject: "Mathématiques",
341
+ getQuestionFromIdentifiers,
342
+ hasHintAndCorrection: true,
343
+ answerType: "GGB",
344
+ isGGBAnswerValid,
345
+ };
@@ -0,0 +1,16 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { PointIdentifiers } from "../../../../math/geometry/point.js";
3
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
4
+ type Identifiers = {
5
+ pointIdsA: PointIdentifiers;
6
+ typeExpr: string;
7
+ nodeIdsModuleZ: NodeIdentifiers;
8
+ nodeIdsArgumentZ: NodeIdentifiers;
9
+ typeAffixObjZ: string;
10
+ nodeIdsModuleZPrime: NodeIdentifiers;
11
+ nodeIdsArgumentZPrime: NodeIdentifiers;
12
+ typeAffixObjZPrime: string;
13
+ };
14
+ export declare const complexGeomPlacePointFromZATransformed: Exercise<Identifiers>;
15
+ export {};
16
+ //# sourceMappingURL=complexGeomPlacePointFromZATransformed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complexGeomPlacePointFromZATransformed.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/complex/geometric/complexGeomPlacePointFromZATransformed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAWT,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAGL,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAStC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAgG7C,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,EAAE,eAAe,CAAC;IAChC,gBAAgB,EAAE,eAAe,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IAEtB,mBAAmB,EAAE,eAAe,CAAC;IACrC,qBAAqB,EAAE,eAAe,CAAC;IACvC,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AA84BF,eAAO,MAAM,sCAAsC,EAAE,QAAQ,CAAC,WAAW,CAiBxE,CAAC"}