我想創建一個程序,應打印輸出數學表達式的最簡單的形式就像使用隨機無(21 + 13)* 56。 1至100,該程序必須採取一個水平參數,所述水平確定長度所產生的方程的,例如:生成使用隨機數和運算符的隨機數學方程式在Javascript
遊戲必須產生具有加法+和乘法方程*運營商如(21 + 13)* 56(使用支架)
----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
輸入將是形式:例如
level 3
輸出應該是:
(21 + 13) * 56 // Simple expression using Random no.s
到目前爲止,我可以創建不帶括號的方程,但我需要幫助,會給我可靠的解決方案
這是我迄今所做的:
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
}
}
不是一個完整的答案,但只是一個想法,你可以做到這一點:想想你會如何表示一個包含括號的方程 - 樹會成爲我的第一個選擇。然後計算方程只是遞歸評估樹根和它的子樹的問題。 「Level」也很容易計算,其他操作也可能相同(對不起,如果我不能提供任何具體的代碼示例,但我目前時間不足 - 我可能會在未來幾天內做到這一點,但我不能答應任何:))。 – plamut