我正在尝试计算一个数学问题。它需要在循环变量中使用变量。
这是我的JavaScript代码:
var a = m+1;
var b = n+1;
var c = o+1;
var d = p+1;
var e = q+1;
var f = r+1;
var g = s+1;
var h = t+1;
var i = u+1;
var j = v+1;
var l = w+1;
var m = (1+b)/2;
var n = (a+c)/2;
var o = (b+d)/2;
var p = (c+e)/2;
var q = (d+f)/2;
var r = (e+g)/2;
var s = (f+h)/2;
var t = (g+i)/2;
var u = (h+j)/2;
var v = (i+l)/2;
var w = (j+12)/2;
function CalculateA() {
alert(a);
}
HTML只是一个调用CalculateA()函数的按钮。
结果未定义。有没有办法正确计算这个或用javascript或编码不可能。
修改的 我现在认为这不是很好。 我还通过循环计算运行excel并找到答案。 无论如何,谢谢你的帮助。 https://drive.google.com/open?id=0B9I2lCue4HpLZEh3X0NGTUE4YXM Excel Calculation ^
答案 0 :(得分:3)
您可以将所有变量的起始值设为零以阻止NaN
,然后再次调用操作,直到a
收敛到12.916666666666651
。
function calc() {
a = m + 1;
b = n + 1;
c = o + 1;
d = p + 1;
e = q + 1;
f = r + 1;
g = s + 1;
h = t + 1;
i = u + 1;
j = v + 1;
l = w + 1;
m = (1 + b) / 2;
n = (a + c) / 2;
o = (b + d) / 2;
p = (c + e) / 2;
q = (d + f) / 2;
r = (e + g) / 2;
s = (f + h) / 2;
t = (g + i) / 2;
u = (h + j) / 2;
v = (i + l) / 2;
w = (j + 12) / 2;
console.log(a);
}
var a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0,
ii, letter;
for (ii = 0; ii < 1000; ii++) {
calc();
}
for (ii = 1; ii <= 23; ii++) {
letter = (ii + 9).toString(36);
letter === 'k' || console.log(letter, window[letter]); // k is missing ...
}
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:0)
编码没有什么是不可能的。它返回undefined因为'a'被声明在顶部,其中m未定义,它是“NaN”错误 - 不是数字。
答案 2 :(得分:-1)
变量最终依赖于彼此,这意味着您的结果将始终为NaN。
Javascript尝试为您提供公式的精确结果,但不能。这个数学问题需要的是将每个术语中的变量相互替换,以获得只有1个变量的结果 - 我认为你没有办法在Javascript中以比做更少的努力来做到这一点手动。