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。この変数iは、この計算が繰り返される回数を制限するためにのみ使用されます。

同様に、x( を使用せずにi) の値をより簡単な方法で変更できます。

x = x + 1;

線の代わりにそれを使用してx = lambda * x * (1-x);、値がどのように増加するかを観察します。

于 2016-03-14T04:47:14.317 に答える
2

x次のステートメントで使用していますx = lambda * x * (1-x);。このようxにして、反復ごとに値が変化します。

于 2016-03-14T04:49:08.483 に答える
1

for ループの "i" は反復変数と呼ばれ、番号を追跡するためのカウンターとして使用されます。ループの反復回数。

一方、「x」は、ループで再生する変数です。

反復の概念を理解するために、ループ内の i と x の両方の値を出力してみることができます。

于 2016-03-14T05:12:16.923 に答える