# Khan/khan-exercises

### Subversion checkout URL

You can clone with
or
.

lint: tabs->spaces and jQuery->$for exercises • Loading branch information... commit 4e4cb9b1c8e0fbd044851f51f4a8d6dda475655b 1 parent 8da1987 beneater authored Showing with 9,760 additions and 9,760 deletions. 1. +44 −44 exercises/absolute_value.html 2. +116 −116 exercises/absolute_value_equations.html 3. +90 −90 exercises/absolute_value_of_complex_numbers.html 4. +81 −81 exercises/adding_and_subtracting_complex_numbers.html 5. +229 −229 exercises/adding_and_subtracting_decimals_word_problems.html 6. +41 −41 exercises/adding_and_subtracting_fractions.html 7. +109 −109 exercises/adding_and_subtracting_negative_numbers.html 8. +101 −101 exercises/adding_and_subtracting_polynomials.html 9. +101 −101 exercises/adding_and_subtracting_radicals.html 10. +51 −51 exercises/adding_decimals.html 11. +49 −49 exercises/adding_decimals_0.5.html 12. +49 −49 exercises/adding_decimals_3.html 13. +43 −43 exercises/adding_fractions.html 14. +46 −46 exercises/adding_fractions_with_common_denominators.html 15. +60 −60 exercises/adding_negative_numbers.html 16. +57 −57 exercises/adding_subtracting_mixed_numbers_0.5.html 17. +65 −65 exercises/adding_subtracting_mixed_numbers_1.html 18. +57 −57 exercises/adding_vectors.html 19. +33 −33 exercises/addition_1.html 20. +29 −29 exercises/addition_2.html 21. +31 −31 exercises/addition_3.html 22. +33 −33 exercises/addition_4.html 23. +91 −91 exercises/addition_rule_of_probability.html 24. +185 −185 exercises/age_word_problems.html 25. +23 −23 exercises/algebra_challenge.html 26. +48 −48 exercises/alternate_exterior_angles.html 27. +83 −83 exercises/alternate_exterior_angles_2.html 28. +48 −48 exercises/alternate_interior_angles.html 29. +83 −83 exercises/alternate_interior_angles_2.html 30. +129 −129 exercises/angle_bisector_theorem.html 31. +97 −97 exercises/angle_types.html 32. +721 −721 exercises/angles_1.html 33. +618 −618 exercises/angles_2.html 34. +84 −84 exercises/angles_of_a_polygon.html 35. +8 −8 exercises/arithmetic_challenge.html 36. +138 −138 exercises/arithmetic_word_problems.html 37. +279 −279 exercises/arithmetic_word_problems_1.html 38. +248 −248 exercises/arithmetic_word_problems_2.html 39. +65 −65 exercises/average_word_problems.html 40. +55 −55 exercises/axis_of_symmetry.html 41. +103 −103 exercises/chain_rule_1.html 42. +26 −26 exercises/changing_decimals_to_percents.html 43. +30 −30 exercises/changing_fractions_to_decimals_1.html 44. +48 −48 exercises/changing_fractions_to_percents.html 45. +19 −19 exercises/changing_percents_to_decimals.html 46. +33 −33 exercises/changing_percents_to_fractions.html 47. +369 −369 exercises/circles_1.html 48. +43 −43 exercises/circumradius.html 49. +130 −130 exercises/combining_like_terms_1.html 50. +130 −130 exercises/combining_like_terms_2.html 51. +78 −78 exercises/comparing_absolute_values.html 52. +107 −107 exercises/comparing_fractions_1.html 53. +73 −73 exercises/comparing_fractions_2.html 54. +148 −148 exercises/comparing_improper_fractions_and_mixed_numbers.html 55. +5 −5 exercises/complementary_and_supplementary_angles.html 56. +53 −53 exercises/complementary_angles.html 57. +74 −74 exercises/completing_the_square_1.html 58. +93 −93 exercises/completing_the_square_2.html 59. +47 −47 exercises/complex_number_polar_form_intuition.html 60. +26 −26 exercises/composite_numbers.html 61. +177 −177 exercises/compound_inequalities.html 62. +206 −206 exercises/congruency_postulates.html 63. +77 −77 exercises/congruent_segments.html 64. +126 −126 exercises/congruent_triangles_1.html 65. +173 −173 exercises/congruent_triangles_2.html 66. +8 −8 exercises/conic_sections.html 67. +50 −50 exercises/converting_between_point_slope_and_slope_intercept.html 68. +176 −176 exercises/converting_between_point_slope_and_standard_form.html 69. +123 −123 exercises/converting_between_slope_intercept_and_standard_form.html 70. +45 −45 exercises/converting_decimals_to_fractions_1.html 71. +49 −49 exercises/converting_decimals_to_fractions_2.html 72. +26 −26 exercises/converting_decimals_to_percents.html 73. +32 −32 exercises/converting_fractions_to_decimals.html 74. +103 −103 exercises/converting_mixed_numbers_and_improper_fractions.html 75. +25 −25 exercises/converting_percents_to_decimals.html 76. +35 −35 exercises/converting_repeating_decimals_to_fractions_1.html 77. +78 −78 exercises/converting_repeating_decimals_to_fractions_2.html 78. +39 −39 exercises/corresponding_angles.html 79. +83 −83 exercises/corresponding_angles_2.html 80. +59 −59 exercises/counting_1.html 81. +68 −68 exercises/counting_2.html 82. +121 −121 exercises/creating_bar_charts_1.html 83. +229 −229 exercises/creating_box_and_whisker_plots.html 84. +66 −66 exercises/decimals_on_the_number_line.html 85. +103 −103 exercises/decimals_on_the_number_line_1.html 86. +114 −114 exercises/decimals_on_the_number_line_2.html 87. +37 −37 exercises/degrees_to_radians.html 88. +135 −135 exercises/dependent_probability.html 89. +126 −126 exercises/derivative_intuition.html 90. +111 −111 exercises/derivatives_1.html 91. +45 −45 exercises/determinants_1.html 92. +164 −164 exercises/direct_and_inverse_variation.html 93. +166 −166 exercises/discount_tax_and_tip_word_problems.html 94. +219 −219 exercises/distance_between_point_and_line.html 95. +120 −120 exercises/distance_formula.html 96. +93 −93 exercises/distributive_property.html Sorry, we could not display the entire diff because too many files (367) changed. 88 exercises/absolute_value.html  @@ -1,53 +1,53 @@ - - Absolute value - + + Absolute value + - - - rand(5) > 0 ? randRange( 1, 9 ) : 0 - rand(3) > 0 ? "." + randRange(1, 9) : "" - randFromArray(["", "-"]) - + + + rand(5) > 0 ? randRange( 1, 9 ) : 0 + rand(3) > 0 ? "." + randRange(1, 9) : "" + randFromArray(["", "-"]) + - - - - What is \lvert SIGN + INT + FRAC \rvert? - - INT + FRAC - - + + + + What is \lvert SIGN + INT + FRAC \rvert? + + INT + FRAC + + - - - init({ - range: [ [-1, 11], [-1, 1] ] - }); - var start = 0; - var end = 10; - var originX = 0; - var x = abs( INT ) + FRAC; - if ( SIGN === "-" ) { - start = -10; - end = 0; - originX = 10; - x = 10 - x; - } - numberLine( start, end ); - style({ stroke: "#6495ED", fill: "#6495ED" }); - graph.pt = circle( [ x, 0 ], 0.15 ); - style({ stroke: "#FFA500", fill: "#FFA500", strokeWidth: 3.5, arrows: "->" }); - path( [ [ originX, 0 ], [ x, 0 ] ] ); - circle( [ originX, 0 ], 0.10 ); - graph.pt.toFront(); - - The distance from 0 to SIGN + INT + FRAC is INT + FRAC, which equals the absolute value. - In other words, INT + FRAC is the non-negative version of SIGN + INT + FRAC. - - + + + init({ + range: [ [-1, 11], [-1, 1] ] + }); + var start = 0; + var end = 10; + var originX = 0; + var x = abs( INT ) + FRAC; + if ( SIGN === "-" ) { + start = -10; + end = 0; + originX = 10; + x = 10 - x; + } + numberLine( start, end ); + style({ stroke: "#6495ED", fill: "#6495ED" }); + graph.pt = circle( [ x, 0 ], 0.15 ); + style({ stroke: "#FFA500", fill: "#FFA500", strokeWidth: 3.5, arrows: "->" }); + path( [ [ originX, 0 ], [ x, 0 ] ] ); + circle( [ originX, 0 ], 0.10 ); + graph.pt.toFront(); + + The distance from 0 to SIGN + INT + FRAC is INT + FRAC, which equals the absolute value. + In other words, INT + FRAC is the non-negative version of SIGN + INT + FRAC. + + 232 exercises/absolute_value_equations.html  @@ -1,130 +1,130 @@ - - Absolute value equations - + + Absolute value equations + - - - randRange( 2, 10 ) - randRangeNonZero( -10, 10 ) - randRange( 2, 10 ) - randRangeNonZero( 2, 10 ) - fractionReduce( D - B, A - C ) - - - (function() { - if ( ( D - B ) / ( A - C) > 0 ) { - return "<code>" - + "x = " - + fractionReduce( -1 * abs( D - B ), abs( A - C ) ) - + "\\text{ or }" - + "x = " - + fractionReduce( abs( D - B ), abs( A - C ) ) - + "</code>"; - } else { - return "No solution"; - } - })() - - - (function() { - var choices = []; + + + randRange( 2, 10 ) + randRangeNonZero( -10, 10 ) + randRange( 2, 10 ) + randRangeNonZero( 2, 10 ) + fractionReduce( D - B, A - C ) + + + (function() { + if ( ( D - B ) / ( A - C) > 0 ) { + return "<code>" + + "x = " + + fractionReduce( -1 * abs( D - B ), abs( A - C ) ) + + "\\text{ or }" + + "x = " + + fractionReduce( abs( D - B ), abs( A - C ) ) + + "</code>"; + } else { + return "No solution"; + } + })() + + + (function() { + var choices = []; - for ( var i = 0; i < 4; i++ ) { - var choice = "<code>"; - var nOffset = randRange( 1, 10 ); - var dOffset = randRangeExclude( 1, 10, [ C - A ] ); - if ( D - B + nOffset === 0 ) { - choice += "x = 0"; - } else { - choice += "x = " - + fractionReduce( -1 * abs( D - B + nOffset ), abs( A - C + dOffset ) ) - + "\\text{ or }" - + "x = " - + fractionReduce( abs( D - B + nOffset ), abs( A - C + dOffset ) ); - } - choice += "</code>"; - choices.unshift( choice ); - } + for ( var i = 0; i < 4; i++ ) { + var choice = "<code>"; + var nOffset = randRange( 1, 10 ); + var dOffset = randRangeExclude( 1, 10, [ C - A ] ); + if ( D - B + nOffset === 0 ) { + choice += "x = 0"; + } else { + choice += "x = " + + fractionReduce( -1 * abs( D - B + nOffset ), abs( A - C + dOffset ) ) + + "\\text{ or }" + + "x = " + + fractionReduce( abs( D - B + nOffset ), abs( A - C + dOffset ) ); + } + choice += "</code>"; + choices.unshift( choice ); + } - if ( ( D - B ) / ( A - C ) > 0 ) { - choices.shift(); - choices.unshift( SOLUTION ); - choices = shuffle( choices ); - choices.push( "No solution"); - } else { - choices = shuffle( choices ); - choices.push( SOLUTION ); - } + if ( ( D - B ) / ( A - C ) > 0 ) { + choices.shift(); + choices.unshift( SOLUTION ); + choices = shuffle( choices ); + choices.push( "No solution"); + } else { + choices = shuffle( choices ); + choices.push( SOLUTION ); + } - return choices; - })() - + return choices; + })() + - - - Solve for x: - A|x| + B = C|x| + D + + + Solve for x: + A|x| + B = C|x| + D - SOLUTION + SOLUTION - - • choice • - - - + + • choice • + + + - - - - Subtract C|x| from both sides: - (A|x| + B) - C|x| = (C|x| + D) - C|x| - A - C|x| + B = D - - - B > 0 ? "Subtract" : "Add" abs(B) B > 0 ? "from" : "to" both sides: - (A - C|x| + B) + -B = D + -B - A - C|x| = D - B - - - Divide both sides by A - C. - \frac{A - C|x|}{A - C} = \frac{D - B}{A - C} - - - Simplify. - |x| = SIMPLIFIED - - - - - Subtract A|x| from both sides: - (A|x| + B) - A|x| = (C|x| + D) - A|x| - B = C - A|x| + D - - - D > 0 ? "Subtract" : "Add" abs(D) D > 0 ? "from" : "to" both sides: - B + -D = (C - A|x| + D) + -D - B - D = C - A|x| - - - Divide both sides by C - A. - \frac{B - D}{C - A} = \frac{C - A|x|}{C - A} - - - Simplify. - SIMPLIFIED = |x| - - - - Thus, the correct answer is SOLUTION. - - - The absolute value cannot be negative. Therefore, there is no solution. - - - + + + + Subtract C|x| from both sides: + (A|x| + B) - C|x| = (C|x| + D) - C|x| + A - C|x| + B = D + + + B > 0 ? "Subtract" : "Add" abs(B) B > 0 ? "from" : "to" both sides: + (A - C|x| + B) + -B = D + -B + A - C|x| = D - B + + + Divide both sides by A - C. + \frac{A - C|x|}{A - C} = \frac{D - B}{A - C} + + + Simplify. + |x| = SIMPLIFIED + + + + + Subtract A|x| from both sides: + (A|x| + B) - A|x| = (C|x| + D) - A|x| + B = C - A|x| + D + + + D > 0 ? "Subtract" : "Add" abs(D) D > 0 ? "from" : "to" both sides: + B + -D = (C - A|x| + D) + -D + B - D = C - A|x| + + + Divide both sides by C - A. + \frac{B - D}{C - A} = \frac{C - A|x|}{C - A} + + + Simplify. + SIMPLIFIED = |x| + + + + Thus, the correct answer is SOLUTION. + + + The absolute value cannot be negative. Therefore, there is no solution. + + + 180 exercises/absolute_value_of_complex_numbers.html  @@ -1,98 +1,98 @@ - - Absolute value of complex numbers - + + Absolute value of complex numbers + - - - randRangeExclude( -8, 8, [ -1, 0, 1, 2 ] ) - randRangeExclude( -8, 8, [ -1, 0, 1, 2 ] ) - REAL * REAL + IMAG * IMAG - complexNumber( REAL, IMAG ) - + + + randRangeExclude( -8, 8, [ -1, 0, 1, 2 ] ) + randRangeExclude( -8, 8, [ -1, 0, 1, 2 ] ) + REAL * REAL + IMAG * IMAG + complexNumber( REAL, IMAG ) + - - - - Determine the absolute value of the following complex number: - - - REPRESENTATION - - - ABS_SQUARE - - - - The absolute value of any number is its distance from zero. - As complex numbers can be visualized as points on the complex plane, absolute values - of complex numbers can be determined using the distance formula. - - - - graphInit({ - range: [[-10, 10], [-10, 10]], - scale: 20, - tickStep: 1, - labelStep: 1, - }); - label( [10, 0.5], "Re", "left" ); - label( [0.5, 9], "Im", "right" ); - circle( [REAL, IMAG], 3 / 20, { - fill: KhanUtil.BLUE, - stroke: "none" - }); - label( [REAL, IMAG], REPRESENTATION, "left", { - color: KhanUtil.BLUE, - labelDistance: 10 - } ); - - - REPRESENTATION is plotted as a blue circle above. - - - - - path([ [0,0], [REAL, IMAG]], { - stroke: KhanUtil.ORANGE - }); - - - The absolute value we need is the length of the orange line segment. - - - - - path([ [0,0], [REAL, 0], [REAL, IMAG]], { - stroke: KhanUtil.BLUE - }); - - - The orange line segment is the hypotenuse of a right triangle. - Its two legs (shown in blue) have lengths abs( REAL ) and abs( IMAG ), which corresponds - to the absolute values of the real and imaginary parts of the complex number REPRESENTATION. - - - - Substituting into the Pythagorean theorem: - \qquad |REPRESENTATION|^2 = abs( REAL )^2 + abs( IMAG )^2, so - \qquad |REPRESENTATION| = \sqrt{abs( REAL )^2 + abs( IMAG )^2}. - - - \qquad \sqrt{abs(REAL)^2 + abs(IMAG)^2} = \sqrt{REAL * REAL + IMAG * IMAG} = \sqrt{ABS_SQUARE} - - - Simplifying the radical gives formattedSquareRootOf( ABS_SQUARE ). That is the absolute value of REPRESENTATION. - - - The radical cannot be simplified. The absolute value of REPRESENTATION is \sqrt{ABS_SQUARE}. - - - - - + + + + Determine the absolute value of the following complex number: + + + REPRESENTATION + + + ABS_SQUARE + + + + The absolute value of any number is its distance from zero. + As complex numbers can be visualized as points on the complex plane, absolute values + of complex numbers can be determined using the distance formula. + + + + graphInit({ + range: [[-10, 10], [-10, 10]], + scale: 20, + tickStep: 1, + labelStep: 1, + }); + label( [10, 0.5], "Re", "left" ); + label( [0.5, 9], "Im", "right" ); + circle( [REAL, IMAG], 3 / 20, { + fill: KhanUtil.BLUE, + stroke: "none" + }); + label( [REAL, IMAG], REPRESENTATION, "left", { + color: KhanUtil.BLUE, + labelDistance: 10 + } ); + + + REPRESENTATION is plotted as a blue circle above. + + + + + path([ [0,0], [REAL, IMAG]], { + stroke: KhanUtil.ORANGE + }); + + + The absolute value we need is the length of the orange line segment. + + + + + path([ [0,0], [REAL, 0], [REAL, IMAG]], { + stroke: KhanUtil.BLUE + }); + + + The orange line segment is the hypotenuse of a right triangle. + Its two legs (shown in blue) have lengths abs( REAL ) and abs( IMAG ), which corresponds + to the absolute values of the real and imaginary parts of the complex number REPRESENTATION. + + + + Substituting into the Pythagorean theorem: + \qquad |REPRESENTATION|^2 = abs( REAL )^2 + abs( IMAG )^2, so + \qquad |REPRESENTATION| = \sqrt{abs( REAL )^2 + abs( IMAG )^2}. + + + \qquad \sqrt{abs(REAL)^2 + abs(IMAG)^2} = \sqrt{REAL * REAL + IMAG * IMAG} = \sqrt{ABS_SQUARE} + + + Simplifying the radical gives formattedSquareRootOf( ABS_SQUARE ). That is the absolute value of REPRESENTATION. + + + The radical cannot be simplified. The absolute value of REPRESENTATION is \sqrt{ABS_SQUARE}. + + + + + 162 exercises/adding_and_subtracting_complex_numbers.html  @@ -1,90 +1,90 @@ - - Adding and subtracting complex numbers - + + Adding and subtracting complex numbers + - - - randRange( -5, 5 ) - randRange( -5, 5 ) - randRange( -5, 5 ) - randRange( -5, 5 ) - randFromArray( [ "add", "subtract" ] ) - ( OPERATION === "add" ? "+" : "-" ) - - ( OPERATION === "add" ? ( A_REAL + B_REAL ) : ( A_REAL - B_REAL ) ) - - - ( OPERATION === "add" ? ( A_IMAG + B_IMAG ) : ( A_IMAG - B_IMAG ) ) - - - complexNumber( A_REAL, A_IMAG ) - - - complexNumber( B_REAL, B_IMAG ) - - - "\\color{" + ORANGE + "}{" + A_REP + "}" - - - "\\color{" + BLUE + "}{" + B_REP + "}" - - - "\\color{" + ORANGE + "}{" + A_REAL + "}" - - - "\\color{" + ORANGE + "}{" + A_IMAG + "}" - - - "\\color{" + BLUE + "}{" + B_REAL + "}" - - - "\\color{" + BLUE + "}{" + B_IMAG + "}" - - + + + randRange( -5, 5 ) + randRange( -5, 5 ) + randRange( -5, 5 ) + randRange( -5, 5 ) + randFromArray( [ "add", "subtract" ] ) + ( OPERATION === "add" ? "+" : "-" ) + + ( OPERATION === "add" ? ( A_REAL + B_REAL ) : ( A_REAL - B_REAL ) ) + + + ( OPERATION === "add" ? ( A_IMAG + B_IMAG ) : ( A_IMAG - B_IMAG ) ) + + + complexNumber( A_REAL, A_IMAG ) + + + complexNumber( B_REAL, B_IMAG ) + + + "\\color{" + ORANGE + "}{" + A_REP + "}" + + + "\\color{" + BLUE + "}{" + B_REP + "}" + + + "\\color{" + ORANGE + "}{" + A_REAL + "}" + + + "\\color{" + ORANGE + "}{" + A_IMAG + "}" + + + "\\color{" + BLUE + "}{" + B_REAL + "}" + + + "\\color{" + BLUE + "}{" + B_IMAG + "}" + + - - - OPERATION == "add" ? "Add" : "Subtract" the following complex numbers: - - - (A_REP_COLORED) OPERATOR (B_REP_COLORED) - - - - [ ANSWER_REAL, ANSWER_IMAG ] - - - - Complex numbers can be OPERATIONed by separately OPERATIONing their real and imaginary components. - - - The real components of the two complex numbers are A_REAL and B_REAL, respectively, - so the real component of the result will be - - A_REAL_COLORED OPERATOR \color{BLUE}{negParens( B_REAL )} - , - which equals ANSWER_REAL. - - - The imaginary components of the two complex numbers are A_IMAG and B_IMAG, respectively, - so the imaginary component of the result will be - - A_IMAG_COLORED OPERATOR \color{BLUE}{negParens( B_IMAG )} - , - which equals ANSWER_IMAG. - - - The result is complexNumber( ANSWER_REAL, ANSWER_IMAG ); its real component is ANSWER_REAL - and its complex component is ANSWER_IMAG. - - - - - + + + OPERATION == "add" ? "Add" : "Subtract" the following complex numbers: + + + (A_REP_COLORED) OPERATOR (B_REP_COLORED) + + + + [ ANSWER_REAL, ANSWER_IMAG ] + + + + Complex numbers can be OPERATIONed by separately OPERATIONing their real and imaginary components. + + + The real components of the two complex numbers are A_REAL and B_REAL, respectively, + so the real component of the result will be + + A_REAL_COLORED OPERATOR \color{BLUE}{negParens( B_REAL )} + , + which equals ANSWER_REAL. + + + The imaginary components of the two complex numbers are A_IMAG and B_IMAG, respectively, + so the imaginary component of the result will be + + A_IMAG_COLORED OPERATOR \color{BLUE}{negParens( B_IMAG )} + , + which equals ANSWER_IMAG. + + + The result is complexNumber( ANSWER_REAL, ANSWER_IMAG ); its real component is ANSWER_REAL + and its complex component is ANSWER_IMAG. + + + + + 458 exercises/adding_and_subtracting_decimals_word_problems.html  @@ -1,266 +1,266 @@ - - Adding and subtracting decimals word problems - + + Adding and subtracting decimals word problems + - - - + + + - - randRange(5,9)*100 - randRange(1,9)*10 - randRange(1,9)*1 - A+B+C - (2) - truncate_to_max(fruit_1_integer*pow(10,-fruit_1_decimal), 2) - randRange(3,9)*100 - randRange(1,9)*10 - randRange(1,9)*1 - D+E+F - (2) - truncate_to_max(fruit_2_integer*pow(10,-fruit_2_decimal), 2) - truncate_to_max((fruit_1+fruit_2),2) - [] - + + randRange(5,9)*100 + randRange(1,9)*10 + randRange(1,9)*1 + A+B+C + (2) + truncate_to_max(fruit_1_integer*pow(10,-fruit_1_decimal), 2) + randRange(3,9)*100 + randRange(1,9)*10 + randRange(1,9)*1 + D+E+F + (2) + truncate_to_max(fruit_2_integer*pow(10,-fruit_2_decimal), 2) + truncate_to_max((fruit_1+fruit_2),2) + [] + - - {On a sunny morning|On a beautiful afternoon}, person(1) rode his(1) bicycle to a farm that sold bags of plural(fruit(1)) for$fruit_1 each and bags of plural(fruit(2)) for $fruit_2 each. - person(1) decided to buy a bag of plural(fruit(1)) and a bag of plural(fruit(2)) {before heading home|because those were his(1) favorite kinds of fruit|}. - How much did person(1) need to pay for his(1) produce? + + {On a sunny morning|On a beautiful afternoon}, person(1) rode his(1) bicycle to a farm that sold bags of plural(fruit(1)) for$fruit_1 each and bags of plural(fruit(2)) for $fruit_2 each. + person(1) decided to buy a bag of plural(fruit(1)) and a bag of plural(fruit(2)) {before heading home|because those were his(1) favorite kinds of fruit|}. + How much did person(1) need to pay for his(1) produce? - fruit_1+fruit_2 + fruit_1+fruit_2 - - To find the total amount person(1) needs to pay, we need to add the price of the plural(fruit(1)) and the price of the plural(fruit(2)). - Price of plural(fruit(1)) + price of plural(fruit(2)) = total price. - - graph.adder = new DecimalAdder( fruit_1_integer, fruit_1_decimal, fruit_2_integer, fruit_2_decimal ); - graph.adder.show(); - graph.adder.showDecimals(); - - - graph.adder.showHint(); - + + To find the total amount person(1) needs to pay, we need to add the price of the plural(fruit(1)) and the price of the plural(fruit(2)). + Price of plural(fruit(1)) + price of plural(fruit(2)) = total price. + + graph.adder = new DecimalAdder( fruit_1_integer, fruit_1_decimal, fruit_2_integer, fruit_2_decimal ); + graph.adder.show(); + graph.adder.showDecimals(); + + + graph.adder.showHint(); + - person(1) needs to pay$solution.

-
-
+

person(1) needs to pay $solution. + + - + - - randRange(1, 3)*100 - randRange(2000,9999) - (2) - truncate_to_max(time_1_integer*pow(10,-time_1_decimal), 2) - randRange(2000,9999) - (2) - truncate_to_max(time_2_integer*pow(10,-time_2_decimal), 2) - randRange(100,999) - (2) - truncate_to_max(time_3_integer*pow(10,-time_3_decimal), 2) - [] - truncate_to_max((time_1-time_2),2) - + + randRange(1, 3)*100 + randRange(2000,9999) + (2) + truncate_to_max(time_1_integer*pow(10,-time_1_decimal), 2) + randRange(2000,9999) + (2) + truncate_to_max(time_2_integer*pow(10,-time_2_decimal), 2) + randRange(100,999) + (2) + truncate_to_max(time_3_integer*pow(10,-time_3_decimal), 2) + [] + truncate_to_max((time_1-time_2),2) + - - {On Monday|Last week}, person(1) and person(2) decided to see how fast they could sprint meters meters. They asked their friend person(3) to time them with a stopwatch. - {After time_3 minutes, person(3) agreed to time the runners.|} person(1) sprinted first and ran meters meters in time_1 seconds. When it was person(2)'s turn, he(2) sped off and completed the run in time_2 seconds. - How much faster was person(2) than person(1)? - - - time_1-time_2 seconds - - - To find how much faster person(2) was than person(1), we need to find the difference between their times. - person(1)'s time - person(2)'s time = difference in times. - - graph.subtractor = new DecimalSubtractor( time_1_integer, time_1_decimal, time_2_integer, time_2_decimal ); - graph.subtractor.show(); - graph.subtractor.showDecimals(); - - - graph.subtractor.showHint(); - - person(2) was solution seconds faster than person(1). - - + + {On Monday|Last week}, person(1) and person(2) decided to see how fast they could sprint meters meters. They asked their friend person(3) to time them with a stopwatch. + {After time_3 minutes, person(3) agreed to time the runners.|} person(1) sprinted first and ran meters meters in time_1 seconds. When it was person(2)'s turn, he(2) sped off and completed the run in time_2 seconds. + How much faster was person(2) than person(1)? + + + time_1-time_2 seconds + + + To find how much faster person(2) was than person(1), we need to find the difference between their times. + person(1)'s time - person(2)'s time = difference in times. + + graph.subtractor = new DecimalSubtractor( time_1_integer, time_1_decimal, time_2_integer, time_2_decimal ); + graph.subtractor.show(); + graph.subtractor.showDecimals(); + + + graph.subtractor.showHint(); + + person(2) was solution seconds faster than person(1). + + - + - - randRange(2,6)*100 - randRange(1,9)*10 - randRange(1,9)*1 - G+H+I - (2) - truncate_to_max(weight_1_integer*pow(10,-weight_1_decimal), 2) - randRange(3,5)*100 - randRange(1,9)*10 - randRange(1,9)*1 - J+K+L - (2) - truncate_to_max(weight_2_integer*pow(10,-weight_2_decimal), 2) - randRange(16.5,22.5) - randRange(16.5,22.5) - truncate_to_max((weight_1+weight_2),2) - [] - + + randRange(2,6)*100 + randRange(1,9)*10 + randRange(1,9)*1 + G+H+I + (2) + truncate_to_max(weight_1_integer*pow(10,-weight_1_decimal), 2) + randRange(3,5)*100 + randRange(1,9)*10 + randRange(1,9)*1 + J+K+L + (2) + truncate_to_max(weight_2_integer*pow(10,-weight_2_decimal), 2) + randRange(16.5,22.5) + randRange(16.5,22.5) + truncate_to_max((weight_1+weight_2),2) + [] + - - {Last Monday|On Saturday}, person(1)'s parents gave birth to twins and named them person(2) and person(3). When they were first born, person(2) weighed weight_1 pounds{ and was height_1 inches tall|}, and person(3) weighed weight_2 pounds {and was height_2 inches tall|}. - How much did the babies weigh in total? + + {Last Monday|On Saturday}, person(1)'s parents gave birth to twins and named them person(2) and person(3). When they were first born, person(2) weighed weight_1 pounds{ and was height_1 inches tall|}, and person(3) weighed weight_2 pounds {and was height_2 inches tall|}. + How much did the babies weigh in total? - + - - weight_1+weight_2 pounds - + + weight_1+weight_2 pounds + - - To find the weights of the 2 babies, we need to add their weights together. - person(2)'s weight + person(3)'s weight = total weight. - - graph.adder = new DecimalAdder( weight_1_integer, weight_1_decimal, weight_2_integer, weight_2_decimal ); - graph.adder.show(); - graph.adder.showDecimals(); - - - graph.adder.showHint(); - + + To find the weights of the 2 babies, we need to add their weights together. + person(2)'s weight + person(3)'s weight = total weight. + + graph.adder = new DecimalAdder( weight_1_integer, weight_1_decimal, weight_2_integer, weight_2_decimal ); + graph.adder.show(); + graph.adder.showDecimals(); + + + graph.adder.showHint(); + - - graph.adder.showHint(); - - Together, the babies weigh solution pounds. - - + + graph.adder.showHint(); + + Together, the babies weigh solution pounds. + + - + - - randRange(1,9) - randRange(1,9) - randRange(2,9) - M*100+N*10+O - (2) - truncate_to_max(amount_paid_integer*pow(10,-amount_paid_decimal), 2) - randRange(1,M)*100 - randRange(1,N)*10 - randRange(1,O)*1 - P+Q+R - (2) - truncate_to_max(price_1_integer*pow(10,-price_1_decimal), 2) - randRange(3, 30) - truncate_to_max((amount_paid-price_1),2) - [] - + + randRange(1,9) + randRange(1,9) + randRange(2,9) + M*100+N*10+O + (2) + truncate_to_max(amount_paid_integer*pow(10,-amount_paid_decimal), 2) + randRange(1,M)*100 + randRange(1,N)*10 + randRange(1,O)*1 + P+Q+R + (2) + truncate_to_max(price_1_integer*pow(10,-price_1_decimal), 2) + randRange(3, 30) + truncate_to_max((amount_paid-price_1),2) + [] + - - {On Tuesday,|Last Thursday,|} person(1) walked to an(store(1)) store {timeofday(1)|} and{, after browsing for time_1 minutes,|} decided to buy a storeItem(1,1) for$price_1. person(1) handed the salesperson $amount_paid for his(1) purchase. - How much change did person(1) receive? - - amount_paid-price_1 + + {On Tuesday,|Last Thursday,|} person(1) walked to an(store(1)) store {timeofday(1)|} and{, after browsing for time_1 minutes,|} decided to buy a storeItem(1,1) for$price_1. person(1) handed the salesperson $amount_paid for his(1) purchase. + How much change did person(1) receive? + + amount_paid-price_1 - - To find out how much change person(1) received, we can subtract the price of the storeItem(1,1) from the amount of money he(1) paid. - The amount person(1) paid - the price of the storeItem(1,1) = the amount of change person(1) received. - - graph.subtractor = new DecimalSubtractor( amount_paid_integer, amount_paid_decimal, price_1_integer, price_1_decimal ); - graph.subtractor.show(); - graph.subtractor.showDecimals(); - - - graph.subtractor.showHint(); - - person(1) received$solution in change.

-
-
+
+

To find out how much change person(1) received, we can subtract the price of the storeItem(1,1) from the amount of money he(1) paid. +

The amount person(1) paid - the price of the storeItem(1,1) = the amount of change person(1) received.

+
+ graph.subtractor = new DecimalSubtractor( amount_paid_integer, amount_paid_decimal, price_1_integer, price_1_decimal ); + graph.subtractor.show(); + graph.subtractor.showDecimals(); +
+
+ graph.subtractor.showHint(); +
+

+
+
-
+
-
- randRange(101,999) - (2) - truncate_to_max(rain_1_integer*pow(10,-rain_1_decimal), 2) - randRange(rain_1_integer+1,999) - (2) - truncate_to_max(rain_2_integer*pow(10,-rain_2_decimal), 2) - randRange(2.1,15.89) - [] - truncate_to_max((rain_2-rain_1),2) -
+
+ randRange(101,999) + (2) + truncate_to_max(rain_1_integer*pow(10,-rain_1_decimal), 2) + randRange(rain_1_integer+1,999) + (2) + truncate_to_max(rain_2_integer*pow(10,-rain_2_decimal), 2) + randRange(2.1,15.89) + [] + truncate_to_max((rain_2-rain_1),2) +
-
-

During a recent rainstorm, rain_1 inches of rain fell in person(1)'s hometown, and rain_2 inches of rain fell in person(2)'s hometown. {During the same storm, snow_1 inches of snow fell in person(3)'s hometown.|}

-

How much more rain fell in person(2)'s town than in person(1)'s town?

-
+
+

During a recent rainstorm, rain_1 inches of rain fell in person(1)'s hometown, and rain_2 inches of rain fell in person(2)'s hometown. {During the same storm, snow_1 inches of snow fell in person(3)'s hometown.|}

+

How much more rain fell in person(2)'s town than in person(1)'s town?

+
-
-

rain_2-rain_1 inches

-
-
-

To find the difference in rainfall, we can subtract the amount of rain in person(1)'s town from the amount of rain in person(2)'s town. -

Rain in person(2)'s town - rain in person(1)'s town = the difference in rain between the two towns.

-
- graph.subtractor = new DecimalSubtractor( rain_2_integer, rain_2_decimal, rain_1_integer, rain_1_decimal ); - graph.subtractor.show(); - graph.subtractor.showDecimals(); -
-
- graph.subtractor.showHint(); -
-

person(2)'s town received solution inches more rain than person(1)'s town.

-
-
+
+

rain_2-rain_1 inches

+
+
+

To find the difference in rainfall, we can subtract the amount of rain in person(1)'s town from the amount of rain in person(2)'s town. +

Rain in person(2)'s town - rain in person(1)'s town = the difference in rain between the two towns.

+
+ graph.subtractor = new DecimalSubtractor( rain_2_integer, rain_2_decimal, rain_1_integer, rain_1_decimal ); + graph.subtractor.show(); + graph.subtractor.showDecimals(); +
+
+ graph.subtractor.showHint(); +
+

person(2)'s town received solution inches more rain than person(1)'s town.

+
+
-
+
-
- randRange(100,2000) - (2) - truncate_to_max(distance_1_integer*pow(10,-distance_1_decimal), 2) - randRange(100,distance_1_integer-1) - (2) - truncate_to_max(distance_2_integer*pow(10,-distance_2_decimal), 2) - truncate_to_max((distance_1+distance_2),2) - randRange(20.2,52.17) - [] -
+
+ randRange(100,2000) + (2) + truncate_to_max(distance_1_integer*pow(10,-distance_1_decimal), 2) + randRange(100,distance_1_integer-1) + (2) + truncate_to_max(distance_2_integer*pow(10,-distance_2_decimal), 2) + truncate_to_max((distance_1+distance_2),2) + randRange(20.2,52.17) + [] +
-
-

{To get to school each morning|To get to work each morning|To visit his(1) grandmother}, person(1) takes an(vehicle(1)) distance_1 plural(distance(1)) and an(vehicle(2)) distance_2 plural(distance(1)). {In total, the journey takes time_1 minutes.|}

-

How many plural(distance(1)) is person(1)'s journey in total?

-
+
+

{To get to school each morning|To get to work each morning|To visit his(1) grandmother}, person(1) takes an(vehicle(1)) distance_1 plural(distance(1)) and an(vehicle(2)) distance_2 plural(distance(1)). {In total, the journey takes time_1 minutes.|}

+

How many plural(distance(1)) is person(1)'s journey in total?

+
-
-

distance_1+distance_2 plural(distance(1))

-
-
-

To find the total distance person(1) travels, we need to add the two distances together. -

Distance on vehicle(1) + distance on vehicle(2) = total distance.

-
-
+
+

distance_1+distance_2 plural(distance(1))

+
+
+

To find the total distance person(1) travels, we need to add the two distances together. +

Distance on vehicle(1) + distance on vehicle(2) = total distance.

+
+
-
-

person(1) travels solution plural(distance(1)) in total.

-
-
-
-
+
+

person(1) travels solution plural(distance(1)) in total.

+
+
+
+
 @@ -1,50 +1,50 @@ - - Adding and subtracting fractions - + + Adding and subtracting fractions + -
-
- randRangeNonZero( -9, 9 ) - randRangeNonZero( -9, 9 ) - randRangeExclude( 2, 9, [ N1, -N1 ] ) - randRangeExclude( 2, 9, [ N2, -N2 ] ) - getLCM( D1, D2 ) - LCM / D1 - LCM / D2 -
+
+
+ randRangeNonZero( -9, 9 ) + randRangeNonZero( -9, 9 ) + randRangeExclude( 2, 9, [ N1, -N1 ] ) + randRangeExclude( 2, 9, [ N2, -N2 ] ) + getLCM( D1, D2 ) + LCM / D1 + LCM / D2 +
-
-
-
-

fraction( N1, D1 ) + fraction( N2, D2 ) = {?}

-
-
N1 / D1 + N2 / D2
-
-
+
+
+
+

fraction( N1, D1 ) + fraction( N2, D2 ) = {?}

+
+
N1 / D1 + N2 / D2
+
+
-
-

First, we need to find a common denominator. The least common multiple of D1 and D2 is the smallest possible common denominator.

-

\lcm(D1, D2) = LCM

-

Now, we need to change both fractions to have a denominator of LCM.

-

\begin{align*}fraction( N1, D1 )\cdot fraction( F1, F1 ) &= fraction( N1 * F1, LCM )\\ - fraction( N2, D2 )\cdot fraction( F2, F2 ) &= fraction( N2 * F2, LCM )\end{align*}

-
-

So, the problem becomes:

-

fraction( N1 * F1, LCM ) + fraction( N2 * F2, LCM ) = {?}

-
-
-

N2 > 0 ? "Add" : "Subtract" the numerators.

-

fraction( F1 * N1 + F2 * N2, LCM)

-
-
-

Simplify.

-

fractionReduce( F1 * N1 + F2 * N2, LCM )

-
-
-
+
+

First, we need to find a common denominator. The least common multiple of D1 and D2 is the smallest possible common denominator.

+

\lcm(D1, D2) = LCM

+

Now, we need to change both fractions to have a denominator of LCM.

+

\begin{align*}fraction( N1, D1 )\cdot fraction( F1, F1 ) &= fraction( N1 * F1, LCM )\\ + fraction( N2, D2 )\cdot fraction( F2, F2 ) &= fraction( N2 * F2, LCM )\end{align*}

+
+

So, the problem becomes:

+

fraction( N1 * F1, LCM ) + fraction( N2 * F2, LCM ) = {?}

+
+
+

N2 > 0 ? "Add" : "Subtract" the numerators.

+

fraction( F1 * N1 + F2 * N2, LCM)

+
+
+

Simplify.

+

fractionReduce( F1 * N1 + F2 * N2, LCM )

+
+
+
 @@ -1,119 +1,119 @@ - - Adding and subtracting negative numbers - + + Adding and subtracting negative numbers + -
-
- randRange( -10, 10 ) - randRange( -10, -1 ) -
+
+
+ randRange( -10, 10 ) + randRange( -10, -1 ) +
-
-
-
- A + B - ceil( ( 10 - ANSWER + A ) / 2) - A - PADDING - ANSWER + PADDING - [] -
-
-
- init({ - range: [ [0, 13], [-3, 1] ] - }); +
+
+
+ A + B + ceil( ( 10 - ANSWER + A ) / 2) + A - PADDING + ANSWER + PADDING + [] +
+
+
+ init({ + range: [ [0, 13], [-3, 1] ] + }); - label( [0, 0], - "\\Huge{\\color{#6495ED}{" + A + "} + \\color{#28AE7B}{(" + B + ")} = {?}}", - "right" ); -
-
-
-
-
- REMOVE = label( [0, -1], - "\\Huge{\\color{#6495ED}{" + A + "} \\color{#28AE7B}{" + B + "} = {?}}", - "right" ); -
-
- numberLine( START, END, 1, 1, -2 ); - circle( [ 1 + A - START, -2 ], 5/40, { stroke: "none", fill: "#6495ed" } ); -
-
- style({ - stroke: "#28AE7B", - arrows: "->" - }, function(){ - path( [ [ 1 + A - START, -2 ], [ 1 + ANSWER - START, -2] ] ); - }); -
-
- circle( [ 1 + ANSWER - START, -2 ], 5/40, { stroke: "none", fill: "#FF00AF" } ); -
-
- REMOVE.remove(); - label( [0, -1], - "\\Huge{\\color{#6495ED}{" + A + "} \\color{#28AE7B}{" + B + "} = " - + "\\color{#FF00AF}{" + ANSWER + "}}", - "right" ); -
-
-
-
-
- A - B - ceil( ( 10 - ANSWER + A ) / 2) - A - PADDING - ANSWER + PADDING - [] -
-
-
- init({ - range: [ [0, 13], [-3, 1] ] - }); + label( [0, 0], + "\\Huge{\\color{#6495ED}{" + A + "} + \\color{#28AE7B}{(" + B + ")} = {?}}", + "right" ); +
+
+
+
+
+ REMOVE = label( [0, -1], + "\\Huge{\\color{#6495ED}{" + A + "} \\color{#28AE7B}{" + B + "} = {?}}", + "right" ); +
+
+ numberLine( START, END, 1, 1, -2 ); + circle( [ 1 + A - START, -2 ], 5/40, { stroke: "none", fill: "#6495ed" } ); +
+
+ style({ + stroke: "#28AE7B", + arrows: "->" + }, function(){ + path( [ [ 1 + A - START, -2 ], [ 1 + ANSWER - START, -2] ] ); + }); +
+
+ circle( [ 1 + ANSWER - START, -2 ], 5/40, { stroke: "none", fill: "#FF00AF" } ); +
+
+ REMOVE.remove(); + label( [0, -1], + "\\Huge{\\color{#6495ED}{" + A + "} \\color{#28AE7B}{" + B + "} = " + + "\\color{#FF00AF}{" + ANSWER + "}}", + "right" ); +
+
+
+
+
+ A - B + ceil( ( 10 - ANSWER + A ) / 2) + A - PADDING + ANSWER + PADDING + [] +
+
+
+ init({ + range: [ [0, 13], [-3, 1] ] + }); - label( [0, 0], - "\\Huge{\\color{#6495ED}{" + A + "} - \\color{#28AE7B}{(" + B + ")} = {?}}", - "right" ); -
-
-
-
-
- REMOVE = label( [0, -1], - "\\Huge{\\color{#6495ED}{" + A + "} \\color{#28AE7B}{ +" + abs( B ) + "} = {?}}", - "right" ); -
-
- numberLine( START, END, 1, 1, -2 ); - circle( [ 1 + A - START, -2 ], 5/40, { stroke: "none", fill: "#6495ed" } ); -
-
- style({ - stroke: "#28AE7B", - arrows: "->" - }, function(){ - path( [ [ 1 + A - START, -2 ], [ 1 + ANSWER - START, -2] ] ); - }); -
-
- circle( [ 1 + ANSWER - START, -2 ], 5/40, { stroke: "none", fill: "#FF00AF" } ); -
-
- REMOVE.remove(); - label( [0, -1], - "\\Huge{\\color{#6495ED}{" + A + "} \\color{#28AE7B}{ +" + abs( B ) + "} = " - + "\\color{#FF00AF}{" + ANSWER + "}}", - "right" ); -
-
-
-
-
+ label( [0, 0], + "\\Huge{\\color{#6495ED}{" + A + "} - \\color{#28AE7B}{(" + B + ")} = {?}}", + "right" ); +
+
+
+
+
+ REMOVE = label( [0, -1], + "\\Huge{\\color{#6495ED}{" + A + "} \\color{#28AE7B}{ +" + abs( B ) + "} = {?}}", + "right" ); +
+
+ numberLine( START, END, 1, 1, -2 ); + circle( [ 1 + A - START, -2 ], 5/40, { stroke: "none", fill: "#6495ed" } ); +
+
+ style({ + stroke: "#28AE7B", + arrows: "->" + }, function(){ + path( [ [ 1 + A - START, -2 ], [ 1 + ANSWER - START, -2] ] ); + }); +
+
+ circle( [ 1 + ANSWER - START, -2 ], 5/40, { stroke: "none", fill: "#FF00AF" } ); +
+
+ REMOVE.remove(); + label( [0, -1], + "\\Huge{\\color{#6495ED}{" + A + "} \\color{#28AE7B}{ +" + abs( B ) + "} = " + + "\\color{#FF00AF}{" + ANSWER + "}}", + "right" ); +
+
+
+
+
 @@ -1,121 +1,121 @@ - - Adding and subtracting polynomials - - + + return answers; + } + -
-
- randVar() - [ BLUE, ORANGE, GREEN ] - 7 - randRangeUniqueNonZero( 0, MAX_DEGREE, randRange(2, 3) ).sort().reverse() - tabulate( function() { - var coefs = []; - for ( var i = 0; i <= MAX_DEGREE; i++ ) { - var value = 0; - for ( var j = 0; j < NON_ZERO_INDICES.length; j++ ) { - if ( i === NON_ZERO_INDICES[ j ] ) { - value = randRangeNonZero( -7, 7 ); - break; - } - } - coefs[ i ] = value; - } +
+
+ randVar() + [ BLUE, ORANGE, GREEN ] + 7 + randRangeUniqueNonZero( 0, MAX_DEGREE, randRange(2, 3) ).sort().reverse() + tabulate( function() { + var coefs = []; + for ( var i = 0; i <= MAX_DEGREE; i++ ) { + var value = 0; + for ( var j = 0; j < NON_ZERO_INDICES.length; j++ ) { + if ( i === NON_ZERO_INDICES[ j ] ) { + value = randRangeNonZero( -7, 7 ); + break; + } + } + coefs[ i ] = value; + } - return new Polynomial( 0, MAX_DEGREE, coefs, X ); - }, 2 ) -
+ return new Polynomial( 0, MAX_DEGREE, coefs, X ); + }, 2 ) +
-
-
-
+
+
+
-

Simplify the expression.

-

(POL_1) SIGN (POL_2)

-

SOLUTION

-
-
• POL_1.subtract( POL_2 )
• -
• -
-
+

Simplify the expression.

+

(POL_1) SIGN (POL_2)

+

SOLUTION

+
+
• POL_1.subtract( POL_2 )
• +
• +
+
-
-
- "-" - POL_1.subtract( POL_2 ) - getFakeAnswers( SOLUTION ) -
+
+
+ "-" + POL_1.subtract( POL_2 ) + getFakeAnswers( SOLUTION ) +
-
-
• -
• -
+
+
• +
• +
-
-
-

Since this is subtraction, when removing the parenthesis we must distribute the minus sign to all terms in the second polynomial.

- POL_2 = POL_2.multiply( -1 ), null -

POL_1 + POL_2

-
-
-
-
+
+
+

Since this is subtraction, when removing the parenthesis we must distribute the minus sign to all terms in the second polynomial.

+ POL_2 = POL_2.multiply( -1 ), null +

POL_1 + POL_2

+
+
+
+
-
-
-

Since this is addition, we can remove the parenthesis without any extra steps.

-

POL_1 + POL_2

-
-
-

Identify like terms.

-

( POL.coefs[ index ] < 0 ) ? "-" : ( n === 0 && POL === POL_1 ) ? "" : "+"\color{COLORS[ n ]}{abs( POL.coefs[ index ] ) === 1 ? "" : abs( POL.coefs[ index ] )X^index}

+
+
+

Since this is addition, we can remove the parenthesis without any extra steps.

+

POL_1 + POL_2

+
+
+

Identify like terms.

+

( POL.coefs[ index ] < 0 ) ? "-" : ( n === 0 && POL === POL_1 ) ? "" : "+"\color{COLORS[ n ]}{abs( POL.coefs[ index ] ) === 1 ? "" : abs( POL.coefs[ index ] )X^index}

-
-
-

Combine like terms.

-

+\color{COLORS[ n ]}{(POL_1.coefs[ index ] + POL_2.coefs[ index ])X^index}

-
-
-

-

-

You're done!

-
-
-
+
+
+

Combine like terms.

+

+\color{COLORS[ n ]}{(POL_1.coefs[ index ] + POL_2.coefs[ index ])X^index}

+
+
+

+

+

You're done!

+
+
+
-
- randFromArray([2, 3, 5, 6, 7, 10, 11, 13]) -
-
-
-
- randRangeUnique( 1, 5, 2 ) - pow( A_COEFF, 2 ) * NUM - pow( B_COEFF, 2 ) * NUM -
-

Simplify the following expression:

-

\sqrt{A} + \sqrt{B}

-
pow( A_COEFF + B_COEFF, 2 ) * NUM
-
-

First, try to factor any perfect squares out of the radicals.

-
-

= \sqrt{A} + \sqrt{B}

-

= \sqrt{pow( A_COEFF, 2 ) \cdot NUM} + \sqrt{pow( B_COEFF, 2 ) \cdot NUM}

-
-

-
-

= \sqrt{pow( A_COEFF, 2 )} \cdot \sqrt{NUM} + \sqrt{pow( B_COEFF, 2 )} \cdot \sqrt{NUM}

-

= A_COEFF\sqrt{NUM} + B_COEFF\sqrt{NUM}

-
-

Finally, simplify by combining the terms.

-

= ( A_COEFF + B_COEFF )\sqrt{NUM} = A_COEFF + B_COEFF\sqrt{NUM}

-
-
-
-
- randRange( 2, 5 ) - randRange( 1, A_COEFF - 1 ) - pow( A_COEFF, 2 ) * NUM - pow( B_COEFF, 2 ) * NUM -
-

Simplify the following expression