Skip to main content
added 2 characters in body
Source Link
lennon310
  • 3.2k
  • 7
  • 19
  • 35

Here is a simple recursive method in javascript:

var genExpression = function(h){
    var n = max(1,h + random(-2,0));
    var s = "" + floor(random(1,11));
    var a = ["+","-","*","/","^"];
    var u = ["√","sin"];
    for(var i = 0; i < n; i ++){
        s += (" " + a[floor(random(0,a.length))]);
        if(random() < 0.25 && h > 4){
            s += (" " + u[floor(random(0,u.length))]);
            s += ("(" + genExpression(h - 4) + ")");
            s += (" " + a[floor(random(0,a.length))]);
        }
        if(random() < 0.5 && h > 3){
            s += (" (" + genExpression(h - 2) + ")");
        }
        else{
            s += (" " + floor(random(1,11)));
        }
    }
    return s;
};

So genExpression(4)genExpression(4) might return something like "2 ^ (8 / 10 - 1 - 1) / 2 + 5 + (3 / 9 / 7) + √(2 ^ 3) ^ 5"2 ^ (8 / 10 - 1 - 1) / 2 + 5 + (3 / 9 / 7) + √(2 ^ 3) ^ 5.

Here is a simple recursive method in javascript:

var genExpression = function(h){
    var n = max(1,h + random(-2,0));
    var s = "" + floor(random(1,11));
    var a = ["+","-","*","/","^"];
    var u = ["√","sin"];
    for(var i = 0; i < n; i ++){
        s += (" " + a[floor(random(0,a.length))]);
        if(random() < 0.25 && h > 4){
            s += (" " + u[floor(random(0,u.length))]);
            s += ("(" + genExpression(h - 4) + ")");
            s += (" " + a[floor(random(0,a.length))]);
        }
        if(random() < 0.5 && h > 3){
            s += (" (" + genExpression(h - 2) + ")");
        }
        else{
            s += (" " + floor(random(1,11)));
        }
    }
    return s;
};

So genExpression(4) might return something like "2 ^ (8 / 10 - 1 - 1) / 2 + 5 + (3 / 9 / 7) + √(2 ^ 3) ^ 5".

Here is a simple recursive method in javascript:

var genExpression = function(h){
    var n = max(1,h + random(-2,0));
    var s = "" + floor(random(1,11));
    var a = ["+","-","*","/","^"];
    var u = ["√","sin"];
    for(var i = 0; i < n; i ++){
        s += (" " + a[floor(random(0,a.length))]);
        if(random() < 0.25 && h > 4){
            s += (" " + u[floor(random(0,u.length))]);
            s += ("(" + genExpression(h - 4) + ")");
            s += (" " + a[floor(random(0,a.length))]);
        }
        if(random() < 0.5 && h > 3){
            s += (" (" + genExpression(h - 2) + ")");
        }
        else{
            s += (" " + floor(random(1,11)));
        }
    }
    return s;
};

So genExpression(4) might return something like 2 ^ (8 / 10 - 1 - 1) / 2 + 5 + (3 / 9 / 7) + √(2 ^ 3) ^ 5.

added 267 characters in body
Source Link

Here is a simple recursive method in javascript:

var genExpression = function(h){
    var n = max(1,h + random(-2,0));
    var s = "" + floor(random(01,11));
    var a = ["+","-","*","/"];","^"];
    var u = ["√","sin"];
    for(var i = 0; i < n; i ++){
        s += (" " + a[floor(random(0,a.length))]);
        if(random() < 0.25 && h > 4){
            s += (" " + u[floor(random(0,u.length))]);
            s += ("(" + genExpression(h - 4) + ")");
            s += (" " + a[floor(random(0,a.length))]);
        }
        if(random() < 0.5 && h > 3){
            s += (" (" + genExpression(h - 12) + ")");
        }
        else{
            s += (" " + floor(random(01,11)));
        }
    }
    return s;
};

So genExpression(4) might return something like "3 *"2 ^ (8 + 2 + 0/ 10 - 1 - 1) / 2 + 5 + (43 - 10/ 9 / 7) + 0√(2 ^ 3) * 4 - 7"^ 5".

Here is a simple recursive method in javascript:

var genExpression = function(h){
    var n = max(1,h + random(-2,0));
    var s = "" + floor(random(0,11));
    var a = ["+","-","*","/"];
    for(var i = 0; i < n; i ++){
        s += (" " + a[floor(random(0,a.length))]);
        if(random() < 0.5 && h > 3){
            s += (" (" + genExpression(h - 1) + ")");
        }
        else{
            s += (" " + floor(random(0,11)));
        }
    }
    return s;
};

So genExpression(4) might return something like "3 * (8 + 2 + 0) / (4 - 10 + 0) * 4 - 7".

Here is a simple recursive method in javascript:

var genExpression = function(h){
    var n = max(1,h + random(-2,0));
    var s = "" + floor(random(1,11));
    var a = ["+","-","*","/","^"];
    var u = ["√","sin"];
    for(var i = 0; i < n; i ++){
        s += (" " + a[floor(random(0,a.length))]);
        if(random() < 0.25 && h > 4){
            s += (" " + u[floor(random(0,u.length))]);
            s += ("(" + genExpression(h - 4) + ")");
            s += (" " + a[floor(random(0,a.length))]);
        }
        if(random() < 0.5 && h > 3){
            s += (" (" + genExpression(h - 2) + ")");
        }
        else{
            s += (" " + floor(random(1,11)));
        }
    }
    return s;
};

So genExpression(4) might return something like "2 ^ (8 / 10 - 1 - 1) / 2 + 5 + (3 / 9 / 7) + √(2 ^ 3) ^ 5".

Source Link

Here is a simple recursive method in javascript:

var genExpression = function(h){
    var n = max(1,h + random(-2,0));
    var s = "" + floor(random(0,11));
    var a = ["+","-","*","/"];
    for(var i = 0; i < n; i ++){
        s += (" " + a[floor(random(0,a.length))]);
        if(random() < 0.5 && h > 3){
            s += (" (" + genExpression(h - 1) + ")");
        }
        else{
            s += (" " + floor(random(0,11)));
        }
    }
    return s;
};

So genExpression(4) might return something like "3 * (8 + 2 + 0) / (4 - 10 + 0) * 4 - 7".