[英]Simple equation on Javascript not working and I can't see the problem
我試圖在 javascript 中求解一個簡單的方程“2^x=y”,但我看不出它有什么問題,瀏覽器似乎進入了一個無限循環......這是代碼:
編輯:我將代碼更改為整個腳本,所以你們可以看到,執行等式的 function 是最后一個。 同樣顯然我必須多說一些才能編輯帖子對不起:)
var x = 0;
var y = 0;
function SolveEquation(input){
while(x < input){
x = Math.pow(2, y);
y = y+1;
}
if(x >= input){
return x;
}
}
這段代碼似乎有幾件事是錯誤的。
永遠不要使用全局變量。 將 x 和 y 傳遞給您的 function
這應該是 function 但它可能返回未定義,這是 function 的錯誤編碼。 (您唯一的 return 語句包含在 if 語句中)
根據 x 和“輸入”的值,您很可能永遠不會退出 while 語句。 再次糟糕的編碼。 也許檢查這些值是否有效,或者重新編寫 function 所以無論傳入什么值它總是有效的。
我覺得您的問題與其說是 Javascript 不如說是您的代數。
假設input
是y
並且您正在求解 x,它是:
2^x = y
log2(2^x) = log2(y)
x * log2(2) = log2(y)
x * 1 = log2(y)
x = log2(y)
function SolveEquation(input) {
return Math.log2(input);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.