繁体   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