# mathgenerator A math problem generator, created for the purpose of giving self-studying students and teaching organizations the means to easily get access to random math problems to suit their needs. To try out generators, go to See [CONTRIBUTING.md](https://github.com/lukew3/mathgenerator/blob/main/CONTRIBUTING.md) for information about how to contribute. ## Table of Contents * [Installation](#installation) * [Basic Usage](#basic-usage) * [More Complicated Usage](#more-complicated-usage) * [Documentation](#documentation) * [List of Generators](#list-of-generators) * [algebra](#algebra) * [basic_math](#basic_math) * [calculus](#calculus) * [computer_science](#computer_science) * [geometry](#geometry) * [misc](#misc) * [statistics](#statistics) ## Installation The project can be install via pip ```bash pip install mathgenerator ``` ## Basic Usage Here is an example of how you would generate an addition problem: ```python from mathgenerator import mathgen #generate an addition problem problem, solution = mathgen.addition() #another way to generate an addition problem using genById() problem, solution = mathgen.genById(0) ``` ### Creating a worksheet If you wish to create a worksheet, you can use the [worksheetgen](https://github.com/lukew3/worksheetgen) package. Install this with `pip install worksheetgen`. Here is an example of how a worksheet would be generated. ``` from mathgenerator import mathgen from worksheetgen.wg import Worksheet worksheet = Worksheet("Worksheet title") worksheet.add_instruction("Instructions") # Writes 10 problems generated with id 1, [0] at the end specifies to take problem, and not solution. for _ in range(10): worksheet.add_problem(mathgen.genById(1)[0]) worksheet.write_pdf() ``` This creates the pdf `ws.pdf` in your current directory ## Documentation * `getGenList()` returns a list of all generators in the repository in the format `[id, title, self, funcname, subjectname]` * `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 return the string "Latex unavailable" * 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) | 6x + 4 = 10 | 6 | basic_algebra | `maxVariable=10` | | 12 | [Logarithm](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/log.py) | log3(729) | 6 | 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) | 3 * [[0, 3], [4, 6]] = | [[0,9],[12,18]] | 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) | (12,12),(18,-17)= | (15.0,-2.5) | midpoint_of_two_points | `maxValue=20` | | 21 | [Factoring Quadratic](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/factoring.py) | x^2-3x-10 | (x+2)(x-5) | 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) | 9x - 5y = -38, -6x - 5y = 67 | x = -7, y = -5 | 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 (-10, -2) and (-9, -8) | sqrt(37) | distance_two_points | `maxValXY=20` `minValXY=-20` | | 26 | [Linear Equations](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/linear_equations.py) | -4x + -8y = 44, 9x + 11y = -15 | x = 13, y = -12 | 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 = -1x - 5 and y = -1/5x + 10 | (-75/4, 55/4) | 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) | [18, -20, 16] X [3, -7, -20] = | [512, 408, -66] | 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 8174 dollars, 10% rate of interest and for a time period of 5 years is = | 4087.0 | 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
-10-74-4
-6210-7
-9-102-6
and
28
0-2
-105
70
|
-88-46
-161-2
-80-42
| 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 17x^2+45x+6=0 | [-0.14, -2.51] | quadratic_equation | `maxVal=100` | | 65 | [Multiplication of 2 complex numbers](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/algebra/multiply_complex_numbers.py) | (6+2j) * (3+15j) = | (-12+96j) | 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, -16, -17] . [11, -10, 10] = | 23 | 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([[32, 31, 47], [23, 71, 96], [61, 44, 54]]) is: | Matrix([[390/25439, -394/25439, 361/25439], [-4614/25439, 1139/25439, 1991/25439], [3319/25439, -483/25439, -1559/25439]]) | 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([[68, 34], [62, 96]]) = | 4420 | 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 9952 dollars, 2% rate of interest and for a time period of 7 year is = | 11431.72 | 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 + 6x + 1 = 0 | simplified solution : ((-0.333, -0.333)), generalized solution : ((-6 + 0)/2*9, (-6 - 0)/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) | 5x^4 + 7x^4 + 5x^1 + 6x^2 + 4x^4 | 5x^1 + 6x^2 + 16x^4 | 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) | (-10x-3)(-4x-7) | 40*x^2+82*x+21 | 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) | 19+16= | 35 | addition | `maxSum=99` `maxAddend=50` | | 1 | [Subtraction](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/subtraction.py) | 90-34= | 56 | subtraction | `maxMinuend=99` `maxDiff=99` | | 2 | [Multiplication](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/multiplication.py) | 8*4= | 32 | multiplication | `maxMulti=12` | | 3 | [Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/division.py) | 450/25= | 18 | division | `maxA=25` `maxB=25` | | 6 | [Square Root](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/square_root.py) | sqrt(1)= | 1 | square_root | `minNo=1` `maxNo=12` | | 8 | [Square](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/square.py) | 14^2= | 196 | square | `maxSquareNum=20` | | 13 | [Complex Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/complex_division.py) | 98/60= | 1.63 | complex_division | `maxRes=99` `maxDivid=99` | | 16 | [Fraction Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/divide_fractions.py) | (5/6)/(7/1) | 5/42 | divide_fractions | `maxVal=10` | | 28 | [Fraction Multiplication](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/fraction_multiplication.py) | (7/2)*(2/1) | 7 | fraction_multiplication | `maxVal=10` | | 31 | [Factorial](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/factorial.py) | 5! = | 120 | 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 3/7 and 3/4? | < | 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 365 up to 2 decimal places? | 7.15 | cube_root | `minNo=1` `maxNo=1000` | | 53 | [Exponentiation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/exponentiation.py) | 12^8 = | 429981696 | 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) | |65--1|= | 66 | 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 91% of 36? | 32.76 | percentage | `maxValue=99` `maxpercentage=99` | | 90 | [isprime](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/is_prime.py) | Is 33 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 17^8^5= | 17^40 | power_of_powers | `maxBase=50` `maxPower=10` | | 114 | [Percentage error](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/basic_math/percentage_error.py) | Find the percentage error when observed value equals 80 and exact value equals 8. | 900.0% | percentage_error | `maxValue=100` `minValue=-100` | ## 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) | 3x^7 + 3x^4 + 2x^7 | 21x^6 + 12x^3 + 14x^6 | 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) | 7x^7 + 2x^4 + 3x^10 + 10x^8 + 10x^6 | (7/7)x^8 + (2/4)x^5 + (3/10)x^11 + (10/8)x^9 + (10/6)x^7 + 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^2)/dx | 4*x + 1/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 1x^2 + 36x + 56 is = | 74.3333 | definite_integral | `max_coeff=100` | | 110 | [Stationary Points](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/calculus/stationary_points.py) | f(x)=5*x^3 + 3*x^2 + x + 8 | | 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) | 11= | 00 | binary_complement_1s | `maxDigits=10` | | 5 | [Modulo Division](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/modulo_division.py) | 6%41= | 6 | 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 29= | 11101 | 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) | 1000001 | 65 | 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 15 numbers is ? | [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] | 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 85th Fibonacci number? | 259695496911123328 | nth_fibonacci_number | `maxN=100` | | 64 | [Binary to Hexidecimal](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/computer_science/binary_to_hex.py) | 1 | 0x1 | 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 1111 = | 1 | 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 899= | 0x383 | 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 1911 in Octal is: | 0o3567 | 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 4 is = | 18743 | 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 6410 is = | 19010 | 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 3 14 = | 18.97 | area_of_triangle | `maxA=20` `maxB=20` | | 19 | [Triangle exists check](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/valid_triangle.py) | Does triangle with sides 22, 40 and 28 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 23 and 64 = | 93 | 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 14 and 2 = | 14.14 | 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 16 sides | 157.5 | 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 = 12m is | 864 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 = 15m, 18m, 14m is | 1464 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 = 43m and radius = 20m is | 7916 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 = 5m is | 125 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 = 10m, 2m, 11m is | 220 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 = 1m and radius = 9m is | 254 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 = 6m and radius = 17m is | 1870 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 = 11m and radius = 12m is | 1658 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 26 , 87, 224 = | 23 | 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(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 12 sides = | 1800 | 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 = 11m is | 1520.5308443374597 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 59 m = | 860289.5434688241 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 [518.23, 555.93, 404.27, 717.2, 447.13, 348.28, 803.64, 318.06, 990.3, 7.58, 578.15, 363.52, 81.91, 914.96, 969.28, 644.62, 381.77, 713.75] and [680.62, 497.49, 673.42, 601.55, 729.72, 341.6, 512.4, 884.63, 528.37, 633.09, 881.61, 791.12, 631.8, 663.39, 725.39, 765.56, 646.59, 135.69] is: | 0.57 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, 72. Find the area of the sector. | Area of sector = 907.29196 | 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 324 in radians is = | 5.65 | 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 0 in degrees is = | 0.0 | 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, 18 and height, 16? | CSA of cylinder = 1809.56 | 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 8 sided polygon with lengths of [67, 48, 51, 66, 111, 99, 6, 13]cm is: | 461 | 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 91 | 571.7698629533423 | circumference | `maxRadius=100` | | 108 | [Arc length of Angle](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/arc_length.py) | Given radius, 18 and angle, 5. Find the arc length of the angle. | Arc length of the angle = 1.57080 | 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` | | 113 | [Volume of frustum](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/geometry/volume_frustum.py) | Volume of frustum with height = 35m and r1 = 11m is and r2 = 11m is | 8173.0 m^3 | volume_frustum | `maxR1=20` `maxR2=20` `maxHeight=50` `unit='m'` | ## 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 3 and 9 = | 9 | lcm | `maxVal=20` | | 10 | [GCD (Greatest Common Denominator)](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/gcd.py) | GCD of 16 and 7 = | 1 | gcd | `maxVal=20` | | 27 | [Prime Factorisation](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/prime_factors.py) | Find prime factors of 106 | [2, 53] | 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 43 and 5 = | [1] | common_factors | `maxVal=100` | | 51 | [HCF (Highest Common Factor)](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/hcf.py) | HCF of 14 and 10 = | 2 | hcf | `maxVal=20` | | 55 | [Comparing surds](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/surds_comparison.py) | Fill in the blanks 39^(1/3) _ 84^(1/7) | > | 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 = 384 and SP = 204 is: | 46.875 | 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 [9, 54, 324, 1944, 11664, 69984] ,Find the value of a,common ratio,11th term value, sum upto 10th term | The value of a is 9, common ratio is 6 , 11th term is 544195584 , sum upto 10th term is 108839115.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 3 numbers 30 , 70 and 71 = | (30*70*71)^(1/3) = 53.02644935921312 | 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 24 , 69 , 1 , 64 = | 4/((1/24) + (1/69) + (1/1) + (1/64)) = 3.732093809423199 | 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[367.08889663205525, 863.0673225177605, 774.103655547893, 189.97419494551738, 185.16756637556276, 49.75772515381782, 630.8697835264877, 512.1399233850082, 484.9808617378449, 52.54068485331298] is: | 1565.2411728116062 | euclidian_norm | `maxEltAmt=20` | | 81 | [Celsius To Fahrenheit](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/celsius_to_fahrenheit.py) | Convert 29 degrees Celsius to degrees Fahrenheit = | 84.2 | 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 55 of the AP series: -59, -140, -221 ... | -4433 | 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: 77, 58, 39 ... | -15345.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: | MMMLXXXIV | 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) | 3.61(2.0theta + i3.0theta) | 0.98 | 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={2, 10, 3, 4} ,b={2, 4, 5, 6, 7}.Find the Union,intersection,a-b,b-a and symmetric difference | Union is {2, 3, 4, 5, 6, 7, 10},Intersection is {2, 4}, a-b is {10, 3},b-a is {5, 6, 7}, Symmetric difference is {3, 5, 6, 7, 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 35918 from base 10 to base 2. | 1000110001001110 | 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 43^4 and 43^7 = 43^(4-7) = 43^-3 | 1.2577508898587546e-05 | 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 2^9 and 8^9 = (2/8)^9 = 0.25^9 | 3.814697265625e-06 | 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 1967 | 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 233 minutes to Hours & Minutes | 3 hours and 53 minutes | minutes_to_hours | `maxMinutes=999` | | 106 | [signum function](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/misc/signum_function.py) | signum of -103 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, 31.73% 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 5 rejected pistons? | 90.06 | 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 16 objects picked 9 at a time | 11440 | combinations | `maxlength=20` | | 42 | [Permutations](https://github.com/lukew3/mathgenerator/blob/main/mathgenerator/funcs/statistics/permutation.py) | Number of Permutations from 11 objects picked 6 at a time = | 332640 | 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 15 = | 10/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 [202, 216, 293, 297, 257, 246, 278, 215, 255, 232, 218, 295, 235, 256, 252, 294, 270, 284, 231, 239, 227, 248, 290, 230, 274, 243, 238] with 80% confidence is | (259.18488262567246, 245.62993218914235) | 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[45, 8, 16, 42, 38, 47, 31, 23, 14, 16, 14, 37, 23, 5, 29] | The Mean is 25.866666666666667 , Standard Deviation is 175.18222222222224, Variance is 13.23564211597693 | 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 [8, 12, 23, 27, 31, 66, 70, 84, 91, 97]. find the arithmatic mean and mdian of the series | Arithmetic mean of the series is 50.9 and Arithmetic median of this series is 48.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.30% of population have. Test sensitivity (true positive) is equal to SN= 98.51% whereas test specificity (true negative) SP= 93.36%. What is the probability that this guy really has that disease? | 4.27% | conditional_probability | `` |