[英]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.