Generate a random math Equation using Random numbers and operators in Javascript

david warne

I want to create a program that should printout simplest form of mathematical expression like ( 21 + 13 ) * 56 using Random no. 1 to 100, The program must take a level parameter, the level determines the length of the generated equation, for example :

The game must produce equations with addition + and multiplication * operators like ( 21 + 13 ) * 56.(using Brackets)

----level 2

75 - 54 = 21
62 + 15 = 77
88 / 22 = 4
93 + 22 = 115
90 * 11 = 990

--level 3

( 21 + 13 ) * 56 = 1904
82 - 19 + 16 = 79
51 * ( 68 - 2 ) = 3366

Input would be form : for example

level 3

Output should be:

( 21 + 13 ) * 56 // Simple expression using Random no.s

So far i can create equations without brackets but i need help that would give me reliable solution

This is what i have done so far:

var input = 'level 3'
input = input.split(' ')
var n = Number(input[1])
var x = ['/','*','-','+']
function randomNumberRange(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
var a = ''    
for(var i=0;i<n;i++){
    if(i !== n-1){
        var n1 = randomNumberRange(1, 100)
        var m = randomNumberRange(0, x.length);
        var str = x[m];
        a += n1
        a +=' '+str+' '
    }else{
        a += n1
    }  
}
Cedric Reichenbach

I picked up the idea of @plamut to create a binary tree, where each node represents an operator with a left and a right side.

For instance, the equation 2 * (3 + 4) can be seen as

  *
 / \
2   +
   / \
  3   4

You can represent this quite straight forward using objects as follows:

var TreeNode = function(left, right, operator) {
    this.left = left;
    this.right = right;
    this.operator = operator;

    this.toString = function() {
        return '(' + left + ' ' + operator + ' ' + right + ')';
    }
}

Then you can create a recursive function to build such trees, where one sub-tree would have half of the desired total number of nodes (= length of equation):

function buildTree(numNodes) {
    if (numNodes === 1)
        return randomNumberRange(1, 100);

    var numLeft = Math.floor(numNodes / 2);
    var leftSubTree = buildTree(numLeft);
    var numRight = Math.ceil(numNodes / 2);
    var rightSubTree = buildTree(numRight);

    var m = randomNumberRange(0, x.length);
    var str = x[m];
    return new TreeNode(leftSubTree, rightSubTree, str);
}

Here's a JSFiddle with a working example.

Maybe you still want to care about special cases, like avoiding brackets at top level, but that shouldn't be too hard from here.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Generate random numbers javascript

From Dev

Creating an object of Random class or using Math.random() in order to generate random numbers

From Dev

How to generate random numbers the give fixed results using Math.random

From Java

Generate random number between two numbers in JavaScript

From Dev

JavaScript generate random numbers without repeating

From Dev

JavaScript generate random numbers without repeating

From Dev

How to generate a random number with specific numbers on javascript

From Dev

Javascript Math.random() not *that* random…?

From Dev

Generate unique random numbers using SQL

From Dev

Generate random numbers on the fly using Intel MKL

From Dev

Using prime numbers to generate a random password

From Dev

Generate N random numbers using randomR

From Java

Generate random numbers using C++11 random library

From Dev

Generate random numbers correctly

From Dev

Generate random numbers Jquery

From Dev

Generate random numbers

From Dev

Generate random numbers with Array

From Dev

Generate random numbers with exceptions

From Dev

Generate a list of random numbers

From Dev

PHP math with random numbers with random mathematical symbols

From Dev

How does Math.random() generate random numbers beyond it's "native" range?

From Dev

Math & JavaScript | Random chances

From Dev

How to get unique numbers from Math.random in javascript?

From Dev

How to get unique numbers from Math.random in javascript?

From Dev

generate random number using specific digits in javascript

From Dev

Generate random string using javascript function

From Dev

Generate unique random alphanumeric using javascript

From Dev

Generate random string using javascript function

From Dev

Generate a random site colour scheme using JavaScript

Related Related

  1. 1

    Generate random numbers javascript

  2. 2

    Creating an object of Random class or using Math.random() in order to generate random numbers

  3. 3

    How to generate random numbers the give fixed results using Math.random

  4. 4

    Generate random number between two numbers in JavaScript

  5. 5

    JavaScript generate random numbers without repeating

  6. 6

    JavaScript generate random numbers without repeating

  7. 7

    How to generate a random number with specific numbers on javascript

  8. 8

    Javascript Math.random() not *that* random…?

  9. 9

    Generate unique random numbers using SQL

  10. 10

    Generate random numbers on the fly using Intel MKL

  11. 11

    Using prime numbers to generate a random password

  12. 12

    Generate N random numbers using randomR

  13. 13

    Generate random numbers using C++11 random library

  14. 14

    Generate random numbers correctly

  15. 15

    Generate random numbers Jquery

  16. 16

    Generate random numbers

  17. 17

    Generate random numbers with Array

  18. 18

    Generate random numbers with exceptions

  19. 19

    Generate a list of random numbers

  20. 20

    PHP math with random numbers with random mathematical symbols

  21. 21

    How does Math.random() generate random numbers beyond it's "native" range?

  22. 22

    Math & JavaScript | Random chances

  23. 23

    How to get unique numbers from Math.random in javascript?

  24. 24

    How to get unique numbers from Math.random in javascript?

  25. 25

    generate random number using specific digits in javascript

  26. 26

    Generate random string using javascript function

  27. 27

    Generate unique random alphanumeric using javascript

  28. 28

    Generate random string using javascript function

  29. 29

    Generate a random site colour scheme using JavaScript

HotTag

Archive