簡體   English   中英

Javascript 上的簡單方程不起作用,我看不到問題

[英]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;
    }
}

這段代碼似乎有幾件事是錯誤的。

  1. 永遠不要使用全局變量。 將 x 和 y 傳遞給您的 function

  2. 這應該是 function 但它可能返回未定義,這是 function 的錯誤編碼。 (您唯一的 return 語句包含在 if 語句中)

  3. 根據 x 和“輸入”的值,您很可能永遠不會退出 while 語句。 再次糟糕的編碼。 也許檢查這些值是否有效,或者重新編寫 function 所以無論傳入什么值它總是有效的。

我覺得您的問題與其說是 Javascript 不如說是您的代數。

假設inputy並且您正在求解 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM