等式 returns 具有连续输入的相同值
Equation returns same value with consecutive inputs
我当前的项目需要一个曲线方程,但它不会为不同的输入返回不同的值,而是 returns 多个连续输入的相同值。
代码 (星号强调,实际代码中没有)
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**67**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**68**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**69**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**70**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**71**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**72**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**73**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**74**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**75**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**76**/8.436912)^1.09424));
输出
46.87471111111112
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
34.42476363636364
如您所见,在 68-75 的输入值之间,输出没有变化。
我已经尝试了几个 IDE 以确保它不是本地问题。有人可以告诉我发生了什么事吗?
Link 到 jsfiddle:https://jsfiddle.net/ay4twrm5/
谢谢。
我猜 ^
你的意思是求幂,除了 JavaScript 中的 ^
不是那样使用的(它是 Bitwise XOR 运算符) ,要在 JavaScript 中做指数你需要使用 **
(不是为了强调,在实际代码中):
function f(x) {
return -21.6 + (594.6724 - -21.6)/(1 + (x/8.436912)**1.09424);
}
console.log(f(67));
console.log(f(68));
console.log(f(69));
console.log(f(70));
console.log(f(71));
console.log(f(72));
console.log(f(73));
console.log(f(74));
console.log(f(75));
console.log(f(76));
或者,您可以使用 Math.pow
:
function f(x) {
return -21.6 + (594.6724 - -21.6)/(1 + Math.pow(x/8.436912, 1.09424));
}
console.log(f(67));
console.log(f(68));
console.log(f(69));
console.log(f(70));
console.log(f(71));
console.log(f(72));
console.log(f(73));
console.log(f(74));
console.log(f(75));
console.log(f(76));
我当前的项目需要一个曲线方程,但它不会为不同的输入返回不同的值,而是 returns 多个连续输入的相同值。
代码 (星号强调,实际代码中没有)
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**67**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**68**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**69**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**70**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**71**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**72**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**73**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**74**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**75**/8.436912)^1.09424));
console.log(-21.6 + (594.6724 - -21.6)/(1 + (**76**/8.436912)^1.09424));
输出
46.87471111111112
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
55.434050000000006
34.42476363636364
如您所见,在 68-75 的输入值之间,输出没有变化。 我已经尝试了几个 IDE 以确保它不是本地问题。有人可以告诉我发生了什么事吗?
Link 到 jsfiddle:https://jsfiddle.net/ay4twrm5/
谢谢。
我猜 ^
你的意思是求幂,除了 JavaScript 中的 ^
不是那样使用的(它是 Bitwise XOR 运算符) ,要在 JavaScript 中做指数你需要使用 **
(不是为了强调,在实际代码中):
function f(x) {
return -21.6 + (594.6724 - -21.6)/(1 + (x/8.436912)**1.09424);
}
console.log(f(67));
console.log(f(68));
console.log(f(69));
console.log(f(70));
console.log(f(71));
console.log(f(72));
console.log(f(73));
console.log(f(74));
console.log(f(75));
console.log(f(76));
或者,您可以使用 Math.pow
:
function f(x) {
return -21.6 + (594.6724 - -21.6)/(1 + Math.pow(x/8.436912, 1.09424));
}
console.log(f(67));
console.log(f(68));
console.log(f(69));
console.log(f(70));
console.log(f(71));
console.log(f(72));
console.log(f(73));
console.log(f(74));
console.log(f(75));
console.log(f(76));