0

我有以下代码:

int main ( int argc, char **argv ){
double lambda = 4;
double x = .2;

for ( int i=1; i<=30; i++ )
  {
    printf( "%.5f \n", x );
    x = lambda * x * (1-x);
  }           
}

输出以下内容:

0.20000 0.64000 0.92160 0.28901 0.82194 0.58542 0.97081 0.11334 0.40197 0.96156 0.14784 0.50392 0.99994 0.00025 0.00098 0.00394 0.01568 0.06174 0.23173 0.71212 0.82001 0.59036 0.96734 0.12638 0.44165 0.98638 0.05374 0.20342 0.64815 0.91221

我的问题是:对于每次迭代操作“x”的方式,最恰当的算法/数学描述是什么?

4

3 回答 3

2

x在以下语句中使用x = lambda * x * (1-x);。这样x,每次迭代的值都会发生变化。

于 2016-03-14T04:49:08.483 回答
2

对于循环的每次迭代,x根据涉及 的旧值的某些计算,为变量分配一个新值x。该变量i仅用于限制此计算重复的次数。

同样,您可以以更简单的方式更改x(不使用)的值:i

x = x + 1;

使用它而不是x = lambda * x * (1-x);线并观察值如何增加。

于 2016-03-14T04:47:14.317 回答
1

for 循环中的“i”称为迭代变量,这意味着它将用作跟踪编号的计数器。循环的迭代次数。

而“x”是您要在循环中使用的变量。

您可以尝试在循环中同时打印 i 和 x 的值,以了解迭代的概念。

于 2016-03-14T05:12:16.923 回答