乘以for循环中的数字

时间:2017-11-13 16:18:17

标签: matlab for-loop sequence

d = 2;
for x = [1:10]
    x
    d = ((2/d)*(sqrt(d^2+4)-2))
    d*(2^(x+1))
end

产生一个倾向于pi BUT的序列,

d = 2;
for x = [1:10]
    x
    d = ((2/d)*(sqrt(d^2+4)-2)) * (2^(x+1))
end

没有。这给出了一个序列(我稍微舍一点):3925,...,4E3

发生了什么事?对我来说,那些线看起来完全一样。

1 个答案:

答案 0 :(得分:0)

这两者之间的区别在于,对于第一个,你乘以d

d*(2^(x+1))

每次进行循环时,由于你的整个等式,d的值都会改变。对于第二个代码,   (2 ^(X + 1)) 你将乘以常数2,而不是每个循环都改变。

因此d*(2^(x+1))取决于d和x,但(2^(x+1))仅取决于x。