mirror of
https://github.com/DeaDvey/mathgenerator.git
synced 2025-11-28 06:25:23 +01:00
add format kwarg
This commit is contained in:
230
README.md
230
README.md
@@ -9,7 +9,7 @@ If you have an idea for a generator, please add it as an issue and tag it with t
|
||||
## Table of Contents
|
||||
* [Installation](#installation)
|
||||
* [Basic Usage](#basic-usage)
|
||||
* [Creating a worksheet](#creating-a-worksheet)
|
||||
* [More Complicated Usage](#more-complicated-usage)
|
||||
* [Documentation](#documentation)
|
||||
* [List of Generators](#list-of-generators)
|
||||
* [algebra](#algebra)
|
||||
@@ -60,138 +60,142 @@ This creates the pdf `ws.pdf` in your current directory
|
||||
|
||||
* `genById(id)` generates a problem, solution set with generator id `id` in the format `[problem, solution]`
|
||||
|
||||
* Pass the kwarg `format=latex` to return problem and solution set as latex. If latex is not available for that generator, the problem will be returned as raw data.
|
||||
|
||||
* Pass the kwarg `format=raw` to return just the raw data for each generator. An array of each variable necessary to the generator is returned.
|
||||
|
||||
## List of Generators
|
||||
## algebra
|
||||
| Id | Skill | Example problem | Example Solution | Function Name | Kwargs |
|
||||
|------|-------|-----------------|------------------|---------------|--------|
|
||||
| 11 | [Basic Algebra](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/basic_algebra.py) | 9x + 6 = 6 | 0 | basic_algebra | `maxVariable=10` |
|
||||
| 12 | [Logarithm](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/log.py) | log2(256) | 8 | log | `maxBase=3` `maxVal=8` |
|
||||
| 17 | [Integer Multiplication with 2x2 Matrix](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/multiply_int_to_22_matrix.py) | 1 * [[3, 1], [10, 1]] = | [[3,1],[10,1]] | multiply_int_to_22_matrix | `maxMatrixVal=10` `maxRes=100` |
|
||||
| 20 | [Midpoint of the two point](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/midpoint_of_two_points.py) | (-19,-5),(-10,-3)= | (-14.5,-4.0) | midpoint_of_two_points | `maxValue=20` |
|
||||
| 21 | [Factoring Quadratic](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/factoring.py) | x^2-18x+81 | (x-9)(x-9) | factoring | `range_x1=10` `range_x2=10` |
|
||||
| 23 | [Solve a System of Equations in R^2](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/system_of_equations.py) | -3x + 4y = -12, -x + 10y = 22 | x = 8, y = 3 | system_of_equations | `range_x=10` `range_y=10` `coeff_mult_range=10` |
|
||||
| 24 | [Distance between 2 points](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/distance_two_points.py) | Find the distance between (3, 7) and (-20, -18) | sqrt(1154) | distance_two_points | `maxValXY=20` `minValXY=-20` |
|
||||
| 26 | [Linear Equations](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/linear_equations.py) | 6x + -13y = 111, 2x + -4y = 36 | x = 12, y = -3 | linear_equations | `n=2` `varRange=20` `coeffRange=20` |
|
||||
| 41 | [Intersection of Two Lines](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/intersection_of_two_lines.py) | Find the point of intersection of the two lines: y = -8/4x - 7 and y = -7/3x + 4 | (33, -73) | intersection_of_two_lines | `minM=-10` `maxM=10` `minB=-10` `maxB=10` `minDenominator=1` `maxDenominator=6` |
|
||||
| 43 | [Cross Product of 2 Vectors](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/vector_cross.py) | [1, 7, -1] X [-5, 8, 19] = | [141, -14, 43] | vector_cross | `minVal=-20` `maxVal=20` |
|
||||
| 45 | [Simple Interest](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/simple_interest.py) | Simple interest for a principle amount of 5581 dollars, 1% rate of interest and for a time period of 8 years is = | 446.48 | simple_interest | `maxPrinciple=10000` `maxRate=10` `maxTime=10` |
|
||||
| 46 | [Multiplication of two matrices](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/matrix_multiplication.py) | Multiply<table><tr><td>3</td><td>-7</td><td>-9</td><td>-9</td></tr><tr><td>-2</td><td>5</td><td>-4</td><td>10</td></tr></table>and<table><tr><td>9</td><td>-2</td><td>10</td><td>-8</td></tr><tr><td>-3</td><td>10</td><td>-9</td><td>1</td></tr><tr><td>5</td><td>3</td><td>0</td><td>3</td></tr><tr><td>0</td><td>3</td><td>-10</td><td>0</td></tr></table> | <table><tr><td>3</td><td>-130</td><td>183</td><td>-58</td></tr><tr><td>-53</td><td>72</td><td>-165</td><td>9</td></tr></table> | matrix_multiplication | `maxVal=100` `max_dim=10` |
|
||||
| 50 | [Quadratic Equation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/quadratic_equation.py) | Zeros of the Quadratic Equation 98x^2+108x+23=0 | [-0.29, -0.81] | quadratic_equation | `maxVal=100` |
|
||||
| 65 | [Multiplication of 2 complex numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/multiply_complex_numbers.py) | (8+10j) * (-7+4j) = | (-96-38j) | multiply_complex_numbers | `minRealImaginaryNum=-20` `maxRealImaginaryNum=20` |
|
||||
| 72 | [Dot Product of 2 Vectors](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/vector_dot.py) | [-3, -8, 2] . [15, 7, -6] = | -113 | vector_dot | `minVal=-20` `maxVal=20` |
|
||||
| 74 | [Inverse of a Matrix](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/invert_matrix.py) | Inverse of Matrix Matrix([[60, 59, 5], [64, 13, 45], [54, 19, 35]]) is: | Matrix([[20/511, 197/1022, -37/146], [-19/1022, -183/1022, 17/73], [-257/5110, -1023/5110, 107/365]]) | invert_matrix | `SquareMatrixDimension=3` `MaxMatrixElement=99` `OnlyIntegerElementsInInvertedMatrix=False` |
|
||||
| 77 | [Determinant to 2x2 Matrix](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/int_matrix_22_determinant.py) | Det([[38, 27], [91, 58]]) = | -253 | int_matrix_22_determinant | `maxMatrixVal=100` |
|
||||
| 78 | [Compound Interest](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/compound_interest.py) | Compound interest for a principle amount of 5669 dollars, 4% rate of interest and for a time period of 8 year is = | 7758.42 | compound_interest | `maxPrinciple=10000` `maxRate=10` `maxTime=10` |
|
||||
| 100 | [complex Quadratic Equation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/complex_quadratic.py) | Find the roots of given Quadratic Equation 3x^2 + 9x + 4 = 0 | simplified solution : ((-0.543, -2.457)), generalized solution : ((-9 + sqrt(33))/2*3, (-9 - sqrt(33))/2*3) | complex_quadratic | `prob_type=0` `max_range=10` |
|
||||
| 105 | [Combine Like terms](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/combine_like_terms.py) | 7x^1 | 7x^1 | combine_like_terms | `maxCoef=10` `maxExp=20` `maxTerms=10` |
|
||||
| 111 | [Expanding Factored Binomial](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/expanding.py) | (8x-5)(-3x-3) | -24*x^2-9*x+15 | expanding | `range_x1=10` `range_x2=10` `range_a=10` `range_b=10` |
|
||||
| 11 | [Basic Algebra](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/basic_algebra.py) | 4x + 8 = 10 | 1/2 | basic_algebra | `maxVariable=10` |
|
||||
| 12 | [Logarithm](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/log.py) | log2(8) | 3 | log | `maxBase=3` `maxVal=8` |
|
||||
| 17 | [Integer Multiplication with 2x2 Matrix](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/multiply_int_to_22_matrix.py) | 6 * [[3, 3], [7, 2]] = | [[18,18],[42,12]] | multiply_int_to_22_matrix | `maxMatrixVal=10` `maxRes=100` |
|
||||
| 20 | [Midpoint of the two point](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/midpoint_of_two_points.py) | (-10,11),(-4,-12)= | (-7.0,-0.5) | midpoint_of_two_points | `maxValue=20` |
|
||||
| 21 | [Factoring Quadratic](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/factoring.py) | x^2+4x-21 | (x+7)(x-3) | factoring | `range_x1=10` `range_x2=10` |
|
||||
| 23 | [Solve a System of Equations in R^2](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/system_of_equations.py) | -x + 8y = -35, -4x + 5y = -32 | x = 3, y = -4 | system_of_equations | `range_x=10` `range_y=10` `coeff_mult_range=10` |
|
||||
| 24 | [Distance between 2 points](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/distance_two_points.py) | Find the distance between (-4, 5) and (-19, 11) | sqrt(261) | distance_two_points | `maxValXY=20` `minValXY=-20` |
|
||||
| 26 | [Linear Equations](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/linear_equations.py) | 3x + 6y = 18, -14x + 11y = -279 | x = 16, y = -5 | linear_equations | `n=2` `varRange=20` `coeffRange=20` |
|
||||
| 41 | [Intersection of Two Lines](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/intersection_of_two_lines.py) | Find the point of intersection of the two lines: y = 0/5x + 10 and y = -5/2x + 5 | (-2, 10) | intersection_of_two_lines | `minM=-10` `maxM=10` `minB=-10` `maxB=10` `minDenominator=1` `maxDenominator=6` |
|
||||
| 43 | [Cross Product of 2 Vectors](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/vector_cross.py) | [-2, -13, 7] X [9, -17, 8] = | [15, 79, 151] | vector_cross | `minVal=-20` `maxVal=20` |
|
||||
| 45 | [Simple Interest](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/simple_interest.py) | Simple interest for a principle amount of 2145 dollars, 7% rate of interest and for a time period of 7 years is = | 1051.05 | simple_interest | `maxPrinciple=10000` `maxRate=10` `maxTime=10` |
|
||||
| 46 | [Multiplication of two matrices](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/matrix_multiplication.py) | Multiply<table><tr><td>-8</td><td>-7</td></tr><tr><td>10</td><td>2</td></tr><tr><td>-7</td><td>-8</td></tr><tr><td>-7</td><td>-10</td></tr></table>and<table><tr><td>9</td><td>2</td><td>2</td><td>1</td></tr><tr><td>-1</td><td>3</td><td>-1</td><td>-6</td></tr></table> | <table><tr><td>-65</td><td>-37</td><td>-9</td><td>34</td></tr><tr><td>88</td><td>26</td><td>18</td><td>-2</td></tr><tr><td>-55</td><td>-38</td><td>-6</td><td>41</td></tr><tr><td>-53</td><td>-44</td><td>-4</td><td>53</td></tr></table> | matrix_multiplication | `maxVal=100` `max_dim=10` |
|
||||
| 50 | [Quadratic Equation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/quadratic_equation.py) | Zeros of the Quadratic Equation 10x^2+51x+46=0 | [-1.17, -3.93] | quadratic_equation | `maxVal=100` |
|
||||
| 65 | [Multiplication of 2 complex numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/multiply_complex_numbers.py) | (-4+11j) * (5-9j) = | (79+91j) | multiply_complex_numbers | `minRealImaginaryNum=-20` `maxRealImaginaryNum=20` |
|
||||
| 72 | [Dot Product of 2 Vectors](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/vector_dot.py) | [-12, 11, 13] . [-4, 9, -13] = | -22 | vector_dot | `minVal=-20` `maxVal=20` |
|
||||
| 74 | [Inverse of a Matrix](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/invert_matrix.py) | Inverse of Matrix Matrix([[25, 98, 43], [11, 56, 70], [27, 19, 89]]) is: | Matrix([[1218/41533, -2635/41533, 1484/41533], [911/124599, 1064/124599, -1277/124599], [-1303/124599, 2171/124599, 322/124599]]) | invert_matrix | `SquareMatrixDimension=3` `MaxMatrixElement=99` `OnlyIntegerElementsInInvertedMatrix=False` |
|
||||
| 77 | [Determinant to 2x2 Matrix](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/int_matrix_22_determinant.py) | Det([[11, 84], [38, 41]]) = | -2741 | int_matrix_22_determinant | `maxMatrixVal=100` |
|
||||
| 78 | [Compound Interest](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/compound_interest.py) | Compound interest for a principle amount of 4581 dollars, 4% rate of interest and for a time period of 6 year is = | 5796.43 | compound_interest | `maxPrinciple=10000` `maxRate=10` `maxTime=10` |
|
||||
| 100 | [complex Quadratic Equation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/complex_quadratic.py) | Find the roots of given Quadratic Equation 9x^2 + 7x + 1 = 0 | simplified solution : ((-0.189, -0.589)), generalized solution : ((-7 + sqrt(13))/2*9, (-7 - sqrt(13))/2*9) | complex_quadratic | `prob_type=0` `max_range=10` |
|
||||
| 105 | [Combine Like terms](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/combine_like_terms.py) | 8x^4 + 4x^4 + 6x^1 + 9x^4 + 7x^5 + 10x^3 | 6x^1 + 10x^3 + 21x^4 + 7x^5 | combine_like_terms | `maxCoef=10` `maxExp=20` `maxTerms=10` |
|
||||
| 111 | [Expanding Factored Binomial](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/expanding.py) | (x-3)(x+4) | *x^2-3*x-12 | expanding | `range_x1=10` `range_x2=10` `range_a=10` `range_b=10` |
|
||||
## basic_math
|
||||
| Id | Skill | Example problem | Example Solution | Function Name | Kwargs |
|
||||
|------|-------|-----------------|------------------|---------------|--------|
|
||||
| 0 | [Addition](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/addition.py) | 33+15= | 48 | addition | `maxSum=99` `maxAddend=50` |
|
||||
| 1 | [Subtraction](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/subtraction.py) | 5-5= | 0 | subtraction | `maxMinuend=99` `maxDiff=99` |
|
||||
| 2 | [Multiplication](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/multiplication.py) | 1*11= | 11 | multiplication | `maxMulti=12` |
|
||||
| 3 | [Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/division.py) | 384/16= | 24 | division | `maxA=25` `maxB=25` |
|
||||
| 6 | [Square Root](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/square_root.py) | sqrt(49)= | 7 | square_root | `minNo=1` `maxNo=12` |
|
||||
| 8 | [Square](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/square.py) | 13^2= | 169 | square | `maxSquareNum=20` |
|
||||
| 13 | [Complex Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/complex_division.py) | 89/11= | 8.09 | complex_division | `maxRes=99` `maxDivid=99` |
|
||||
| 16 | [Fraction Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/divide_fractions.py) | (2/9)/(3/4) | 8/27 | divide_fractions | `maxVal=10` |
|
||||
| 28 | [Fraction Multiplication](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/fraction_multiplication.py) | (3/8)*(10/8) | 15/32 | fraction_multiplication | `maxVal=10` |
|
||||
| 0 | [Addition](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/addition.py) | 16+43= | 59 | addition | `maxSum=99` `maxAddend=50` |
|
||||
| 1 | [Subtraction](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/subtraction.py) | 85-8= | 77 | subtraction | `maxMinuend=99` `maxDiff=99` |
|
||||
| 2 | [Multiplication](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/multiplication.py) | 1*4= | 4 | multiplication | `maxMulti=12` |
|
||||
| 3 | [Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/division.py) | 9/9= | 1 | division | `maxA=25` `maxB=25` |
|
||||
| 6 | [Square Root](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/square_root.py) | sqrt(4)= | 2 | square_root | `minNo=1` `maxNo=12` |
|
||||
| 8 | [Square](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/square.py) | 17^2= | 289 | square | `maxSquareNum=20` |
|
||||
| 13 | [Complex Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/complex_division.py) | 21/59= | 0.36 | complex_division | `maxRes=99` `maxDivid=99` |
|
||||
| 16 | [Fraction Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/divide_fractions.py) | (5/2)/(3/10) | 25/3 | divide_fractions | `maxVal=10` |
|
||||
| 28 | [Fraction Multiplication](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/fraction_multiplication.py) | (5/1)*(10/4) | 25/2 | fraction_multiplication | `maxVal=10` |
|
||||
| 31 | [Factorial](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/factorial.py) | 2! = | 2 | factorial | `maxInput=6` |
|
||||
| 44 | [Compare Fractions](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/compare_fractions.py) | Which symbol represents the comparison between 9/8 and 10/7? | < | compare_fractions | `maxVal=10` |
|
||||
| 47 | [Cube Root](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/cube_root.py) | What is the cube root of 183 up to 2 decimal places? | 5.68 | cube_root | `minNo=1` `maxNo=1000` |
|
||||
| 53 | [Exponentiation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/exponentiation.py) | 20^6 = | 64000000 | exponentiation | `maxBase=20` `maxExpo=10` |
|
||||
| 71 | [Absolute difference between two numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/absolute_difference.py) | |-67--16|= | 51 | absolute_difference | `maxA=100` `maxB=100` |
|
||||
| 80 | [Percentage of a number](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/percentage.py) | What is 24% of 74? | 17.76 | percentage | `maxValue=99` `maxpercentage=99` |
|
||||
| 90 | [isprime](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/is_prime.py) | Is 50 prime? | No | is_prime | `max_num=100` |
|
||||
| 97 | [Power of Powers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/power_of_powers.py) | Simplify 48^7^6= | 48^42 | power_of_powers | `maxBase=50` `maxPower=10` |
|
||||
| 44 | [Compare Fractions](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/compare_fractions.py) | Which symbol represents the comparison between 8/2 and 9/8? | > | compare_fractions | `maxVal=10` |
|
||||
| 47 | [Cube Root](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/cube_root.py) | What is the cube root of 396 up to 2 decimal places? | 7.34 | cube_root | `minNo=1` `maxNo=1000` |
|
||||
| 53 | [Exponentiation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/exponentiation.py) | 2^7 = | 128 | exponentiation | `maxBase=20` `maxExpo=10` |
|
||||
| 71 | [Absolute difference between two numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/absolute_difference.py) | |37--95|= | 132 | absolute_difference | `maxA=100` `maxB=100` |
|
||||
| 80 | [Percentage of a number](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/percentage.py) | What is 99% of 76? | 75.24 | percentage | `maxValue=99` `maxpercentage=99` |
|
||||
| 90 | [isprime](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/is_prime.py) | Is 61 prime? | Yes | is_prime | `max_num=100` |
|
||||
| 97 | [Power of Powers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/power_of_powers.py) | Simplify 49^8^2= | 49^16 | power_of_powers | `maxBase=50` `maxPower=10` |
|
||||
## calculus
|
||||
| Id | Skill | Example problem | Example Solution | Function Name | Kwargs |
|
||||
|------|-------|-----------------|------------------|---------------|--------|
|
||||
| 7 | [Power Rule Differentiation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/power_rule_differentiation.py) | 7x^2 + 7x^3 + 5x^9 + 4x^1 | 14x^1 + 21x^2 + 45x^8 + 4x^0 | power_rule_differentiation | `maxCoef=10` `maxExp=10` `maxTerms=5` |
|
||||
| 48 | [Power Rule Integration](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/power_rule_integration.py) | 4x^6 + 1x^9 + 8x^1 + 1x^8 | (4/6)x^7 + (1/9)x^10 + (8/1)x^2 + (1/8)x^9 + c | power_rule_integration | `maxCoef=10` `maxExp=10` `maxTerms=5` |
|
||||
| 88 | [Differentiation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/differentiation.py) | differentiate w.r.t x : d(sin(x)+8*x^3)/dx | 24*x^2 + cos(x) | differentiation | `diff_lvl=2` |
|
||||
| 89 | [Definite Integral of Quadratic Equation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/definite_integral.py) | The definite integral within limits 0 to 1 of the equation 62x^2 + 93x + 81 is = | 148.1667 | definite_integral | `max_coeff=100` |
|
||||
| 110 | [Stationary Points](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/stationary_points.py) | f(x)=9*x^3 + 3*x^2 + 4 | (-2/9,328/81),(0,4) | stationary_points | `maxExp=3` `maxCoef=10` |
|
||||
| 7 | [Power Rule Differentiation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/power_rule_differentiation.py) | 2x^1 + 9x^7 + 6x^4 | 2x^0 + 63x^6 + 24x^3 | power_rule_differentiation | `maxCoef=10` `maxExp=10` `maxTerms=5` |
|
||||
| 48 | [Power Rule Integration](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/power_rule_integration.py) | 5x^2 + 3x^10 + 4x^1 | (5/2)x^3 + (3/10)x^11 + (4/1)x^2 + c | power_rule_integration | `maxCoef=10` `maxExp=10` `maxTerms=5` |
|
||||
| 88 | [Differentiation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/differentiation.py) | differentiate w.r.t x : d(ln(x)+2*x^(-3))/dx | 1/x - 6/x^4 | differentiation | `diff_lvl=2` |
|
||||
| 89 | [Definite Integral of Quadratic Equation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/definite_integral.py) | The definite integral within limits 0 to 1 of the equation 100x^2 + 80x + 22 is = | 95.3333 | definite_integral | `max_coeff=100` |
|
||||
| 110 | [Stationary Points](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/stationary_points.py) | f(x)=3*x^3 + 6*x^2 + 9*x + 1 | | stationary_points | `maxExp=3` `maxCoef=10` |
|
||||
## computer_science
|
||||
| Id | Skill | Example problem | Example Solution | Function Name | Kwargs |
|
||||
|------|-------|-----------------|------------------|---------------|--------|
|
||||
| 4 | [Binary Complement 1s](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_complement_1s.py) | 01000= | 10111 | binary_complement_1s | `maxDigits=10` |
|
||||
| 5 | [Modulo Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/modulo_division.py) | 64%42= | 22 | modulo_division | `maxRes=99` `maxModulo=99` |
|
||||
| 14 | [Decimal to Binary](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/decimal_to_binary.py) | Binary of 63= | 111111 | decimal_to_binary | `max_dec=99` |
|
||||
| 15 | [Binary to Decimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_to_decimal.py) | 101 | 5 | binary_to_decimal | `max_dig=10` |
|
||||
| 56 | [Fibonacci Series](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/fibonacci_series.py) | The Fibonacci Series of the first 14 numbers is ? | [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233] | fibonacci_series | `minNo=1` |
|
||||
| 62 | [nth Fibonacci number](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/nth_fibonacci_number.py) | What is the 67th Fibonacci number? | 44945570212853 | nth_fibonacci_number | `maxN=100` |
|
||||
| 64 | [Binary to Hexidecimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_to_hex.py) | 0111111 | 0x3f | binary_to_hex | `max_dig=10` |
|
||||
| 73 | [Binary 2's Complement](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_2s_complement.py) | 2's complement of 10 = | 10 | binary_2s_complement | `maxDigits=10` |
|
||||
| 79 | [Decimal to Hexadecimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/decimal_to_hexadeci.py) | Binary of 169= | 0xa9 | decimal_to_hexadeci | `max_dec=1000` |
|
||||
| 84 | [Converts decimal to octal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/decimal_to_octal.py) | The decimal number 3744 in Octal is: | 0o7240 | decimal_to_octal | `maxDecimal=4096` |
|
||||
| 91 | [Binary Coded Decimal to Integer](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/bcd_to_decimal.py) | Integer of Binary Coded Decimal 1 is = | 5924 | bcd_to_decimal | `maxNumber=10000` |
|
||||
| 103 | [Decimal to Binary Coded Decimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/decimal_to_bcd.py) | BCD of Decimal Number 3461 is = | 1385 | decimal_to_bcd | `maxNumber=10000` |
|
||||
| 4 | [Binary Complement 1s](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_complement_1s.py) | 1= | 0 | binary_complement_1s | `maxDigits=10` |
|
||||
| 5 | [Modulo Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/modulo_division.py) | 51%46= | 5 | modulo_division | `maxRes=99` `maxModulo=99` |
|
||||
| 14 | [Decimal to Binary](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/decimal_to_binary.py) | Binary of 58= | 111010 | decimal_to_binary | `max_dec=99` |
|
||||
| 15 | [Binary to Decimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_to_decimal.py) | 0110001111 | 399 | binary_to_decimal | `max_dig=10` |
|
||||
| 56 | [Fibonacci Series](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/fibonacci_series.py) | The Fibonacci Series of the first 8 numbers is ? | [0, 1, 1, 2, 3, 5, 8, 13] | fibonacci_series | `minNo=1` |
|
||||
| 62 | [nth Fibonacci number](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/nth_fibonacci_number.py) | What is the 78th Fibonacci number? | 8944394323791488 | nth_fibonacci_number | `maxN=100` |
|
||||
| 64 | [Binary to Hexidecimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_to_hex.py) | 111011 | 0x3b | binary_to_hex | `max_dig=10` |
|
||||
| 73 | [Binary 2's Complement](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_2s_complement.py) | 2's complement of 11010 = | 110 | binary_2s_complement | `maxDigits=10` |
|
||||
| 79 | [Decimal to Hexadecimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/decimal_to_hexadeci.py) | Binary of 456= | 0x1c8 | decimal_to_hexadeci | `max_dec=1000` |
|
||||
| 84 | [Converts decimal to octal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/decimal_to_octal.py) | The decimal number 3211 in Octal is: | 0o6213 | decimal_to_octal | `maxDecimal=4096` |
|
||||
| 91 | [Binary Coded Decimal to Integer](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/bcd_to_decimal.py) | Integer of Binary Coded Decimal 7 is = | 29237 | bcd_to_decimal | `maxNumber=10000` |
|
||||
| 103 | [Decimal to Binary Coded Decimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/decimal_to_bcd.py) | BCD of Decimal Number 5763 is = | 1683 | decimal_to_bcd | `maxNumber=10000` |
|
||||
## geometry
|
||||
| Id | Skill | Example problem | Example Solution | Function Name | Kwargs |
|
||||
|------|-------|-----------------|------------------|---------------|--------|
|
||||
| 18 | [Area of Triangle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/area_of_triangle.py) | Area of triangle with side lengths: 13 7 16 = | 44.49719092257398 | area_of_triangle | `maxA=20` `maxB=20` `maxC=20` |
|
||||
| 19 | [Triangle exists check](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/valid_triangle.py) | Does triangle with sides 32, 44 and 10 exist? | No | valid_triangle | `maxSideLength=50` |
|
||||
| 22 | [Third Angle of Triangle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/third_angle_of_triangle.py) | Third angle of triangle with angles 24 and 46 = | 110 | third_angle_of_triangle | `maxAngle=89` |
|
||||
| 25 | [Pythagorean Theorem](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/pythagorean_theorem.py) | The hypotenuse of a right triangle given the other two lengths 13 and 10 = | 16.40 | pythagorean_theorem | `maxLength=20` |
|
||||
| 29 | [Angle of a Regular Polygon](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/angle_regular_polygon.py) | Find the angle of a regular polygon with 3 sides | 60.0 | angle_regular_polygon | `minVal=3` `maxVal=20` |
|
||||
| 32 | [Surface Area of Cube](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_cube.py) | Surface area of cube with side = 15m is | 1350 m^2 | surface_area_cube | `maxSide=20` `unit='m'` |
|
||||
| 33 | [Surface Area of Cuboid](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_cuboid.py) | Surface area of cuboid with sides = 6m, 11m, 3m is | 234 m^2 | surface_area_cuboid | `maxSide=20` `unit='m'` |
|
||||
| 34 | [Surface Area of Cylinder](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_cylinder.py) | Surface area of cylinder with height = 38m and radius = 2m is | 502 m^2 | surface_area_cylinder | `maxRadius=20` `maxHeight=50` `unit='m'` |
|
||||
| 35 | [Volum of Cube](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_cube.py) | Volume of cube with side = 3m is | 27 m^3 | volume_cube | `maxSide=20` `unit='m'` |
|
||||
| 36 | [Volume of Cuboid](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_cuboid.py) | Volume of cuboid with sides = 6m, 14m, 3m is | 252 m^3 | volume_cuboid | `maxSide=20` `unit='m'` |
|
||||
| 37 | [Volume of cylinder](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_cylinder.py) | Volume of cylinder with height = 12m and radius = 16m is | 9650 m^3 | volume_cylinder | `maxRadius=20` `maxHeight=50` `unit='m'` |
|
||||
| 38 | [Surface Area of cone](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_cone.py) | Surface area of cone with height = 2m and radius = 5m is | 163 m^2 | surface_area_cone | `maxRadius=20` `maxHeight=50` `unit='m'` |
|
||||
| 39 | [Volume of cone](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_cone.py) | Volume of cone with height = 31m and radius = 8m is | 2077 m^3 | volume_cone | `maxRadius=20` `maxHeight=50` `unit='m'` |
|
||||
| 49 | [Fourth Angle of Quadrilateral](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/fourth_angle_of_quadrilateral.py) | Fourth angle of quadrilateral with angles 166 , 68, 65 = | 61 | fourth_angle_of_quadrilateral | `maxAngle=180` |
|
||||
| 57 | [Trigonometric Values](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/basic_trigonometry.py) | What is sin(0)? | 0 | basic_trigonometry | `angles=[0, 30, 45, 60, 90]` `functions=['sin', 'cos', 'tan']` |
|
||||
| 58 | [Sum of Angles of Polygon](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/sum_of_polygon_angles.py) | Sum of angles of polygon with 10 sides = | 1440 | sum_of_polygon_angles | `maxSides=12` |
|
||||
| 60 | [Surface Area of Sphere](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_sphere.py) | Surface area of Sphere with radius = 13m is | 2123.7166338267 m^2 | surface_area_sphere | `maxSide=20` `unit='m'` |
|
||||
| 61 | [Volume of Sphere](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_sphere.py) | Volume of sphere with radius 33 m = | 150532.55358940852 m^3 | volume_sphere | `maxRadius=100` |
|
||||
| 70 | [Angle between 2 vectors](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/angle_btw_vectors.py) | angle between the vectors [373.03, 280.56, 51.12, 848.19, 914.96, 636.42, 936.04, 218.18, 727.01, 248.11] and [696.71, 8.09, 219.08, 466.57, 583.92, 152.82, 964.12, 686.21, 400.77, 343.46] is: | 0.56 radians | angle_btw_vectors | `maxEltAmt=20` |
|
||||
| 75 | [Area of a Sector](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/sector_area.py) | Given radius, 45 and angle, 145. Find the area of the sector. | Area of sector = 2562.36151 | sector_area | `maxRadius=49` `maxAngle=359` |
|
||||
| 86 | [Degrees to Radians](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/degree_to_rad.py) | Angle 196 in radians is = | 3.42 | degree_to_rad | `max_deg=360` |
|
||||
| 87 | [Radians to Degrees](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/radian_to_deg.py) | Angle 1 in degrees is = | 57.3 | radian_to_deg | `max_rad=3` |
|
||||
| 95 | [Curved surface area of a cylinder](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/curved_surface_area_cylinder.py) | What is the curved surface area of a cylinder of radius, 16 and height, 21? | CSA of cylinder = 2111.15 | curved_surface_area_cylinder | `maxRadius=49` `maxHeight=99` |
|
||||
| 96 | [Perimeter of Polygons](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/perimeter_of_polygons.py) | The perimeter of a 5 sided polygon with lengths of [13, 84, 9, 97, 119]cm is: | 322 | perimeter_of_polygons | `maxSides=12` `maxLength=120` |
|
||||
| 104 | [Circumference](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/circumference.py) | Circumference of circle with radius 48 | 301.59289474462014 | circumference | `maxRadius=100` |
|
||||
| 108 | [Arc length of Angle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/arc_length.py) | Given radius, 16 and angle, 326. Find the arc length of the angle. | Arc length of the angle = 91.03637 | arc_length | `maxRadius=49` `maxAngle=359` |
|
||||
| 112 | [Area of Circle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/area_of_circle.py) | Area of circle with radius 44 | 6084.571428571428 | area_of_circle | `maxRadius=100` |
|
||||
| 18 | [Area of Triangle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/area_of_triangle.py) | Area of triangle with side lengths: 15 18 11 = | 82.3164625090267 | area_of_triangle | `maxA=20` `maxB=20` `maxC=20` |
|
||||
| 19 | [Triangle exists check](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/valid_triangle.py) | Does triangle with sides 16, 30 and 26 exist? | Yes | valid_triangle | `maxSideLength=50` |
|
||||
| 22 | [Third Angle of Triangle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/third_angle_of_triangle.py) | Third angle of triangle with angles 75 and 64 = | 41 | third_angle_of_triangle | `maxAngle=89` |
|
||||
| 25 | [Pythagorean Theorem](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/pythagorean_theorem.py) | The hypotenuse of a right triangle given the other two lengths 7 and 6 = | 9.22 | pythagorean_theorem | `maxLength=20` |
|
||||
| 29 | [Angle of a Regular Polygon](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/angle_regular_polygon.py) | Find the angle of a regular polygon with 19 sides | 161.05 | angle_regular_polygon | `minVal=3` `maxVal=20` |
|
||||
| 32 | [Surface Area of Cube](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_cube.py) | Surface area of cube with side = 7m is | 294 m^2 | surface_area_cube | `maxSide=20` `unit='m'` |
|
||||
| 33 | [Surface Area of Cuboid](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_cuboid.py) | Surface area of cuboid with sides = 9m, 6m, 3m is | 198 m^2 | surface_area_cuboid | `maxSide=20` `unit='m'` |
|
||||
| 34 | [Surface Area of Cylinder](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_cylinder.py) | Surface area of cylinder with height = 35m and radius = 1m is | 226 m^2 | surface_area_cylinder | `maxRadius=20` `maxHeight=50` `unit='m'` |
|
||||
| 35 | [Volum of Cube](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_cube.py) | Volume of cube with side = 19m is | 6859 m^3 | volume_cube | `maxSide=20` `unit='m'` |
|
||||
| 36 | [Volume of Cuboid](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_cuboid.py) | Volume of cuboid with sides = 14m, 18m, 8m is | 2016 m^3 | volume_cuboid | `maxSide=20` `unit='m'` |
|
||||
| 37 | [Volume of cylinder](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_cylinder.py) | Volume of cylinder with height = 2m and radius = 4m is | 100 m^3 | volume_cylinder | `maxRadius=20` `maxHeight=50` `unit='m'` |
|
||||
| 38 | [Surface Area of cone](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_cone.py) | Surface area of cone with height = 10m and radius = 1m is | 34 m^2 | surface_area_cone | `maxRadius=20` `maxHeight=50` `unit='m'` |
|
||||
| 39 | [Volume of cone](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_cone.py) | Volume of cone with height = 41m and radius = 2m is | 171 m^3 | volume_cone | `maxRadius=20` `maxHeight=50` `unit='m'` |
|
||||
| 49 | [Fourth Angle of Quadrilateral](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/fourth_angle_of_quadrilateral.py) | Fourth angle of quadrilateral with angles 47 , 186, 23 = | 104 | fourth_angle_of_quadrilateral | `maxAngle=180` |
|
||||
| 57 | [Trigonometric Values](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/basic_trigonometry.py) | What is tan(90)? | ∞ | basic_trigonometry | `angles=[0, 30, 45, 60, 90]` `functions=['sin', 'cos', 'tan']` |
|
||||
| 58 | [Sum of Angles of Polygon](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/sum_of_polygon_angles.py) | Sum of angles of polygon with 8 sides = | 1080 | sum_of_polygon_angles | `maxSides=12` |
|
||||
| 60 | [Surface Area of Sphere](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/surface_area_sphere.py) | Surface area of Sphere with radius = 2m is | 50.26548245743669 m^2 | surface_area_sphere | `maxSide=20` `unit='m'` |
|
||||
| 61 | [Volume of Sphere](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_sphere.py) | Volume of sphere with radius 70 m = | 1436755.040241732 m^3 | volume_sphere | `maxRadius=100` |
|
||||
| 70 | [Angle between 2 vectors](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/angle_btw_vectors.py) | angle between the vectors [809.39, 750.64, 808.48] and [99.52, 21.47, 323.85] is: | 0.69 radians | angle_btw_vectors | `maxEltAmt=20` |
|
||||
| 75 | [Area of a Sector](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/sector_area.py) | Given radius, 38 and angle, 119. Find the area of the sector. | Area of sector = 1499.55199 | sector_area | `maxRadius=49` `maxAngle=359` |
|
||||
| 86 | [Degrees to Radians](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/degree_to_rad.py) | Angle 187 in radians is = | 3.26 | degree_to_rad | `max_deg=360` |
|
||||
| 87 | [Radians to Degrees](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/radian_to_deg.py) | Angle 2 in degrees is = | 114.59 | radian_to_deg | `max_rad=3` |
|
||||
| 95 | [Curved surface area of a cylinder](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/curved_surface_area_cylinder.py) | What is the curved surface area of a cylinder of radius, 25 and height, 26? | CSA of cylinder = 4084.07 | curved_surface_area_cylinder | `maxRadius=49` `maxHeight=99` |
|
||||
| 96 | [Perimeter of Polygons](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/perimeter_of_polygons.py) | The perimeter of a 11 sided polygon with lengths of [39, 70, 58, 27, 85, 119, 47, 59, 113, 38, 45]cm is: | 700 | perimeter_of_polygons | `maxSides=12` `maxLength=120` |
|
||||
| 104 | [Circumference](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/circumference.py) | Circumference of circle with radius 76 | 477.5220833456485 | circumference | `maxRadius=100` |
|
||||
| 108 | [Arc length of Angle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/arc_length.py) | Given radius, 30 and angle, 240. Find the arc length of the angle. | Arc length of the angle = 125.66371 | arc_length | `maxRadius=49` `maxAngle=359` |
|
||||
| 112 | [Area of Circle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/area_of_circle.py) | Area of circle with radius 37 | 4302.571428571428 | area_of_circle | `maxRadius=100` |
|
||||
## misc
|
||||
| Id | Skill | Example problem | Example Solution | Function Name | Kwargs |
|
||||
|------|-------|-----------------|------------------|---------------|--------|
|
||||
| 9 | [LCM (Least Common Multiple)](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/lcm.py) | LCM of 1 and 15 = | 15 | lcm | `maxVal=20` |
|
||||
| 10 | [GCD (Greatest Common Denominator)](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/gcd.py) | GCD of 3 and 3 = | 3 | gcd | `maxVal=20` |
|
||||
| 27 | [Prime Factorisation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/prime_factors.py) | Find prime factors of 167 | [167] | prime_factors | `minVal=1` `maxVal=200` |
|
||||
| 40 | [Common Factors](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/common_factors.py) | Common Factors of 55 and 33 = | [1, 11] | common_factors | `maxVal=100` |
|
||||
| 51 | [HCF (Highest Common Factor)](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/hcf.py) | HCF of 16 and 9 = | 1 | hcf | `maxVal=20` |
|
||||
| 55 | [Comparing surds](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/surds_comparison.py) | Fill in the blanks 62^(1/7) _ 74^(1/6) | < | surds_comparison | `maxValue=100` `maxRoot=10` |
|
||||
| 63 | [Profit or Loss Percent](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/profit_loss_percent.py) | Loss percent when CP = 704 and SP = 134 is: | 80.9659090909091 | profit_loss_percent | `maxCP=1000` `maxSP=1000` |
|
||||
| 66 | [Geometric Progression](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/geometric_progression.py) | For the given GP [8, 40, 200, 1000, 5000, 25000] ,Find the value of a,common ratio,8th term value, sum upto 11th term | The value of a is 8, common ratio is 5 , 8th term is 625000 , sum upto 11th term is 97656248.0 | geometric_progression | `number_values=6` `min_value=2` `max_value=12` `n_term=7` `sum_term=5` |
|
||||
| 67 | [Geometric Mean of N Numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/geometric_mean.py) | Geometric mean of 4 numbers 66 , 46 , 28 , 54 = | (66*46*28*54)^(1/4) = 46.2874642463462 | geometric_mean | `maxValue=100` `maxNum=4` |
|
||||
| 68 | [Harmonic Mean of N Numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/harmonic_mean.py) | Harmonic mean of 4 numbers 74 , 59 , 47 , 36 = | 4/((1/74) + (1/59) + (1/47) + (1/36)) = 50.30368360304657 | harmonic_mean | `maxValue=100` `maxNum=4` |
|
||||
| 69 | [Euclidian norm or L2 norm of a vector](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/euclidian_norm.py) | Euclidian norm or L2 norm of the vector[118.69308620957398, 418.5316709436745, 529.1318417822414, 545.3215860464462, 387.999979078107, 298.1451264197782, 392.3895332994427, 833.7453539560848, 555.724882920332, 472.05768476591004, 214.55377537613495, 760.9785260761229, 448.91380437418314, 73.27333213603282, 791.8291233802007, 918.6577753538513] is: | 2165.5845872381433 | euclidian_norm | `maxEltAmt=20` |
|
||||
| 81 | [Celsius To Fahrenheit](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/celsius_to_fahrenheit.py) | Convert -12 degrees Celsius to degrees Fahrenheit = | 10.399999999999999 | celsius_to_fahrenheit | `maxTemp=100` |
|
||||
| 82 | [AP Term Calculation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/arithmetic_progression_term.py) | Find the term number 29 of the AP series: -80, -71, -62 ... | 172 | arithmetic_progression_term | `maxd=100` `maxa=100` `maxn=100` |
|
||||
| 83 | [AP Sum Calculation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/arithmetic_progression_sum.py) | Find the sum of first 64 terms of the AP series: -94, -6, 82 ... | 171392.0 | arithmetic_progression_sum | `maxd=100` `maxa=100` `maxn=100` |
|
||||
| 85 | [Converts decimal to Roman Numerals](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/decimal_to_roman_numerals.py) | The number 3026 in Roman Numerals is: | MMMXXVI | decimal_to_roman_numerals | `maxDecimal=4000` |
|
||||
| 92 | [Complex To Polar Form](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/complex_to_polar.py) | rexp(itheta) = | 26.91exp(i-2.3) | complex_to_polar | `minRealImaginaryNum=-20, maxRealImaginaryNum=20` |
|
||||
| 93 | [Union,Intersection,Difference of Two Sets](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/set_operation.py) | Given the two sets a={1, 6, 7, 8, 9} ,b={1, 3, 4, 5, 10}.Find the Union,intersection,a-b,b-a and symmetric difference | Union is {1, 3, 4, 5, 6, 7, 8, 9, 10},Intersection is {1}, a-b is {8, 9, 6, 7},b-a is {10, 3, 4, 5}, Symmetric difference is {3, 4, 5, 6, 7, 8, 9, 10} | set_operation | `minval=3` `maxval=7` `n_a=4` `n_b=5` |
|
||||
| 94 | [Base Conversion](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/base_conversion.py) | Convert A201 from base 14 to base 10. | 27833 | base_conversion | `maxNum=60000` `maxBase=16` |
|
||||
| 98 | [Quotient of Powers with Same Base](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/quotient_of_power_same_base.py) | The Quotient of 42^7 and 42^6 = 42^(7-6) = 42^1 | 42 | quotient_of_power_same_base | `maxBase=50` `maxPower=10` |
|
||||
| 99 | [Quotient of Powers with Same Power](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/quotient_of_power_same_power.py) | The Quotient of 31^10 and 37^10 = (31/37)^10 = 0.8378378378378378^10 | 0.17045105659000342 | quotient_of_power_same_power | `maxBase=50` `maxPower=10` |
|
||||
| 101 | [Leap Year or Not](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/is_leap_year.py) | Year 1999 | is not a leap year | is_leap_year | `minNumber=1900` `maxNumber=2099` |
|
||||
| 102 | [Minute to Hour conversion](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/minutes_to_hours.py) | Convert 851 minutes to Hours & Minutes | 14 hours and 11 minutes | minutes_to_hours | `maxMinutes=999` |
|
||||
| 106 | [signum function](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/signum_function.py) | signum of 525 is = | 1 | signum_function | `min=-999` `max=999` |
|
||||
| 109 | [Binomial distribution](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/binomial_distribution.py) | A manufacturer of metal pistons finds that, on average, 40.41% of the pistons they manufacture are rejected because they are incorrectly sized. What is the probability that a batch of 11 pistons will contain no more than 4 rejected pistons? | 52.15 | binomial_distribution | `` |
|
||||
| 9 | [LCM (Least Common Multiple)](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/lcm.py) | LCM of 19 and 2 = | 38 | lcm | `maxVal=20` |
|
||||
| 10 | [GCD (Greatest Common Denominator)](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/gcd.py) | GCD of 16 and 6 = | 2 | gcd | `maxVal=20` |
|
||||
| 27 | [Prime Factorisation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/prime_factors.py) | Find prime factors of 78 | [2, 3, 13] | prime_factors | `minVal=1` `maxVal=200` |
|
||||
| 40 | [Common Factors](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/common_factors.py) | Common Factors of 21 and 77 = | [1, 7] | common_factors | `maxVal=100` |
|
||||
| 51 | [HCF (Highest Common Factor)](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/hcf.py) | HCF of 17 and 3 = | 1 | hcf | `maxVal=20` |
|
||||
| 55 | [Comparing surds](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/surds_comparison.py) | Fill in the blanks 58^(1/5) _ 18^(1/8) | > | surds_comparison | `maxValue=100` `maxRoot=10` |
|
||||
| 63 | [Profit or Loss Percent](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/profit_loss_percent.py) | Loss percent when CP = 821 and SP = 113 is: | 86.23629719853837 | profit_loss_percent | `maxCP=1000` `maxSP=1000` |
|
||||
| 66 | [Geometric Progression](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/geometric_progression.py) | For the given GP [5, 15, 45, 135, 405, 1215] ,Find the value of a,common ratio,10th term value, sum upto 11th term | The value of a is 5, common ratio is 3 , 10th term is 98415 , sum upto 11th term is 442865.0 | geometric_progression | `number_values=6` `min_value=2` `max_value=12` `n_term=7` `sum_term=5` |
|
||||
| 67 | [Geometric Mean of N Numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/geometric_mean.py) | Geometric mean of 4 numbers 76 , 17 , 48 , 57 = | (76*17*48*57)^(1/4) = 43.36053695794891 | geometric_mean | `maxValue=100` `maxNum=4` |
|
||||
| 68 | [Harmonic Mean of N Numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/harmonic_mean.py) | Harmonic mean of 4 numbers 12 , 23 , 94 , 96 = | 4/((1/12) + (1/23) + (1/94) + (1/96)) = 27.0514173998045 | harmonic_mean | `maxValue=100` `maxNum=4` |
|
||||
| 69 | [Euclidian norm or L2 norm of a vector](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/euclidian_norm.py) | Euclidian norm or L2 norm of the vector[802.4475305377166, 660.7012519538307, 370.72333556197833, 54.54747734093479, 367.379416204208, 945.4792894951261, 219.91075384694793, 302.48678829534293] is: | 1545.8386466508773 | euclidian_norm | `maxEltAmt=20` |
|
||||
| 81 | [Celsius To Fahrenheit](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/celsius_to_fahrenheit.py) | Convert 6 degrees Celsius to degrees Fahrenheit = | 42.8 | celsius_to_fahrenheit | `maxTemp=100` |
|
||||
| 82 | [AP Term Calculation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/arithmetic_progression_term.py) | Find the term number 67 of the AP series: -19, -81, -143 ... | -4111 | arithmetic_progression_term | `maxd=100` `maxa=100` `maxn=100` |
|
||||
| 83 | [AP Sum Calculation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/arithmetic_progression_sum.py) | Find the sum of first 45 terms of the AP series: 58, 32, 6 ... | -23130.0 | arithmetic_progression_sum | `maxd=100` `maxa=100` `maxn=100` |
|
||||
| 85 | [Converts decimal to Roman Numerals](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/decimal_to_roman_numerals.py) | The number 0 in Roman Numerals is: | MMMDCCCXXXV | decimal_to_roman_numerals | `maxDecimal=4000` |
|
||||
| 92 | [Complex To Polar Form](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/complex_to_polar.py) | 17.12(2.0theta + i-17.0theta) | -1.45 | complex_to_polar | `minRealImaginaryNum=-20, maxRealImaginaryNum=20` |
|
||||
| 93 | [Union,Intersection,Difference of Two Sets](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/set_operation.py) | Given the two sets a={8, 9, 5} ,b={10, 3, 6, 7}.Find the Union,intersection,a-b,b-a and symmetric difference | Union is {3, 5, 6, 7, 8, 9, 10},Intersection is set(), a-b is {8, 9, 5},b-a is {10, 3, 6, 7}, Symmetric difference is {3, 5, 6, 7, 8, 9, 10} | set_operation | `minval=3` `maxval=7` `n_a=4` `n_b=5` |
|
||||
| 94 | [Base Conversion](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/base_conversion.py) | Convert E87 from base 16 to base 10. | 3719 | base_conversion | `maxNum=60000` `maxBase=16` |
|
||||
| 98 | [Quotient of Powers with Same Base](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/quotient_of_power_same_base.py) | The Quotient of 31^8 and 31^8 = 31^(8-8) = 31^0 | 1 | quotient_of_power_same_base | `maxBase=50` `maxPower=10` |
|
||||
| 99 | [Quotient of Powers with Same Power](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/quotient_of_power_same_power.py) | The Quotient of 24^1 and 19^1 = (24/19)^1 = 1.263157894736842^1 | 1.263157894736842 | quotient_of_power_same_power | `maxBase=50` `maxPower=10` |
|
||||
| 101 | [Leap Year or Not](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/is_leap_year.py) | Year 2086 | is not a leap year | is_leap_year | `minNumber=1900` `maxNumber=2099` |
|
||||
| 102 | [Minute to Hour conversion](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/minutes_to_hours.py) | Convert 680 minutes to Hours & Minutes | 11 hours and 20 minutes | minutes_to_hours | `maxMinutes=999` |
|
||||
| 106 | [signum function](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/signum_function.py) | signum of -93 is = | -1 | signum_function | `min=-999` `max=999` |
|
||||
| 109 | [Binomial distribution](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/binomial_distribution.py) | A manufacturer of metal pistons finds that, on average, 40.52% of the pistons they manufacture are rejected because they are incorrectly sized. What is the probability that a batch of 20 pistons will contain no more than 2 rejected pistons? | 0.32 | binomial_distribution | `` |
|
||||
## statistics
|
||||
| Id | Skill | Example problem | Example Solution | Function Name | Kwargs |
|
||||
|------|-------|-----------------|------------------|---------------|--------|
|
||||
| 30 | [Combinations of Objects](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/combinations.py) | Number of combinations from 15 objects picked 1 at a time | 15 | combinations | `maxlength=20` |
|
||||
| 42 | [Permutations](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/permutation.py) | Number of Permutations from 11 objects picked 8 at a time = | 6652800 | permutation | `maxlength=20` |
|
||||
| 52 | [Probability of a certain sum appearing on faces of dice](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/dice_sum_probability.py) | If 1 dice are rolled at the same time, the probability of getting a sum of 5 = | 1/6 | dice_sum_probability | `maxDice=3` |
|
||||
| 54 | [Confidence interval For sample S](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/confidence_interval.py) | The confidence interval for sample [214, 235, 201, 238, 244, 219, 266, 234, 298, 258, 255, 254, 243, 220, 223, 215, 209, 225, 296, 252, 267, 248, 262, 226, 205, 211, 265] with 99% confidence is | (252.7166888228517, 227.50553339937053) | confidence_interval | `` |
|
||||
| 59 | [Mean,Standard Deviation,Variance](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/data_summary.py) | Find the mean,standard deviation and variance for the data[31, 36, 35, 21, 38, 20, 19, 11, 37, 31, 24, 19, 18, 15, 17] | The Mean is 24.8 , Standard Deviation is 75.22666666666666, Variance is 8.673330771201261 | data_summary | `number_values=15` `minval=5` `maxval=50` |
|
||||
| 76 | [Mean and Median](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/mean_median.py) | Given the series of numbers [32, 87, 22, 86, 92, 17, 57, 68, 82, 94]. find the arithmatic mean and mdian of the series | Arithmetic mean of the series is 63.7 and Arithmetic median of this series is 75.0 | mean_median | `maxlen=10` |
|
||||
| 107 | [Conditional Probability](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/conditional_probability.py) | Someone tested positive for a nasty disease which only 1.78% of population have. Test sensitivity (true positive) is equal to SN= 96.47% whereas test specificity (true negative) SP= 92.86%. What is the probability that this guy really has that disease? | 19.67% | conditional_probability | `` |
|
||||
| 30 | [Combinations of Objects](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/combinations.py) | Number of combinations from 17 objects picked 0 at a time | 1 | combinations | `maxlength=20` |
|
||||
| 42 | [Permutations](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/permutation.py) | Number of Permutations from 16 objects picked 8 at a time = | 518918400 | permutation | `maxlength=20` |
|
||||
| 52 | [Probability of a certain sum appearing on faces of dice](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/dice_sum_probability.py) | If 3 dice are rolled at the same time, the probability of getting a sum of 5 = | 6/216 | dice_sum_probability | `maxDice=3` |
|
||||
| 54 | [Confidence interval For sample S](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/confidence_interval.py) | The confidence interval for sample [272, 287, 274, 273, 266, 212, 242, 258, 291, 243, 248, 240, 236, 232, 249, 207, 271, 251, 206, 282, 295, 283, 238, 210, 234, 288, 268, 229, 289, 219, 294, 264, 215] with 95% confidence is | (262.9335851189468, 244.09671791135625) | confidence_interval | `` |
|
||||
| 59 | [Mean,Standard Deviation,Variance](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/data_summary.py) | Find the mean,standard deviation and variance for the data[50, 29, 15, 50, 26, 25, 12, 16, 31, 38, 31, 5, 7, 42, 36] | The Mean is 27.533333333333335 , Standard Deviation is 193.0488888888889, Variance is 13.894203427648845 | data_summary | `number_values=15` `minval=5` `maxval=50` |
|
||||
| 76 | [Mean and Median](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/mean_median.py) | Given the series of numbers [6, 9, 17, 22, 26, 35, 37, 58, 75, 83]. find the arithmatic mean and mdian of the series | Arithmetic mean of the series is 36.8 and Arithmetic median of this series is 30.5 | mean_median | `maxlen=10` |
|
||||
| 107 | [Conditional Probability](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/conditional_probability.py) | Someone tested positive for a nasty disease which only 0.18% of population have. Test sensitivity (true positive) is equal to SN= 93.38% whereas test specificity (true negative) SP= 93.15%. What is the probability that this guy really has that disease? | 2.4% | conditional_probability | `` |
|
||||
|
||||
@@ -31,12 +31,6 @@ class Generator:
|
||||
) + " " + self.title
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
try:
|
||||
return self.func(*args, **kwargs)
|
||||
except TypeError:
|
||||
# If an error is thrown from kwargs, remove the style element
|
||||
# This happens if someone trys to get style='latex' for an
|
||||
del kwargs['style']
|
||||
return self.func(*args, **kwargs)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def basicAlgebraFunc(maxVariable=10, style='raw'):
|
||||
def basicAlgebraFunc(maxVariable=10, format='string'):
|
||||
a = random.randint(1, maxVariable)
|
||||
b = random.randint(1, maxVariable)
|
||||
c = random.randint(b, maxVariable)
|
||||
@@ -20,13 +20,17 @@ def basicAlgebraFunc(maxVariable=10, style='raw'):
|
||||
elif a == 1 or a == i:
|
||||
x = f"{c - b}"
|
||||
|
||||
if style == 'latex':
|
||||
problem = f"\\({a}x + {b} = {c}\\)"
|
||||
solution = "\\(" + x + "\\)"
|
||||
else:
|
||||
if format == 'string':
|
||||
problem = f"{a}x + {b} = {c}"
|
||||
solution = x
|
||||
return problem, solution
|
||||
elif format == 'latex':
|
||||
problem = f"\\({a}x + {b} = {c}\\)"
|
||||
solution = "\\(" + x + "\\)"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, x
|
||||
|
||||
|
||||
|
||||
basic_algebra = Generator("Basic Algebra", 11,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def likeTermCombineFunc(maxCoef=10, maxExp=20, maxTerms=10):
|
||||
def likeTermCombineFunc(maxCoef=10, maxExp=20, maxTerms=10, format='string'):
|
||||
numTerms = random.randint(1, maxTerms)
|
||||
problem = ""
|
||||
solution = ""
|
||||
@@ -16,6 +16,9 @@ def likeTermCombineFunc(maxCoef=10, maxExp=20, maxTerms=10):
|
||||
problem += str(coefficient) + "x^" + str(exponent)
|
||||
|
||||
solution = combineTerms(problem)
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return problem, solution
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def complexQuadraticFunc(prob_type=0, max_range=10):
|
||||
def complexQuadraticFunc(prob_type=0, max_range=10, format='string'):
|
||||
if prob_type < 0 or prob_type > 1:
|
||||
print("prob_type not supported")
|
||||
print("prob_type = 0 for real roots problems ")
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def compoundInterestFunc(maxPrinciple=10000, maxRate=10, maxTime=10):
|
||||
def compoundInterestFunc(maxPrinciple=10000, maxRate=10, maxTime=10, format='string'):
|
||||
p = random.randint(1000, maxPrinciple)
|
||||
r = random.randint(1, maxRate)
|
||||
n = random.randint(1, maxTime)
|
||||
a = p * (1 + r / 100)**n
|
||||
a = round(p * (1 + r / 100)**n, 2)
|
||||
|
||||
if format == 'string':
|
||||
problem = "Compound interest for a principle amount of " + \
|
||||
str(p) + " dollars, " + str(r) + \
|
||||
"% rate of interest and for a time period of " + str(n) + " year is = "
|
||||
solution = round(a, 2)
|
||||
return problem, solution
|
||||
return problem, str(a)
|
||||
else:
|
||||
return p, r, n, a
|
||||
|
||||
|
||||
compound_interest = Generator(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def distanceTwoPointsFunc(maxValXY=20, minValXY=-20):
|
||||
def distanceTwoPointsFunc(maxValXY=20, minValXY=-20, format='string'):
|
||||
point1X = random.randint(minValXY, maxValXY + 1)
|
||||
point1Y = random.randint(minValXY, maxValXY + 1)
|
||||
point2X = random.randint(minValXY, maxValXY + 1)
|
||||
@@ -9,10 +9,12 @@ def distanceTwoPointsFunc(maxValXY=20, minValXY=-20):
|
||||
|
||||
distanceSq = (point1X - point2X)**2 + (point1Y - point2Y)**2
|
||||
|
||||
if format == 'string':
|
||||
solution = f"sqrt({distanceSq})"
|
||||
problem = f"Find the distance between ({point1X}, {point1Y}) and ({point2X}, {point2Y})"
|
||||
return problem, solution
|
||||
|
||||
else:
|
||||
return point1X, point1Y, point2X, point2Y, distanceSq
|
||||
|
||||
distance_two_points = Generator(
|
||||
"Distance between 2 points", 24,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def expandingFunc(range_x1=10, range_x2=10, range_a=10, range_b=10):
|
||||
def expandingFunc(range_x1=10, range_x2=10, range_a=10, range_b=10, format='string'):
|
||||
x1 = random.randint(-range_x1, range_x1)
|
||||
x2 = random.randint(-range_x2, range_x2)
|
||||
a = random.randint(-range_a, range_a)
|
||||
@@ -32,7 +32,6 @@ def expandingFunc(range_x1=10, range_x2=10, range_a=10, range_b=10):
|
||||
p3 = ""
|
||||
elif p3 == "+":
|
||||
p3 = p3[1:]
|
||||
problem = f"({p1}x{p2})({p3}x{p4})"
|
||||
|
||||
if c1 == "+1":
|
||||
c1 = ""
|
||||
@@ -40,8 +39,13 @@ def expandingFunc(range_x1=10, range_x2=10, range_a=10, range_b=10):
|
||||
c1 = c1[1:] # Cuts off the plus for readability
|
||||
if c2 == "+1":
|
||||
c2 = ""
|
||||
|
||||
if format == 'string':
|
||||
problem = f"({p1}x{p2})({p3}x{p4})"
|
||||
solution = f"{c1}*x^2{c2}*x{c3}"
|
||||
return problem, solution
|
||||
else:
|
||||
return p1, p2, p3, p4, c1, c2, c3
|
||||
|
||||
|
||||
expanding = Generator("Expanding Factored Binomial", 111, expandingFunc,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def factoringFunc(range_x1=10, range_x2=10):
|
||||
def factoringFunc(range_x1=10, range_x2=10, format='string'):
|
||||
x1 = random.randint(-range_x1, range_x1)
|
||||
x2 = random.randint(-range_x2, range_x2)
|
||||
|
||||
@@ -23,10 +23,13 @@ def factoringFunc(range_x1=10, range_x2=10):
|
||||
else:
|
||||
problem = f"x^2{b}x{c}"
|
||||
|
||||
if format == 'string':
|
||||
x1 = intParser(x1)
|
||||
x2 = intParser(x2)
|
||||
solution = f"(x{x1})(x{x2})"
|
||||
return problem, solution
|
||||
else:
|
||||
return b, c, x1, x2
|
||||
|
||||
|
||||
factoring = Generator("Factoring Quadratic", 21, factoringFunc,
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def determinantToMatrix22(maxMatrixVal=100):
|
||||
def determinantToMatrix22(maxMatrixVal=100, format='string'):
|
||||
a = random.randint(0, maxMatrixVal)
|
||||
b = random.randint(0, maxMatrixVal)
|
||||
c = random.randint(0, maxMatrixVal)
|
||||
d = random.randint(0, maxMatrixVal)
|
||||
|
||||
determinant = a * d - b * c
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Det([[{a}, {b}], [{c}, {d}]]) = "
|
||||
solution = f" {determinant}"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, d, determinant
|
||||
|
||||
|
||||
int_matrix_22_determinant = Generator("Determinant to 2x2 Matrix", 77,
|
||||
|
||||
@@ -8,7 +8,8 @@ def intersectionOfTwoLinesFunc(minM=-10,
|
||||
minB=-10,
|
||||
maxB=10,
|
||||
minDenominator=1,
|
||||
maxDenominator=6):
|
||||
maxDenominator=6,
|
||||
format='string'):
|
||||
def generateEquationString(m, b):
|
||||
"""
|
||||
Generates an equation given the slope and intercept.
|
||||
@@ -65,7 +66,10 @@ def intersectionOfTwoLinesFunc(minM=-10,
|
||||
intersection_y = ((m2 * b1) - (m1 * b2)) / (m2 - m1)
|
||||
solution = f"({fractionToString(intersection_x)}, {fractionToString(intersection_y)})"
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return equation1, equation2, solution
|
||||
|
||||
|
||||
intersection_of_two_lines = Generator(
|
||||
|
||||
@@ -4,7 +4,8 @@ import sympy
|
||||
|
||||
def matrixInversion(SquareMatrixDimension=3,
|
||||
MaxMatrixElement=99,
|
||||
OnlyIntegerElementsInInvertedMatrix=False):
|
||||
OnlyIntegerElementsInInvertedMatrix=False,
|
||||
format='string'):
|
||||
if OnlyIntegerElementsInInvertedMatrix is True:
|
||||
isItOk = False
|
||||
Mat = list()
|
||||
@@ -73,9 +74,13 @@ def matrixInversion(SquareMatrixDimension=3,
|
||||
random.shuffle(z)
|
||||
Mat.append(z)
|
||||
Mat = sympy.Matrix(Mat)
|
||||
|
||||
if format == 'string':
|
||||
problem = 'Inverse of Matrix ' + str(Mat) + ' is:'
|
||||
solution = str(sympy.Matrix.inv(Mat))
|
||||
return problem, solution
|
||||
else:
|
||||
return Mat, sympy.Matrix.inv(Mat)
|
||||
|
||||
|
||||
invert_matrix = Generator("Inverse of a Matrix", 74,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def linearEquationsFunc(n=2, varRange=20, coeffRange=20):
|
||||
def linearEquationsFunc(n=2, varRange=20, coeffRange=20, format='string'):
|
||||
if n > 10:
|
||||
print("[!] n cannot be greater than 10")
|
||||
return None, None
|
||||
@@ -27,6 +27,10 @@ def linearEquationsFunc(n=2, varRange=20, coeffRange=20):
|
||||
|
||||
# problem = "\n".join(problem)
|
||||
problem = ", ".join(problem)
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return problem, solution
|
||||
|
||||
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def logFunc(maxBase=3, maxVal=8, style='raw'):
|
||||
def logFunc(maxBase=3, maxVal=8, format='string'):
|
||||
a = random.randint(1, maxVal)
|
||||
b = random.randint(2, maxBase)
|
||||
c = pow(b, a)
|
||||
|
||||
if style == 'latex':
|
||||
if format == 'string':
|
||||
problem = "log" + str(b) + "(" + str(c) + ")"
|
||||
solution = str(a)
|
||||
return problem, solution
|
||||
elif format == 'latex':
|
||||
problem = "\\(\\log_{" + str(b) + "}" + str(c) + "\\)"
|
||||
print(problem)
|
||||
solution = "\\(" + str(a) + "\\)"
|
||||
else:
|
||||
problem = "log" + str(b) + "(" + str(c) + ")"
|
||||
solution = str(a)
|
||||
|
||||
return problem, solution
|
||||
else:
|
||||
return b, c, a
|
||||
|
||||
|
||||
log = Generator("Logarithm", 12, logFunc,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def matrixMultiplicationFunc(maxVal=100, max_dim=10):
|
||||
def matrixMultiplicationFunc(maxVal=100, max_dim=10, format='string'):
|
||||
m = random.randint(2, max_dim)
|
||||
n = random.randint(2, max_dim)
|
||||
k = random.randint(2, max_dim)
|
||||
@@ -33,9 +33,12 @@ def matrixMultiplicationFunc(maxVal=100, max_dim=10):
|
||||
res[r].append(temp)
|
||||
|
||||
# consider using a, b instead of a_string, b_string if the problem doesn't look right
|
||||
if format == 'string':
|
||||
problem = f"Multiply \n{a_string}\n and \n\n{b_string}"
|
||||
solution = matrixMultiplicationFuncHelper(res)
|
||||
return problem, solution
|
||||
else:
|
||||
return a_string, b_string, res
|
||||
|
||||
|
||||
def matrixMultiplicationFuncHelper(inp):
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def MidPointOfTwoPointFunc(maxValue=20):
|
||||
def MidPointOfTwoPointFunc(maxValue=20, format='string'):
|
||||
x1 = random.randint(-20, maxValue)
|
||||
y1 = random.randint(-20, maxValue)
|
||||
x2 = random.randint(-20, maxValue)
|
||||
y2 = random.randint(-20, maxValue)
|
||||
xm = (x1 + x2) / 2
|
||||
ym = (y1 + y2) / 2
|
||||
|
||||
if format == 'string':
|
||||
problem = f"({x1},{y1}),({x2},{y2})="
|
||||
solution = f"({(x1+x2)/2},{(y1+y2)/2})"
|
||||
solution = f"({xm},{ym})"
|
||||
return problem, solution
|
||||
else:
|
||||
return x1, y1, x2, y2, xm, ym
|
||||
|
||||
|
||||
midPoint_of_two_points = Generator("Midpoint of the two point", 20,
|
||||
|
||||
@@ -2,14 +2,19 @@ from .__init__ import *
|
||||
|
||||
|
||||
def multiplyComplexNumbersFunc(minRealImaginaryNum=-20,
|
||||
maxRealImaginaryNum=20):
|
||||
maxRealImaginaryNum=20,
|
||||
format='string'):
|
||||
num1 = complex(random.randint(minRealImaginaryNum, maxRealImaginaryNum),
|
||||
random.randint(minRealImaginaryNum, maxRealImaginaryNum))
|
||||
num2 = complex(random.randint(minRealImaginaryNum, maxRealImaginaryNum),
|
||||
random.randint(minRealImaginaryNum, maxRealImaginaryNum))
|
||||
product = num1 * num2
|
||||
if format == 'string':
|
||||
problem = f"{num1} * {num2} = "
|
||||
solution = str(num1 * num2)
|
||||
solution = str(product)
|
||||
return problem, solution
|
||||
else:
|
||||
return num1, num2, product
|
||||
|
||||
|
||||
multiply_complex_numbers = Generator("Multiplication of 2 complex numbers", 65,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def multiplyIntToMatrix22(maxMatrixVal=10, maxRes=100, style='raw'):
|
||||
def multiplyIntToMatrix22(maxMatrixVal=10, maxRes=100, format='string'):
|
||||
a = random.randint(0, maxMatrixVal)
|
||||
b = random.randint(0, maxMatrixVal)
|
||||
c = random.randint(0, maxMatrixVal)
|
||||
@@ -14,15 +14,18 @@ def multiplyIntToMatrix22(maxMatrixVal=10, maxRes=100, style='raw'):
|
||||
c1 = c * constant
|
||||
d1 = d * constant
|
||||
|
||||
if style == 'latex':
|
||||
if format == 'string':
|
||||
problem = f"{constant} * [[{a}, {b}], [{c}, {d}]] = "
|
||||
solution = f"[[{a1},{b1}],[{c1},{d1}]]"
|
||||
return problem, solution
|
||||
elif style == 'latex':
|
||||
problem = "\\(" + str(constant) + "\\cdot\\begin{bmatrix}" + str(
|
||||
a) + "&" + str(b) + "\\\\" + str(c) + "&" + str(d) + "\\end{bmatrix}=\\)"
|
||||
solution = "\\(\\begin{bmatrix}" + str(a1) + "&" + str(b1) + \
|
||||
"\\\\" + str(c1) + "&" + str(d1) + "\\end{bmatrix}\\)"
|
||||
else:
|
||||
problem = f"{constant} * [[{a}, {b}], [{c}, {d}]] = "
|
||||
solution = f"[[{a1},{b1}],[{c1},{d1}]]"
|
||||
return problem, solution
|
||||
else:
|
||||
return constant, a, b, c, d, a1, b1, c1, d1
|
||||
|
||||
|
||||
multiply_int_to_22_matrix = Generator("Integer Multiplication with 2x2 Matrix",
|
||||
|
||||
@@ -3,18 +3,21 @@ from .__init__ import *
|
||||
import math
|
||||
|
||||
|
||||
def quadraticEquation(maxVal=100):
|
||||
def quadraticEquation(maxVal=100, format='string'):
|
||||
a = random.randint(1, maxVal)
|
||||
c = random.randint(1, maxVal)
|
||||
b = random.randint(
|
||||
round(math.sqrt(4 * a * c)) + 1, round(math.sqrt(4 * maxVal * maxVal)))
|
||||
|
||||
problem = "Zeros of the Quadratic Equation {}x^2+{}x+{}=0".format(a, b, c)
|
||||
D = math.sqrt(b * b - 4 * a * c)
|
||||
solution = str(
|
||||
[round((-b + D) / (2 * a), 2),
|
||||
round((-b - D) / (2 * a), 2)])
|
||||
res = [round((-b + D) / (2 * a), 2), round((-b - D) / (2 * a), 2)]
|
||||
|
||||
|
||||
if format == 'string':
|
||||
problem = "Zeros of the Quadratic Equation {}x^2+{}x+{}=0".format(a, b, c)
|
||||
solution = str(res)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, res
|
||||
|
||||
|
||||
quadratic_equation = Generator(
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def simpleInterestFunc(maxPrinciple=10000, maxRate=10, maxTime=10):
|
||||
def simpleInterestFunc(maxPrinciple=10000, maxRate=10, maxTime=10, format='string'):
|
||||
a = random.randint(1000, maxPrinciple)
|
||||
b = random.randint(1, maxRate)
|
||||
c = random.randint(1, maxTime)
|
||||
d = (a * b * c) / 100
|
||||
d = round((a * b * c) / 100, 2)
|
||||
|
||||
if format == 'string':
|
||||
problem = "Simple interest for a principle amount of " + str(
|
||||
a) + " dollars, " + str(
|
||||
b) + "% rate of interest and for a time period of " + str(
|
||||
c) + " years is = "
|
||||
solution = round(d, 2)
|
||||
solution = str(d)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, d
|
||||
|
||||
|
||||
simple_interest = Generator(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def systemOfEquationsFunc(range_x=10, range_y=10, coeff_mult_range=10):
|
||||
def systemOfEquationsFunc(range_x=10, range_y=10, coeff_mult_range=10, format='string'):
|
||||
# Generate solution point first
|
||||
x = random.randint(-range_x, range_x)
|
||||
y = random.randint(-range_y, range_y)
|
||||
@@ -41,9 +41,12 @@ def systemOfEquationsFunc(range_x=10, range_y=10, coeff_mult_range=10):
|
||||
'' if x_str != '' else '0')
|
||||
return f'{x_str}{op}{y_str} = {coeffs[2]}'
|
||||
|
||||
if format == 'string':
|
||||
problem = f"{coeffToFuncString(new_c1)}, {coeffToFuncString(new_c2)}"
|
||||
solution = f"x = {x}, y = {y}"
|
||||
return problem, solution
|
||||
else:
|
||||
return new_c1, new_c2, x, y
|
||||
# Add random (non-zero) multiple of equations to each other
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def vectorCrossFunc(minVal=-20, maxVal=20):
|
||||
def vectorCrossFunc(minVal=-20, maxVal=20, format='string'):
|
||||
a = [random.randint(minVal, maxVal) for i in range(3)]
|
||||
b = [random.randint(minVal, maxVal) for i in range(3)]
|
||||
c = [
|
||||
@@ -9,9 +9,12 @@ def vectorCrossFunc(minVal=-20, maxVal=20):
|
||||
a[0] * b[1] - a[1] * b[0]
|
||||
]
|
||||
|
||||
if format == 'string':
|
||||
problem = str(a) + " X " + str(b) + " = "
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c
|
||||
|
||||
|
||||
vector_cross = Generator("Cross Product of 2 Vectors", 43,
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def vectorDotFunc(minVal=-20, maxVal=20):
|
||||
def vectorDotFunc(minVal=-20, maxVal=20, format='string'):
|
||||
a = [random.randint(minVal, maxVal) for i in range(3)]
|
||||
b = [random.randint(minVal, maxVal) for i in range(3)]
|
||||
c = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]
|
||||
|
||||
if format == 'string':
|
||||
problem = str(a) + " . " + str(b) + " = "
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c
|
||||
|
||||
|
||||
vector_dot = Generator("Dot Product of 2 Vectors", 72,
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def absoluteDifferenceFunc(maxA=100, maxB=100, style='raw'):
|
||||
def main(maxA=100, maxB=100, format='string'):
|
||||
a = random.randint(-1 * maxA, maxA)
|
||||
b = random.randint(-1 * maxB, maxB)
|
||||
absDiff = abs(a - b)
|
||||
|
||||
if style == 'latex':
|
||||
problem = "\\(|" + str(a) + "-" + str(b) + "|=\\)"
|
||||
solution = f"\\({absDiff}\\)"
|
||||
if format == "string":
|
||||
return "|" + str(a) + "-" + str(b) + "|=", absDiff
|
||||
elif format == 'latex':
|
||||
return ("\\(|" + str(a) + "-" + str(b) + "|=\\)",
|
||||
f"\\({absDiff}\\)")
|
||||
else:
|
||||
problem = "|" + str(a) + "-" + str(b) + "|="
|
||||
solution = absDiff
|
||||
return problem, solution
|
||||
return a, b, absDiff
|
||||
|
||||
|
||||
absolute_difference = Generator(
|
||||
"Absolute difference between two numbers", 71,
|
||||
absoluteDifferenceFunc,
|
||||
main,
|
||||
["maxA=100", "maxB=100"])
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def main(maxSum=99, maxAddend=50, style='raw'):
|
||||
def main(maxSum=99, maxAddend=50, format='string'):
|
||||
if maxAddend > maxSum:
|
||||
maxAddend = maxSum
|
||||
a = random.randint(0, maxAddend)
|
||||
@@ -9,14 +9,16 @@ def main(maxSum=99, maxAddend=50, style='raw'):
|
||||
b = random.randint(0, min((maxSum - a), maxAddend))
|
||||
c = a + b
|
||||
|
||||
if style == 'latex':
|
||||
if format == "string":
|
||||
problem = str(a) + "+" + str(b) + "="
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
elif format == 'latex':
|
||||
problem = "\\(" + str(a) + '+' + str(b) + "\\)"
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
else:
|
||||
problem = str(a) + "+" + str(b) + "="
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
return a, b, c
|
||||
|
||||
|
||||
addition = Generator("Addition", 0, main, ["maxSum=99", "maxAddend=50"])
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def compareFractionsFunc(maxVal=10, style='raw'):
|
||||
def compareFractionsFunc(maxVal=10, format='string'):
|
||||
a = random.randint(1, maxVal)
|
||||
b = random.randint(1, maxVal)
|
||||
c = random.randint(1, maxVal)
|
||||
@@ -22,11 +22,14 @@ def compareFractionsFunc(maxVal=10, style='raw'):
|
||||
else:
|
||||
solution = "="
|
||||
|
||||
if style == 'latex':
|
||||
problem = f"Which symbol represents the comparison between \\(\\frac{{{a}}}{{{b}}}\\) and \\(\\frac{{{c}}}{{{d}}}\\)?"
|
||||
if format == "string":
|
||||
return (f"Which symbol represents the comparison between {a}/{b} and {c}/{d}?",
|
||||
solution)
|
||||
elif format == 'latex':
|
||||
return (f"Which symbol represents the comparison between \\(\\frac{{{a}}}{{{b}}}\\) and \\(\\frac{{{c}}}{{{d}}}\\)?",
|
||||
solution)
|
||||
else:
|
||||
problem = f"Which symbol represents the comparison between {a}/{b} and {c}/{d}?"
|
||||
return problem, solution
|
||||
return a, b, c, d, solution
|
||||
|
||||
|
||||
compare_fractions = Generator(
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def complexDivisionFunc(maxRes=99, maxDivid=99, style='raw'):
|
||||
def complexDivisionFunc(maxRes=99, maxDivid=99, format='string'):
|
||||
a = random.randint(0, maxDivid)
|
||||
b = random.randint(1, min(maxRes, maxDivid))
|
||||
c = a / b
|
||||
c = round(c, 2)
|
||||
|
||||
if style == 'latex':
|
||||
problem = "\\(" + str(a) + "\\div" + str(b) + "=\\)"
|
||||
solution = "\\(" + str(c) + "\\)"
|
||||
if format == "string":
|
||||
return (str(a) + "/" + str(b) + "=",
|
||||
str(c))
|
||||
elif format == 'latex':
|
||||
return ("\\(" + str(a) + "\\div" + str(b) + "=\\)",
|
||||
"\\(" + str(c) + "\\)")
|
||||
else:
|
||||
problem = str(a) + "/" + str(b) + "="
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
return a, b, c
|
||||
|
||||
|
||||
complex_division = Generator("Complex Division", 13, complexDivisionFunc,
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def cubeRootFunc(minNo=1, maxNo=1000, style='raw'):
|
||||
def cubeRootFunc(minNo=1, maxNo=1000, format='string'):
|
||||
b = random.randint(minNo, maxNo)
|
||||
a = b**(1 / 3)
|
||||
|
||||
if style == 'latex':
|
||||
problem = f"\\(\\sqrt[3]{{{b}}}=\\)"
|
||||
solution = "\\(" + str(round(a, 2)) + "\\)"
|
||||
if format == 'string':
|
||||
return ("What is the cube root of " + str(b) + " up to 2 decimal places?",
|
||||
str(round(a, 2)))
|
||||
elif format == 'latex':
|
||||
return (f"\\(\\sqrt[3]{{{b}}}=\\)",
|
||||
"\\(" + str(round(a, 2)) + "\\)")
|
||||
else:
|
||||
problem = "What is the cube root of " + \
|
||||
str(b) + " up to 2 decimal places?"
|
||||
solution = str(round(a, 2))
|
||||
return problem, solution
|
||||
return b, a
|
||||
|
||||
|
||||
cube_root = Generator("Cube Root", 47,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def divideFractionsFunc(maxVal=10, style='raw'):
|
||||
def divideFractionsFunc(maxVal=10, format='string'):
|
||||
a = random.randint(1, maxVal)
|
||||
b = random.randint(1, maxVal)
|
||||
|
||||
@@ -29,18 +29,19 @@ def divideFractionsFunc(maxVal=10, style='raw'):
|
||||
if (tmp_d == 1 or tmp_d == gcd):
|
||||
x = f"{sol_numerator}"
|
||||
|
||||
if style == 'latex':
|
||||
problem = "\\(\\frac{" + str(a) + "}{" + str(b) + \
|
||||
"}\\div\\frac{" + str(c) + "}{" + str(d) + "}=\\)"
|
||||
if format == 'string':
|
||||
return f"({a}/{b})/({c}/{d})", x
|
||||
elif format == 'latex':
|
||||
if tmp_d == 1 or tmp_d == gcd:
|
||||
solution = "\\(" + str(sol_numerator) + "\\)"
|
||||
else:
|
||||
solution = "\\(\\frac{" + str(sol_numerator) + \
|
||||
"}{" + str(sol_denominator) + "}\\)"
|
||||
return ("\\(\\frac{" + str(a) + "}{" + str(b) + \
|
||||
"}\\div\\frac{" + str(c) + "}{" + str(d) + "}=\\)",
|
||||
solution)
|
||||
else:
|
||||
problem = f"({a}/{b})/({c}/{d})"
|
||||
solution = x
|
||||
return problem, solution
|
||||
return a, b, c, d, x
|
||||
|
||||
|
||||
divide_fractions = Generator("Fraction Division", 16,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def divisionToIntFunc(maxA=25, maxB=25, style='raw'):
|
||||
def divisionToIntFunc(maxA=25, maxB=25, format='string'):
|
||||
a = random.randint(1, maxA)
|
||||
b = random.randint(1, maxB)
|
||||
|
||||
@@ -9,13 +9,13 @@ def divisionToIntFunc(maxA=25, maxB=25, style='raw'):
|
||||
dividend = random.choice([a, b])
|
||||
quotient = int(divisor / dividend)
|
||||
|
||||
if style == 'latex':
|
||||
problem = "\\(" + str(divisor) + "\\div" + str(dividend) + "=\\)"
|
||||
solution = "\\(" + str(quotient) + "\\)"
|
||||
if format == 'string':
|
||||
return f"{divisor}/{dividend}=", str(quotient)
|
||||
elif format == 'latex':
|
||||
return ("\\(" + str(divisor) + "\\div" + str(dividend) + "=\\)",
|
||||
"\\(" + str(quotient) + "\\)")
|
||||
else:
|
||||
problem = f"{divisor}/{dividend}="
|
||||
solution = str(quotient)
|
||||
return problem, solution
|
||||
return divisor, dividend, quotient
|
||||
|
||||
|
||||
division = Generator("Division", 3,
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def exponentiationFunc(maxBase=20, maxExpo=10, style='raw'):
|
||||
def exponentiationFunc(maxBase=20, maxExpo=10, format='string'):
|
||||
base = random.randint(1, maxBase)
|
||||
expo = random.randint(1, maxExpo)
|
||||
|
||||
if style == 'latex':
|
||||
problem = f"\\({base}^{{{expo}}}\\)"
|
||||
solution = "\\(" + str(base**expo) + "\\)"
|
||||
if format == 'string':
|
||||
return (f"{base}^{expo} =",
|
||||
str(base**expo))
|
||||
elif format == 'latex':
|
||||
return f"\\({base}^{{{expo}}}\\)", "\\(" + str(base**expo) + "\\)"
|
||||
else:
|
||||
problem = f"{base}^{expo} ="
|
||||
solution = str(base**expo)
|
||||
return problem, solution
|
||||
return base, expo, base**expo
|
||||
|
||||
|
||||
exponentiation = Generator("Exponentiation", 53,
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def factorialFunc(maxInput=6):
|
||||
def factorialFunc(maxInput=6, format='string'):
|
||||
a = random.randint(0, maxInput)
|
||||
n = a
|
||||
|
||||
problem = str(a) + "! = "
|
||||
b = 1
|
||||
|
||||
while a != 1 and n > 0:
|
||||
b *= n
|
||||
n -= 1
|
||||
solution = str(b)
|
||||
return problem, solution
|
||||
|
||||
if format == 'string':
|
||||
return str(a) + "! = ", str(b)
|
||||
else:
|
||||
return a, b
|
||||
|
||||
|
||||
factorial = Generator("Factorial", 31,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def multiplyFractionsFunc(maxVal=10, style='raw'):
|
||||
def multiplyFractionsFunc(maxVal=10, format='string'):
|
||||
a = random.randint(1, maxVal)
|
||||
b = random.randint(1, maxVal)
|
||||
c = random.randint(1, maxVal)
|
||||
@@ -27,16 +27,17 @@ def multiplyFractionsFunc(maxVal=10, style='raw'):
|
||||
if (tmp_d == 1 or tmp_d == gcd):
|
||||
x = f"{tmp_n//gcd}"
|
||||
|
||||
if style == 'latex':
|
||||
if format == 'string':
|
||||
return f"({a}/{b})*({c}/{d})", x
|
||||
elif format == 'latex':
|
||||
problem = f"\\(\\frac{{{a}}}{{{b}}}\\cdot\\frac{{{c}}}{{{d}}}=\\)"
|
||||
if (tmp_d == 1 or tmp_d == gcd):
|
||||
solution = f"\\(\\frac{{{tmp_n}}}{{{gcd}}}\\)"
|
||||
else:
|
||||
solution = f"\\(\\frac{{{tmp_n//gcd}}}{{{tmp_d//gcd}}}\\)"
|
||||
else:
|
||||
problem = f"({a}/{b})*({c}/{d})"
|
||||
solution = x
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, d, x
|
||||
|
||||
|
||||
fraction_multiplication = Generator("Fraction Multiplication", 28,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def isprime(max_num=100):
|
||||
def isprime(max_num=100, format='string'):
|
||||
a = random.randint(2, max_num)
|
||||
problem = f"Is {a} prime?"
|
||||
if a == 2:
|
||||
@@ -15,7 +15,11 @@ def isprime(max_num=100):
|
||||
solution = "No"
|
||||
return (problem, solution)
|
||||
solution = "Yes"
|
||||
return (problem, solution)
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return a, solution
|
||||
|
||||
|
||||
is_prime = Generator('isprime', 90,
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def multiplicationFunc(maxMulti=12, style='raw'):
|
||||
def multiplicationFunc(maxMulti=12, format='string'):
|
||||
a = random.randint(0, maxMulti)
|
||||
b = random.randint(0, maxMulti)
|
||||
c = a * b
|
||||
|
||||
if style == 'latex':
|
||||
problem = "\\(" + str(a) + "\\cdot" + str(b) + "=\\)"
|
||||
solution = "\\(" + str(c) + "\\)"
|
||||
else:
|
||||
if format == 'string':
|
||||
problem = str(a) + "*" + str(b) + "="
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
elif format == 'latex':
|
||||
problem = "\\(" + str(a) + "\\cdot" + str(b) + "=\\)"
|
||||
solution = "\\(" + str(c) + "\\)"
|
||||
else:
|
||||
return a, b, c
|
||||
|
||||
|
||||
multiplication = Generator("Multiplication", 2,
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def percentageFunc(maxValue=99, maxpercentage=99):
|
||||
def percentageFunc(maxValue=99, maxpercentage=99, format='string'):
|
||||
a = random.randint(1, maxpercentage)
|
||||
b = random.randint(1, maxValue)
|
||||
problem = f"What is {a}% of {b}?"
|
||||
percentage = a / 100 * b
|
||||
formatted_float = "{:.2f}".format(percentage)
|
||||
solution = f"{formatted_float}"
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, formatted_float
|
||||
|
||||
|
||||
percentage = Generator("Percentage of a number", 80, percentageFunc,
|
||||
|
||||
@@ -1,20 +1,23 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def powerOfPowersFunc(maxBase=50, maxPower=10, style='raw'):
|
||||
def powerOfPowersFunc(maxBase=50, maxPower=10, format='string'):
|
||||
base = random.randint(1, maxBase)
|
||||
power1 = random.randint(1, maxPower)
|
||||
power2 = random.randint(1, maxPower)
|
||||
step = power1 * power2
|
||||
|
||||
if style == 'latex':
|
||||
problem = "Simplify \\(" + str(base) + \
|
||||
"^{" + str(power1) + "^{" + str(power2) + "}}\\)"
|
||||
solution = f"\\({base}^{{{step}}}\\)"
|
||||
else:
|
||||
if format == 'string':
|
||||
problem = f"Simplify {base}^{power1}^{power2}="
|
||||
solution = str(base) + '^' + str(step)
|
||||
return problem, solution
|
||||
elif format == 'latex':
|
||||
problem = "Simplify \\(" + str(base) + \
|
||||
"^{" + str(power1) + "^{" + str(power2) + "}}\\)"
|
||||
solution = f"\\({base}^{{{step}}}\\)"
|
||||
return problem, solution
|
||||
else:
|
||||
return base, power1, power2, base, step
|
||||
|
||||
|
||||
power_of_powers = Generator("Power of Powers", 97, powerOfPowersFunc,
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def squareFunc(maxSquareNum=20, style='raw'):
|
||||
def squareFunc(maxSquareNum=20, format='string'):
|
||||
a = random.randint(1, maxSquareNum)
|
||||
b = a * a
|
||||
|
||||
if style == 'latex':
|
||||
problem = "\\(" + str(a) + "^{2}=\\)"
|
||||
solution = "\\(" + str(b) + "\\)"
|
||||
else:
|
||||
if format == 'string':
|
||||
problem = str(a) + "^2" + "="
|
||||
solution = str(b)
|
||||
return problem, solution
|
||||
if format == 'latex':
|
||||
problem = "\\(" + str(a) + "^{2}=\\)"
|
||||
solution = "\\(" + str(b) + "\\)"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b
|
||||
|
||||
|
||||
square = Generator("Square", 8, squareFunc, ["maxSquareNum=20"])
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def squareRootFunc(minNo=1, maxNo=12, style='raw'):
|
||||
def squareRootFunc(minNo=1, maxNo=12, format='string'):
|
||||
b = random.randint(minNo, maxNo)
|
||||
a = b * b
|
||||
|
||||
if style == 'latex':
|
||||
problem = "\\(\\sqrt{" + str(a) + "}=\\)"
|
||||
solution = "\\(" + str(b) + "\\)"
|
||||
else:
|
||||
if format == 'string':
|
||||
problem = "sqrt(" + str(a) + ")="
|
||||
solution = str(b)
|
||||
return problem, solution
|
||||
elif format == 'latex':
|
||||
problem = "\\(\\sqrt{" + str(a) + "}=\\)"
|
||||
solution = "\\(" + str(b) + "\\)"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b
|
||||
|
||||
|
||||
square_root = Generator("Square Root", 6, squareRootFunc,
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def subtractionFunc(maxMinuend=99, maxDiff=99):
|
||||
def subtractionFunc(maxMinuend=99, maxDiff=99, format='string'):
|
||||
a = random.randint(0, maxMinuend)
|
||||
b = random.randint(max(0, (a - maxDiff)), a)
|
||||
c = a - b
|
||||
|
||||
if format == 'string':
|
||||
problem = str(a) + "-" + str(b) + "="
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c
|
||||
|
||||
|
||||
subtraction = Generator("Subtraction", 1, subtractionFunc,
|
||||
|
||||
@@ -3,7 +3,7 @@ import scipy
|
||||
from scipy.integrate import quad
|
||||
|
||||
|
||||
def definiteIntegralFunc(max_coeff=100):
|
||||
def definiteIntegralFunc(max_coeff=100, format='string'):
|
||||
def integrand(x, a, b, c):
|
||||
return a * x**2 + b * x + c
|
||||
|
||||
@@ -14,12 +14,13 @@ def definiteIntegralFunc(max_coeff=100):
|
||||
result = quad(integrand, 0, 1, args=(a, b, c))[0]
|
||||
S = round(result, 4)
|
||||
|
||||
if format == 'string':
|
||||
problem = "The definite integral within limits 0 to 1 of the equation " + \
|
||||
str(a) + "x^2 + " + str(b) + "x + " + str(c) + " is = "
|
||||
|
||||
solution = str(S)
|
||||
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, S
|
||||
|
||||
|
||||
definite_integral = Generator(
|
||||
|
||||
@@ -31,11 +31,10 @@ def genDifferentiationProblem(diff_lvl=2):
|
||||
operator = random.choice(('/', '*'))
|
||||
problem = '(' + genDifferentiationProblem(2) + ')' + \
|
||||
operator + '(' + genDifferentiationProblem(3) + ')'
|
||||
|
||||
return problem
|
||||
|
||||
|
||||
def differentiationFunc(diff_lvl=2):
|
||||
def differentiationFunc(diff_lvl=2, format='string'):
|
||||
if diff_lvl < 1 or diff_lvl > 4:
|
||||
print("diff_lvl not supported")
|
||||
return None
|
||||
@@ -46,6 +45,9 @@ def differentiationFunc(diff_lvl=2):
|
||||
solution = solution.replace('**', '^')
|
||||
problem = f"differentiate w.r.t x : d({problem})/dx"
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return problem, solution
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def powerRuleDifferentiationFunc(maxCoef=10, maxExp=10, maxTerms=5):
|
||||
def powerRuleDifferentiationFunc(maxCoef=10, maxExp=10, maxTerms=5, format='string'):
|
||||
numTerms = random.randint(1, maxTerms)
|
||||
problem = ""
|
||||
solution = ""
|
||||
@@ -15,6 +15,10 @@ def powerRuleDifferentiationFunc(maxCoef=10, maxExp=10, maxTerms=5):
|
||||
|
||||
problem += str(coefficient) + "x^" + str(exponent)
|
||||
solution += str(coefficient * exponent) + "x^" + str(exponent - 1)
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return problem, solution
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def powerRuleIntegrationFunc(maxCoef=10, maxExp=10, maxTerms=5):
|
||||
def powerRuleIntegrationFunc(maxCoef=10, maxExp=10, maxTerms=5, format='string'):
|
||||
numTerms = random.randint(1, maxTerms)
|
||||
problem = ""
|
||||
solution = ""
|
||||
@@ -18,6 +18,10 @@ def powerRuleIntegrationFunc(maxCoef=10, maxExp=10, maxTerms=5):
|
||||
str(exponent) + ")x^" + str(exponent + 1)
|
||||
|
||||
solution += " + c"
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return problem, solution
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ from .__init__ import *
|
||||
import sympy
|
||||
|
||||
|
||||
def stationaryPointsFunc(maxExp=3, maxCoef=10):
|
||||
def stationaryPointsFunc(maxExp=3, maxCoef=10, format='string'):
|
||||
while True:
|
||||
x = sympy.symbols('x')
|
||||
problem = 0
|
||||
@@ -11,12 +11,15 @@ def stationaryPointsFunc(maxExp=3, maxCoef=10):
|
||||
problem += coefficient * pow(x, exp)
|
||||
solution = sympy.stationary_points(problem, x)
|
||||
|
||||
if len(solution) != 0:
|
||||
#if len(solution) != 0:
|
||||
solution = ','.join('({},{})'.format(
|
||||
str(p),
|
||||
sympy.sympify(problem.replace(x, p))
|
||||
) for p in solution)
|
||||
problem = 'f(x)=' + str(problem).replace('**', '^')
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return problem, solution
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def BCDtoDecimalFunc(maxNumber=10000):
|
||||
def BCDtoDecimalFunc(maxNumber=10000, format='string'):
|
||||
n = random.randint(1000, maxNumber)
|
||||
binstring = ''
|
||||
while True:
|
||||
@@ -15,9 +15,12 @@ def BCDtoDecimalFunc(maxNumber=10000):
|
||||
else:
|
||||
n = q
|
||||
|
||||
if format == 'string':
|
||||
problem = "Integer of Binary Coded Decimal " + str(n) + " is = "
|
||||
solution = int(binstring, 2)
|
||||
return problem, solution
|
||||
else:
|
||||
return n, int(binstring, 2)
|
||||
|
||||
|
||||
bcd_to_decimal = Generator("Binary Coded Decimal to Integer", 91,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def binary2sComplementFunc(maxDigits=10):
|
||||
def binary2sComplementFunc(maxDigits=10, format='string'):
|
||||
digits = random.randint(1, maxDigits)
|
||||
question = ''.join([str(random.randint(0, 1))
|
||||
for i in range(digits)]).lstrip('0')
|
||||
@@ -23,9 +23,12 @@ def binary2sComplementFunc(maxDigits=10):
|
||||
if j == 0 and carry is True:
|
||||
answer.insert(0, '1')
|
||||
|
||||
if format == 'string':
|
||||
problem = "2's complement of " + question + " ="
|
||||
solution = ''.join(answer).lstrip('0')
|
||||
return problem, solution
|
||||
else:
|
||||
return question, answer
|
||||
|
||||
|
||||
binary_2s_complement = Generator("Binary 2's Complement", 73,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def binaryComplement1sFunc(maxDigits=10):
|
||||
def binaryComplement1sFunc(maxDigits=10, format='string'):
|
||||
question = ''
|
||||
answer = ''
|
||||
|
||||
@@ -10,9 +10,11 @@ def binaryComplement1sFunc(maxDigits=10):
|
||||
question += temp
|
||||
answer += "0" if temp == "1" else "1"
|
||||
|
||||
if format == 'string':
|
||||
problem = question + "="
|
||||
solution = answer
|
||||
return problem, solution
|
||||
return problem, answer
|
||||
else:
|
||||
return problem, answer
|
||||
|
||||
|
||||
binary_complement_1s = Generator("Binary Complement 1s", 4,
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def binaryToDecimalFunc(max_dig=10):
|
||||
def binaryToDecimalFunc(max_dig=10, format='string'):
|
||||
problem = ''
|
||||
|
||||
for i in range(random.randint(1, max_dig)):
|
||||
temp = str(random.randint(0, 1))
|
||||
problem += temp
|
||||
|
||||
if format == 'string':
|
||||
solution = int(problem, 2)
|
||||
return problem, solution
|
||||
else:
|
||||
return problem, solution
|
||||
|
||||
|
||||
binary_to_decimal = Generator("Binary to Decimal", 15,
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def binaryToHexFunc(max_dig=10):
|
||||
def binaryToHexFunc(max_dig=10, format='string'):
|
||||
problem = ''
|
||||
for i in range(random.randint(1, max_dig)):
|
||||
temp = str(random.randint(0, 1))
|
||||
problem += temp
|
||||
|
||||
if format == 'string':
|
||||
solution = hex(int(problem, 2))
|
||||
return problem, solution
|
||||
else:
|
||||
return problem, solution
|
||||
|
||||
|
||||
binary_to_hex = Generator("Binary to Hexidecimal", 64, binaryToHexFunc,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def DecimalToBCDFunc(maxNumber=10000):
|
||||
def DecimalToBCDFunc(maxNumber=10000, format='string'):
|
||||
n = random.randint(1000, maxNumber)
|
||||
x = n
|
||||
# binstring = ''
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def DecimalToBinaryFunc(max_dec=99):
|
||||
def DecimalToBinaryFunc(max_dec=99, format='string'):
|
||||
a = random.randint(1, max_dec)
|
||||
b = bin(a).replace("0b", "")
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def deciToHexaFunc(max_dec=1000):
|
||||
def deciToHexaFunc(max_dec=1000, format='string'):
|
||||
a = random.randint(0, max_dec)
|
||||
b = hex(a)
|
||||
problem = "Binary of " + str(a) + "="
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def decimalToOctalFunc(maxDecimal=4096):
|
||||
def decimalToOctalFunc(maxDecimal=4096, format='string'):
|
||||
x = random.randint(0, maxDecimal)
|
||||
problem = "The decimal number " + str(x) + " in Octal is: "
|
||||
solution = oct(x)
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return x, oct(x)
|
||||
|
||||
|
||||
decimal_to_octal = Generator("Converts decimal to octal", 84,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def fibonacciSeriesFunc(minNo=1):
|
||||
def fibonacciSeriesFunc(minNo=1, format='string'):
|
||||
n = random.randint(minNo, 20)
|
||||
|
||||
def createFibList(n):
|
||||
@@ -16,9 +16,11 @@ def fibonacciSeriesFunc(minNo=1):
|
||||
|
||||
fibList = createFibList(n)
|
||||
|
||||
if format == 'string':
|
||||
problem = "The Fibonacci Series of the first " + str(n) + " numbers is ?"
|
||||
solution = fibList
|
||||
return problem, solution
|
||||
return problem, fibList
|
||||
else:
|
||||
return n, fibList
|
||||
|
||||
|
||||
fibonacci_series = Generator(
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def moduloFunc(maxRes=99, maxModulo=99):
|
||||
def moduloFunc(maxRes=99, maxModulo=99, format='string'):
|
||||
a = random.randint(0, maxModulo)
|
||||
b = random.randint(0, min(maxRes, maxModulo))
|
||||
c = a % b if b != 0 else 0
|
||||
|
||||
if format == 'string':
|
||||
problem = str(a) + "%" + str(b) + "="
|
||||
solution = str(c)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c
|
||||
|
||||
|
||||
modulo_division = Generator("Modulo Division", 5, moduloFunc,
|
||||
|
||||
@@ -3,13 +3,17 @@ from .__init__ import *
|
||||
import math
|
||||
|
||||
|
||||
def nthFibonacciNumberFunc(maxN=100):
|
||||
def nthFibonacciNumberFunc(maxN=100, format='string'):
|
||||
golden_ratio = (1 + math.sqrt(5)) / 2
|
||||
n = random.randint(1, maxN)
|
||||
problem = f"What is the {n}th Fibonacci number?"
|
||||
ans = round((math.pow(golden_ratio, n) - math.pow(-golden_ratio, -n)) / (math.sqrt(5)))
|
||||
|
||||
if format == 'string':
|
||||
solution = f"{ans}"
|
||||
return problem, solution
|
||||
else:
|
||||
return n, ans
|
||||
|
||||
|
||||
nth_fibonacci_number = Generator("nth Fibonacci number", 62,
|
||||
|
||||
@@ -2,7 +2,7 @@ from .__init__ import *
|
||||
import math
|
||||
|
||||
|
||||
def angleBtwVectorsFunc(maxEltAmt=20):
|
||||
def angleBtwVectorsFunc(maxEltAmt=20, format='string'):
|
||||
s = 0
|
||||
v1 = [
|
||||
round(random.uniform(0, 1000), 2)
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def regularPolygonAngleFunc(minVal=3, maxVal=20):
|
||||
def regularPolygonAngleFunc(minVal=3, maxVal=20, format='string'):
|
||||
sideNum = random.randint(minVal, maxVal)
|
||||
problem = f"Find the angle of a regular polygon with {sideNum} sides"
|
||||
|
||||
exteriorAngle = round((360 / sideNum), 2)
|
||||
solution = 180 - exteriorAngle
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return sideNum, solution
|
||||
|
||||
|
||||
angle_regular_polygon = Generator(
|
||||
|
||||
@@ -3,14 +3,18 @@ from .__init__ import *
|
||||
import math
|
||||
|
||||
|
||||
def arclengthFunc(maxRadius=49, maxAngle=359):
|
||||
Radius = random.randint(1, maxRadius)
|
||||
Angle = random.randint(1, maxAngle)
|
||||
problem = f"Given radius, {Radius} and angle, {Angle}. Find the arc length of the angle."
|
||||
angle_arc_length = float((Angle / 360) * 2 * math.pi * Radius)
|
||||
def arclengthFunc(maxRadius=49, maxAngle=359, format='string'):
|
||||
radius = random.randint(1, maxRadius)
|
||||
angle = random.randint(1, maxAngle)
|
||||
problem = f"Given radius, {radius} and angle, {angle}. Find the arc length of the angle."
|
||||
angle_arc_length = float((angle / 360) * 2 * math.pi * radius)
|
||||
formatted_float = "{:.5f}".format(angle_arc_length)
|
||||
|
||||
if format == 'string':
|
||||
solution = f"Arc length of the angle = {formatted_float}"
|
||||
return problem, solution
|
||||
else:
|
||||
return radius, angle, formatted_float
|
||||
|
||||
|
||||
arc_length = Generator("Arc length of Angle", 108, arclengthFunc,
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def areaCircle(maxRadius=100):
|
||||
def areaCircle(maxRadius=100, format='string'):
|
||||
r = random.randint(0, maxRadius)
|
||||
pi = 22 / 7
|
||||
area = pi * r * r
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Area of circle with radius {r}"
|
||||
solution = area
|
||||
return problem, solution
|
||||
return problem, str(area)
|
||||
else:
|
||||
return r, area
|
||||
|
||||
|
||||
area_of_circle = Generator("Area of Circle", 112, areaCircle,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def areaOfTriangleFunc(maxA=20, maxB=20, maxC=20):
|
||||
def areaOfTriangleFunc(maxA=20, maxB=20, maxC=20, format='string'):
|
||||
a = random.randint(1, maxA)
|
||||
b = random.randint(1, maxB)
|
||||
c = random.randint(1, maxC)
|
||||
@@ -9,10 +9,13 @@ def areaOfTriangleFunc(maxA=20, maxB=20, maxC=20):
|
||||
s = (a + b + c) / 2
|
||||
area = (s * (s - a) * (s - b) * (s - c))**0.5
|
||||
|
||||
if format == 'string':
|
||||
problem = "Area of triangle with side lengths: " + \
|
||||
str(a) + " " + str(b) + " " + str(c) + " = "
|
||||
solution = str(area)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, area
|
||||
|
||||
|
||||
area_of_triangle = Generator("Area of Triangle", 18,
|
||||
|
||||
@@ -5,7 +5,7 @@ import math
|
||||
|
||||
# Handles degrees in quadrant one
|
||||
def basicTrigonometryFunc(angles=[0, 30, 45, 60, 90],
|
||||
functions=["sin", "cos", "tan"]):
|
||||
functions=["sin", "cos", "tan"], format='string'):
|
||||
angle = random.choice(angles)
|
||||
function = random.choice(functions)
|
||||
|
||||
@@ -24,7 +24,11 @@ def basicTrigonometryFunc(angles=[0, 30, 45, 60, 90],
|
||||
|
||||
solution = result_fraction_map[round(eval(expression), 2)] if round(
|
||||
eval(expression), 2) <= 99999 else "∞" # for handling the ∞ condition
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return function, angle, solution
|
||||
|
||||
|
||||
basic_trigonometry = Generator("Trigonometric Values", 57, basicTrigonometryFunc,
|
||||
|
||||
@@ -2,12 +2,15 @@ from .__init__ import *
|
||||
import math
|
||||
|
||||
|
||||
def circumferenceCircle(maxRadius=100):
|
||||
def circumferenceCircle(maxRadius=100, format='string'):
|
||||
r = random.randint(0, maxRadius)
|
||||
circumference = 2 * math.pi * r
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Circumference of circle with radius {r}"
|
||||
solution = circumference
|
||||
return problem, solution
|
||||
return problem, circumference
|
||||
else:
|
||||
return r, circumference
|
||||
|
||||
|
||||
circumference = Generator("Circumference", 104, circumferenceCircle,
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def curvedSurfaceAreaCylinderFunc(maxRadius=49, maxHeight=99):
|
||||
def curvedSurfaceAreaCylinderFunc(maxRadius=49, maxHeight=99, format='string'):
|
||||
r = random.randint(1, maxRadius)
|
||||
h = random.randint(1, maxHeight)
|
||||
problem = f"What is the curved surface area of a cylinder of radius, {r} and height, {h}?"
|
||||
csa = float(2 * math.pi * r * h)
|
||||
formatted_float = round(csa, 2) # "{:.5f}".format(csa)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"What is the curved surface area of a cylinder of radius, {r} and height, {h}?"
|
||||
solution = f"CSA of cylinder = {formatted_float}"
|
||||
return problem, solution
|
||||
else:
|
||||
return r, h, formatted_float
|
||||
|
||||
|
||||
curved_surface_area_cylinder = Generator(
|
||||
|
||||
@@ -2,15 +2,17 @@ from .__init__ import *
|
||||
from numpy import pi
|
||||
|
||||
|
||||
def degreeToRadFunc(max_deg=360):
|
||||
def degreeToRadFunc(max_deg=360, format='string'):
|
||||
a = random.randint(0, max_deg)
|
||||
b = (pi * a) / 180
|
||||
b = round(b, 2)
|
||||
|
||||
if format == 'string':
|
||||
problem = "Angle " + str(a) + " in radians is = "
|
||||
solution = str(b)
|
||||
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b
|
||||
|
||||
|
||||
degree_to_rad = Generator("Degrees to Radians", 86, degreeToRadFunc,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def fourthAngleOfQuadriFunc(maxAngle=180):
|
||||
def fourthAngleOfQuadriFunc(maxAngle=180, format='string'):
|
||||
angle1 = random.randint(1, maxAngle)
|
||||
angle2 = random.randint(1, 240 - angle1)
|
||||
angle3 = random.randint(1, 340 - (angle1 + angle2))
|
||||
@@ -9,9 +9,12 @@ def fourthAngleOfQuadriFunc(maxAngle=180):
|
||||
sum_ = angle1 + angle2 + angle3
|
||||
angle4 = 360 - sum_
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Fourth angle of quadrilateral with angles {angle1} , {angle2}, {angle3} ="
|
||||
solution = angle4
|
||||
return problem, solution
|
||||
else:
|
||||
return angle1, angle2, angle3, angle4
|
||||
|
||||
|
||||
fourth_angle_of_quadrilateral = Generator(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def perimeterOfPolygons(maxSides=12, maxLength=120):
|
||||
def perimeterOfPolygons(maxSides=12, maxLength=120, format='string'):
|
||||
size_of_sides = random.randint(3, maxSides)
|
||||
sides = []
|
||||
for x in range(size_of_sides):
|
||||
@@ -11,7 +11,11 @@ def perimeterOfPolygons(maxSides=12, maxLength=120):
|
||||
solution = 0
|
||||
for y in range(len(sides)):
|
||||
solution += sides[y]
|
||||
|
||||
if format == 'string':
|
||||
return problem, solution
|
||||
else:
|
||||
return size_of_sides, sides, solution
|
||||
|
||||
|
||||
perimeter_of_polygons = Generator(
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def pythagoreanTheoremFunc(maxLength=20):
|
||||
def pythagoreanTheoremFunc(maxLength=20, format='string'):
|
||||
a = random.randint(1, maxLength)
|
||||
b = random.randint(1, maxLength)
|
||||
c = (a**2 + b**2)**0.5
|
||||
|
||||
if format == 'string':
|
||||
problem = f"The hypotenuse of a right triangle given the other two lengths {a} and {b} = "
|
||||
solution = f"{c:.0f}" if c.is_integer() else f"{c:.2f}"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, round(c,2)
|
||||
|
||||
|
||||
pythagorean_theorem = Generator(
|
||||
|
||||
@@ -2,16 +2,18 @@ from .__init__ import *
|
||||
from numpy import pi
|
||||
|
||||
|
||||
def radianToDegFunc(max_rad=3):
|
||||
def radianToDegFunc(max_rad=3, format='string'):
|
||||
# max_rad is supposed to be pi but random can't handle non-integer
|
||||
a = random.randint(0, max_rad)
|
||||
b = (180 * a) / pi
|
||||
b = round(b, 2)
|
||||
|
||||
if format == 'string':
|
||||
problem = "Angle " + str(a) + " in degrees is = "
|
||||
solution = str(b)
|
||||
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b
|
||||
|
||||
|
||||
radian_to_deg = Generator("Radians to Degrees", 87, radianToDegFunc,
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def sectorAreaFunc(maxRadius=49, maxAngle=359):
|
||||
Radius = random.randint(1, maxRadius)
|
||||
Angle = random.randint(1, maxAngle)
|
||||
problem = f"Given radius, {Radius} and angle, {Angle}. Find the area of the sector."
|
||||
secArea = float((Angle / 360) * math.pi * Radius * Radius)
|
||||
def sectorAreaFunc(maxRadius=49, maxAngle=359, format='string'):
|
||||
r = random.randint(1, maxRadius)
|
||||
a = random.randint(1, maxAngle)
|
||||
secArea = float((a / 360) * math.pi * r * r)
|
||||
formatted_float = "{:.5f}".format(secArea)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Given radius, {r} and angle, {a}. Find the area of the sector."
|
||||
solution = f"Area of sector = {formatted_float}"
|
||||
return problem, solution
|
||||
else:
|
||||
return r, a, formatted_float
|
||||
|
||||
|
||||
sector_area = Generator("Area of a Sector", 75, sectorAreaFunc,
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def sumOfAnglesOfPolygonFunc(maxSides=12):
|
||||
side = random.randint(3, maxSides)
|
||||
sum = (side - 2) * 180
|
||||
def sumOfAnglesOfPolygonFunc(maxSides=12, format='string'):
|
||||
side_count = random.randint(3, maxSides)
|
||||
sum = (side_count - 2) * 180
|
||||
|
||||
problem = f"Sum of angles of polygon with {side} sides = "
|
||||
solution = sum
|
||||
return problem, solution
|
||||
if format == 'string':
|
||||
problem = f"Sum of angles of polygon with {side_count} sides = "
|
||||
return problem, sum
|
||||
else:
|
||||
return side_count, sum
|
||||
|
||||
|
||||
sum_of_polygon_angles = Generator("Sum of Angles of Polygon", 58,
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def surfaceAreaCone(maxRadius=20, maxHeight=50, unit='m'):
|
||||
def surfaceAreaCone(maxRadius=20, maxHeight=50, unit='m', format='string'):
|
||||
a = random.randint(1, maxHeight)
|
||||
b = random.randint(1, maxRadius)
|
||||
|
||||
slopingHeight = math.sqrt(a**2 + b**2)
|
||||
problem = f"Surface area of cone with height = {a}{unit} and radius = {b}{unit} is"
|
||||
ans = int(math.pi * b * slopingHeight + math.pi * b * b)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Surface area of cone with height = {a}{unit} and radius = {b}{unit} is"
|
||||
solution = f"{ans} {unit}^2"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, ans, unit
|
||||
|
||||
|
||||
surface_area_cone = Generator(
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def surfaceAreaCube(maxSide=20, unit='m'):
|
||||
def surfaceAreaCube(maxSide=20, unit='m', format='string'):
|
||||
a = random.randint(1, maxSide)
|
||||
problem = f"Surface area of cube with side = {a}{unit} is"
|
||||
ans = 6 * a * a
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Surface area of cube with side = {a}{unit} is"
|
||||
solution = f"{ans} {unit}^2"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, ans, unit
|
||||
|
||||
|
||||
surface_area_cube = Generator("Surface Area of Cube", 32,
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def surfaceAreaCuboid(maxSide=20, unit='m'):
|
||||
def surfaceAreaCuboid(maxSide=20, unit='m', format='string'):
|
||||
a = random.randint(1, maxSide)
|
||||
b = random.randint(1, maxSide)
|
||||
c = random.randint(1, maxSide)
|
||||
|
||||
problem = f"Surface area of cuboid with sides = {a}{unit}, {b}{unit}, {c}{unit} is"
|
||||
ans = 2 * (a * b + b * c + c * a)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Surface area of cuboid with sides = {a}{unit}, {b}{unit}, {c}{unit} is"
|
||||
solution = f"{ans} {unit}^2"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, ans, unit
|
||||
|
||||
|
||||
surface_area_cuboid = Generator(
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def surfaceAreaCylinder(maxRadius=20, maxHeight=50, unit='m'):
|
||||
def surfaceAreaCylinder(maxRadius=20, maxHeight=50, unit='m', format='string'):
|
||||
a = random.randint(1, maxHeight)
|
||||
b = random.randint(1, maxRadius)
|
||||
|
||||
problem = f"Surface area of cylinder with height = {a}{unit} and radius = {b}{unit} is"
|
||||
ans = int(2 * math.pi * a * b + 2 * math.pi * b * b)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Surface area of cylinder with height = {a}{unit} and radius = {b}{unit} is"
|
||||
solution = f"{ans} {unit}^2"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, ans, unit
|
||||
|
||||
|
||||
surface_area_cylinder = Generator(
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def surfaceAreaSphere(maxSide=20, unit='m'):
|
||||
def surfaceAreaSphere(maxSide=20, unit='m', format='string'):
|
||||
r = random.randint(1, maxSide)
|
||||
|
||||
problem = f"Surface area of Sphere with radius = {r}{unit} is"
|
||||
ans = 4 * math.pi * r * r
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Surface area of Sphere with radius = {r}{unit} is"
|
||||
solution = f"{ans} {unit}^2"
|
||||
return problem, solution
|
||||
else:
|
||||
return r, ans, unit
|
||||
|
||||
|
||||
surface_area_sphere = Generator(
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def thirdAngleOfTriangleFunc(maxAngle=89):
|
||||
def thirdAngleOfTriangleFunc(maxAngle=89, format='string'):
|
||||
angle1 = random.randint(1, maxAngle)
|
||||
angle2 = random.randint(1, maxAngle)
|
||||
angle3 = 180 - (angle1 + angle2)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Third angle of triangle with angles {angle1} and {angle2} = "
|
||||
solution = angle3
|
||||
return problem, solution
|
||||
return problem, angle3
|
||||
else:
|
||||
return angle1, angle2, angle3
|
||||
|
||||
|
||||
third_angle_of_triangle = Generator("Third Angle of Triangle", 22,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def isTriangleValidFunc(maxSideLength=50):
|
||||
def isTriangleValidFunc(maxSideLength=50, format='string'):
|
||||
sideA = random.randint(1, maxSideLength)
|
||||
sideB = random.randint(1, maxSideLength)
|
||||
sideC = random.randint(1, maxSideLength)
|
||||
@@ -11,13 +11,16 @@ def isTriangleValidFunc(maxSideLength=50):
|
||||
|
||||
exists = True & (sides[0] < sideSums[0]) & (sides[1] < sideSums[1]) & (
|
||||
sides[2] < sideSums[2])
|
||||
problem = f"Does triangle with sides {sideA}, {sideB} and {sideC} exist?"
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Does triangle with sides {sideA}, {sideB} and {sideC} exist?"
|
||||
if exists:
|
||||
solution = "Yes"
|
||||
return problem, solution
|
||||
else:
|
||||
solution = "No"
|
||||
return problem, solution
|
||||
else:
|
||||
return sideA, sideB, sideC, exists
|
||||
|
||||
|
||||
valid_triangle = Generator("Triangle exists check", 19,
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def volumeCone(maxRadius=20, maxHeight=50, unit='m'):
|
||||
def volumeCone(maxRadius=20, maxHeight=50, unit='m', format='string'):
|
||||
a = random.randint(1, maxHeight)
|
||||
b = random.randint(1, maxRadius)
|
||||
|
||||
problem = f"Volume of cone with height = {a}{unit} and radius = {b}{unit} is"
|
||||
ans = int(math.pi * b * b * a * (1 / 3))
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Volume of cone with height = {a}{unit} and radius = {b}{unit} is"
|
||||
solution = f"{ans} {unit}^3"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, ans, unit
|
||||
|
||||
|
||||
volume_cone = Generator(
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def volumeCube(maxSide=20, unit='m'):
|
||||
def volumeCube(maxSide=20, unit='m', format='string'):
|
||||
a = random.randint(1, maxSide)
|
||||
ans = a ** 3
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Volume of cube with side = {a}{unit} is"
|
||||
ans = a * a * a
|
||||
solution = f"{ans} {unit}^3"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, ans, unit
|
||||
|
||||
|
||||
volume_cube = Generator("Volum of Cube", 35,
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def volumeCuboid(maxSide=20, unit='m'):
|
||||
def volumeCuboid(maxSide=20, unit='m', format='string'):
|
||||
a = random.randint(1, maxSide)
|
||||
b = random.randint(1, maxSide)
|
||||
c = random.randint(1, maxSide)
|
||||
|
||||
problem = f"Volume of cuboid with sides = {a}{unit}, {b}{unit}, {c}{unit} is"
|
||||
ans = a * b * c
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Volume of cuboid with sides = {a}{unit}, {b}{unit}, {c}{unit} is"
|
||||
solution = f"{ans} {unit}^3"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, c, ans, unit
|
||||
|
||||
|
||||
volume_cuboid = Generator(
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def volumeCylinder(maxRadius=20, maxHeight=50, unit='m'):
|
||||
def volumeCylinder(maxRadius=20, maxHeight=50, unit='m', format='string'):
|
||||
a = random.randint(1, maxHeight)
|
||||
b = random.randint(1, maxRadius)
|
||||
|
||||
problem = f"Volume of cylinder with height = {a}{unit} and radius = {b}{unit} is"
|
||||
ans = int(math.pi * b * b * a)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Volume of cylinder with height = {a}{unit} and radius = {b}{unit} is"
|
||||
solution = f"{ans} {unit}^3"
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, ans, unit
|
||||
|
||||
|
||||
volume_cylinder = Generator(
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def volumeSphereFunc(maxRadius=100):
|
||||
def volumeSphereFunc(maxRadius=100, format='string'):
|
||||
r = random.randint(1, maxRadius)
|
||||
ans = (4 * math.pi / 3) * r ** 3
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Volume of sphere with radius {r} m = "
|
||||
ans = (4 * math.pi / 3) * r * r * r
|
||||
solution = f"{ans} m^3"
|
||||
return problem, solution
|
||||
else:
|
||||
return r, ans
|
||||
|
||||
|
||||
volume_sphere = Generator("Volume of Sphere", 61,
|
||||
|
||||
@@ -1,18 +1,23 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def arithmeticProgressionSumFunc(maxd=100, maxa=100, maxn=100):
|
||||
def arithmeticProgressionSumFunc(maxd=100, maxa=100, maxn=100, format='string'):
|
||||
d = random.randint(-1 * maxd, maxd)
|
||||
a1 = random.randint(-1 * maxa, maxa)
|
||||
a2 = a1 + d
|
||||
a3 = a1 + 2 * d
|
||||
n = random.randint(4, maxn)
|
||||
apString = str(a1) + ', ' + str(a2) + ', ' + str(a3) + ' ... '
|
||||
problem = 'Find the sum of first ' + \
|
||||
str(n) + ' terms of the AP series: ' + apString
|
||||
an = a1 + (n - 1) * d
|
||||
solution = n * (a1 + an) / 2
|
||||
|
||||
|
||||
if format == 'string':
|
||||
problem = 'Find the sum of first ' + \
|
||||
str(n) + ' terms of the AP series: ' + apString
|
||||
return problem, solution
|
||||
else:
|
||||
return n, apString, solution
|
||||
|
||||
|
||||
arithmetic_progression_sum = Generator(
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def arithmeticProgressionTermFunc(maxd=100, maxa=100, maxn=100):
|
||||
def arithmeticProgressionTermFunc(maxd=100, maxa=100, maxn=100, format='string'):
|
||||
d = random.randint(-1 * maxd, maxd)
|
||||
a1 = random.randint(-1 * maxa, maxa)
|
||||
a2 = a1 + d
|
||||
a3 = a2 + d
|
||||
n = random.randint(4, maxn)
|
||||
apString = str(a1) + ', ' + str(a2) + ', ' + str(a3) + ' ... '
|
||||
solution = a1 + ((n - 1) * d)
|
||||
|
||||
if format == 'string':
|
||||
problem = 'Find the term number ' + str(
|
||||
n) + ' of the AP series: ' + apString
|
||||
solution = a1 + ((n - 1) * d)
|
||||
return problem, solution
|
||||
else:
|
||||
return n, apString, solution
|
||||
|
||||
|
||||
arithmetic_progression_term = Generator(
|
||||
|
||||
@@ -30,7 +30,7 @@ def fromBaseTenTo(n, toBase):
|
||||
# return int(n,fromBase)
|
||||
|
||||
|
||||
def baseConversionFunc(maxNum=60000, maxBase=16):
|
||||
def baseConversionFunc(maxNum=60000, maxBase=16, format='string'):
|
||||
assert type(
|
||||
maxNum
|
||||
) == int and maxNum >= 100 and maxNum <= 65536, "maxNum({}) must be >=100 and <=65536".format(
|
||||
@@ -47,10 +47,13 @@ def baseConversionFunc(maxNum=60000, maxBase=16):
|
||||
while bases[0] == bases[1]:
|
||||
bases = random.choices(dist, k=2)
|
||||
|
||||
if format == 'string':
|
||||
problem = "Convert {} from base {} to base {}.".format(
|
||||
fromBaseTenTo(n, bases[0]), bases[0], bases[1])
|
||||
ans = fromBaseTenTo(n, bases[1])
|
||||
return problem, ans
|
||||
else:
|
||||
return fromBaseTenTo(n, bases[0]), bases[0], bases[1], fromBaseTenTo(n, bases[1])
|
||||
|
||||
|
||||
base_conversion = Generator("Base Conversion", 94,
|
||||
|
||||
@@ -13,29 +13,28 @@ def newton_symbol(n, k):
|
||||
return factorial(n) / (factorial(k) * factorial(n - k))
|
||||
|
||||
|
||||
def binomialDistFunc():
|
||||
|
||||
def binomialDistFunc(format='string'):
|
||||
rejected_fraction = float(random.randint(30, 40)) + random.random()
|
||||
batch = random.randint(10, 20)
|
||||
rejections = random.randint(1, 9)
|
||||
|
||||
answer = 0
|
||||
|
||||
rejected_fraction = round(rejected_fraction, 2)
|
||||
|
||||
problem = "A manufacturer of metal pistons finds that, on average, {0:}% "\
|
||||
"of the pistons they manufacture are rejected because " \
|
||||
"they are incorrectly sized. What is the probability that a "\
|
||||
"batch of {1:} pistons will contain no more than {2:} " \
|
||||
"rejected pistons?".format(rejected_fraction, batch, rejections)
|
||||
|
||||
for i in range(0, rejections + 1):
|
||||
answer += newton_symbol(float(batch), float(i)) * ((rejected_fraction / 100.) ** float(i)) * \
|
||||
((1 - (rejected_fraction / 100.)) ** (float(batch) - float(i)))
|
||||
|
||||
answer = round(100 * answer, 2)
|
||||
|
||||
if format == 'string':
|
||||
problem = "A manufacturer of metal pistons finds that, on average, {0:}% "\
|
||||
"of the pistons they manufacture are rejected because " \
|
||||
"they are incorrectly sized. What is the probability that a "\
|
||||
"batch of {1:} pistons will contain no more than {2:} " \
|
||||
"rejected pistons?".format(rejected_fraction, batch, rejections)
|
||||
return problem, answer
|
||||
else:
|
||||
return rejected_fraction, batch, rejections, answer
|
||||
|
||||
|
||||
binomial_distribution = Generator("Binomial distribution", 109,
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def celsiustofahrenheitFunc(maxTemp=100):
|
||||
def celsiustofahrenheitFunc(maxTemp=100, format='string'):
|
||||
celsius = random.randint(-50, maxTemp)
|
||||
fahrenheit = (celsius * (9 / 5)) + 32
|
||||
|
||||
if format == 'string':
|
||||
problem = "Convert " + str(
|
||||
celsius) + " degrees Celsius to degrees Fahrenheit ="
|
||||
solution = str(fahrenheit)
|
||||
return problem, solution
|
||||
else:
|
||||
return celsius, fahrenheit
|
||||
|
||||
|
||||
celsius_to_fahrenheit = Generator("Celsius To Fahrenheit", 81,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def commonFactorsFunc(maxVal=100):
|
||||
def commonFactorsFunc(maxVal=100, format='string'):
|
||||
a = x = random.randint(1, maxVal)
|
||||
b = y = random.randint(1, maxVal)
|
||||
|
||||
@@ -19,9 +19,12 @@ def commonFactorsFunc(maxVal=100):
|
||||
count = count + 1
|
||||
arr.append(i)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Common Factors of {a} and {b} = "
|
||||
solution = arr
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, arr
|
||||
|
||||
|
||||
common_factors = Generator("Common Factors", 40,
|
||||
|
||||
@@ -3,17 +3,19 @@ from .__init__ import *
|
||||
import math
|
||||
|
||||
|
||||
def complexToPolarFunc(minRealImaginaryNum=-20, maxRealImaginaryNum=20):
|
||||
def complexToPolarFunc(minRealImaginaryNum=-20, maxRealImaginaryNum=20, format='string'):
|
||||
num = complex(random.randint(minRealImaginaryNum, maxRealImaginaryNum),
|
||||
random.randint(minRealImaginaryNum, maxRealImaginaryNum))
|
||||
a = num.real
|
||||
b = num.imag
|
||||
r = round(math.hypot(a, b), 2)
|
||||
theta = round(math.atan2(b, a), 2)
|
||||
plr = str(r) + "exp(i" + str(theta) + ")"
|
||||
problem = "rexp(itheta) = "
|
||||
solution = plr
|
||||
return problem, solution
|
||||
|
||||
if format == 'string':
|
||||
problem = f'{r}({a}theta + i{b}theta)'
|
||||
return problem, theta
|
||||
else:
|
||||
return r, a, b, theta
|
||||
|
||||
|
||||
complex_to_polar = Generator("Complex To Polar Form", 92, complexToPolarFunc,
|
||||
|
||||
@@ -3,9 +3,8 @@ from .__init__ import *
|
||||
import math
|
||||
|
||||
|
||||
def decimalToRomanNumeralsFunc(maxDecimal=4000):
|
||||
def decimalToRomanNumeralsFunc(maxDecimal=4000, format='string'):
|
||||
x = random.randint(0, maxDecimal)
|
||||
problem = "The number " + str(x) + " in Roman Numerals is: "
|
||||
roman_dict = {
|
||||
1: "I",
|
||||
5: "V",
|
||||
@@ -32,7 +31,12 @@ def decimalToRomanNumeralsFunc(maxDecimal=4000):
|
||||
solution += (roman_dict[divisor] + roman_dict[divisor * 10])
|
||||
x = math.floor(x % divisor)
|
||||
divisor /= 10
|
||||
|
||||
if format == 'string':
|
||||
problem = "The number " + str(x) + " in Roman Numerals is: "
|
||||
return problem, solution
|
||||
else:
|
||||
return x, solution
|
||||
|
||||
|
||||
decimal_to_roman_numerals = Generator("Converts decimal to Roman Numerals", 85,
|
||||
|
||||
@@ -3,13 +3,17 @@ from .__init__ import *
|
||||
import math
|
||||
|
||||
|
||||
def euclidianNormFunc(maxEltAmt=20):
|
||||
def euclidianNormFunc(maxEltAmt=20, format='string'):
|
||||
vec = [
|
||||
random.uniform(0, 1000) for i in range(random.randint(2, maxEltAmt))
|
||||
]
|
||||
problem = f"Euclidian norm or L2 norm of the vector{vec} is:"
|
||||
solution = math.sqrt(sum([i**2 for i in vec]))
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Euclidian norm or L2 norm of the vector{vec} is:"
|
||||
return problem, solution
|
||||
else:
|
||||
return vec, solution
|
||||
|
||||
|
||||
eucldian_norm = Generator(
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def gcdFunc(maxVal=20):
|
||||
def gcdFunc(maxVal=20, format='string'):
|
||||
a = random.randint(1, maxVal)
|
||||
b = random.randint(1, maxVal)
|
||||
x, y = a, b
|
||||
while y:
|
||||
x, y = y, x % y
|
||||
|
||||
if format == 'string':
|
||||
problem = f"GCD of {a} and {b} = "
|
||||
solution = str(x)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, x
|
||||
|
||||
|
||||
gcd = Generator("GCD (Greatest Common Denominator)", 10, gcdFunc,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def geometricMeanFunc(maxValue=100, maxNum=4):
|
||||
def geometricMeanFunc(maxValue=100, maxNum=4, format='string'):
|
||||
a = random.randint(1, maxValue)
|
||||
b = random.randint(1, maxValue)
|
||||
c = random.randint(1, maxValue)
|
||||
|
||||
@@ -5,7 +5,8 @@ def geomProgrFunc(number_values=6,
|
||||
min_value=2,
|
||||
max_value=12,
|
||||
n_term=7,
|
||||
sum_term=5):
|
||||
sum_term=5,
|
||||
format='string'):
|
||||
r = random.randint(min_value, max_value)
|
||||
a = random.randint(min_value, max_value)
|
||||
n_term = random.randint(number_values, number_values + 5)
|
||||
@@ -13,14 +14,19 @@ def geomProgrFunc(number_values=6,
|
||||
GP = []
|
||||
for i in range(number_values):
|
||||
GP.append(a * (r**i))
|
||||
value_nth_term = a * (r**(n_term - 1))
|
||||
sum_till_nth_term = a * ((r**sum_term - 1) / (r - 1))
|
||||
|
||||
if format == 'string':
|
||||
problem = "For the given GP " + str(
|
||||
GP) + " ,Find the value of a,common ratio," + str(
|
||||
n_term) + "th term value, sum upto " + str(sum_term) + "th term"
|
||||
value_nth_term = a * (r**(n_term - 1))
|
||||
sum_till_nth_term = a * ((r**sum_term - 1) / (r - 1))
|
||||
solution = "The value of a is {}, common ratio is {} , {}th term is {} , sum upto {}th term is {}".format(
|
||||
a, r, n_term, value_nth_term, sum_term, sum_till_nth_term)
|
||||
return problem, solution
|
||||
else:
|
||||
return GP, n_term, sum_term, a, r, n_term, value_nth_term, sum_term, sum_till_nth_term
|
||||
|
||||
|
||||
|
||||
geometric_progression = Generator(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def harmonicMeanFunc(maxValue=100, maxNum=4):
|
||||
def harmonicMeanFunc(maxValue=100, maxNum=4, format='string'):
|
||||
|
||||
a = random.randint(1, maxValue)
|
||||
b = random.randint(1, maxValue)
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def hcfFunc(maxVal=20):
|
||||
def hcfFunc(maxVal=20, format='string'):
|
||||
a = random.randint(1, maxVal)
|
||||
b = random.randint(1, maxVal)
|
||||
x, y = a, b
|
||||
while (y):
|
||||
x, y = y, x % y
|
||||
|
||||
if format == 'string':
|
||||
problem = f"HCF of {a} and {b} = "
|
||||
solution = str(x)
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, x
|
||||
|
||||
|
||||
hcf = Generator("HCF (Highest Common Factor)", 51, hcfFunc,
|
||||
|
||||
@@ -1,22 +1,28 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def IsLeapYear(minNumber=1900, maxNumber=2099):
|
||||
def IsLeapYear(minNumber=1900, maxNumber=2099, format='string'):
|
||||
year = random.randint(minNumber, maxNumber)
|
||||
problem = "Year " + str(year) + " "
|
||||
solution = ""
|
||||
if (year % 4) == 0:
|
||||
if (year % 100) == 0:
|
||||
if (year % 400) == 0:
|
||||
solution = "is a leap year"
|
||||
ans = True
|
||||
else:
|
||||
solution = "is not a leap year"
|
||||
ans = False
|
||||
else:
|
||||
solution = "is a leap year"
|
||||
ans = True
|
||||
else:
|
||||
solution = "is not a leap year"
|
||||
ans = False
|
||||
|
||||
if format == 'string':
|
||||
if ans:
|
||||
solution = "is a leap year"
|
||||
else:
|
||||
solution = "is not a leap year"
|
||||
return problem, solution
|
||||
else:
|
||||
return year, ans
|
||||
|
||||
|
||||
is_leap_year = Generator("Leap Year or Not", 101,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def lcmFunc(maxVal=20):
|
||||
def lcmFunc(maxVal=20, format='string'):
|
||||
a = random.randint(1, maxVal)
|
||||
b = random.randint(1, maxVal)
|
||||
c = a * b
|
||||
@@ -11,10 +11,12 @@ def lcmFunc(maxVal=20):
|
||||
x, y = y, x % y
|
||||
d = c // x
|
||||
|
||||
if format == 'string':
|
||||
problem = f"LCM of {a} and {b} ="
|
||||
solution = str(d)
|
||||
|
||||
return problem, solution
|
||||
else:
|
||||
return a, b, d
|
||||
|
||||
|
||||
lcm = Generator("LCM (Least Common Multiple)", 9,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user