我有以下代码:
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'的方式,最简单的算法/数学描述是什么?
答案 0 :(得分:2)
对于循环的每次迭代,基于涉及x
的旧值的某些计算,为变量x
分配新值。变量i
仅用于限制此计算重复的次数。
同样,您可以更简单的方式更改x
的值(不使用i
):
x = x + 1;
使用它代替x = lambda * x * (1-x);
行并观察值的增加情况。
答案 1 :(得分:2)
您在以下语句x
中使用x = lambda * x * (1-x);
。这种方式x
值会在每次迭代时发生变化。
答案 2 :(得分:1)
for循环中的“i”称为迭代变量,这意味着它将用作跟踪no的跟踪计数器。循环的迭代。
然而,“x”是您想要在循环中使用的变量。
您可以尝试在循环中打印i和x的值,以了解迭代的概念。