2012-01-11 11 views
1

これはよくある質問かもしれないので謝罪しますが、私は他のトピックでは見つけられない非常に具体的な答えを探しています。基本的には、数字を追加する流れについてはかなり混乱しています。数字を異なる方法で計算する2つの類似したコードがあります。これについて簡単な説明がありますか?差がスワップWHEN値はフィボナッチと非フィボナッチコーディング

a, b = b, a+b

をbに設定し、+ Bに設定されますが、それはありませんので、スワップが同時に比較的行われているものである

>>> a = 0 
>>> b = 1 
>>> while b <1000: 
    print b 
     a, b = b, a+b 


1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987 

>>> a =0 
>>> b=1 
>>> while b<1000: 
     print b 
     a = b 
     b = a+b 


1,2,4,8,16,32,64,128,256,512 
+0

私はこれを「python」とタグ付けしました。使用している言語やツールを指定することを忘れないでください。他の人があなたの投稿を簡単に見つけることができるので、将来、同じ問題に対する回答を探している人を参照することができます。 – jlafay

答えて

1

すなわち、bの変化は、aが最初に変更されたことを尊重しない。第2の例で

a = b 

b = a+b 

値が変更され、2番目のステートメントは、スワップに優先順位差がある第一

+0

ありがとうございます。 – user1142285

1

の変化を尊重します。最初の例で あなたが代入される: A = 1 B = 1

あなたが割り当てされた第2の例では: = 1 B = 2

操作の同じ順序を達成するために最初の例では、一時変数を使用する必要があります。

+0

実際、あなたは正しいです。私はスワッピングが組み込まれていることを知らなかった。私はa b = 1,2をタイプすると、最初にaを最初に割り当て、bを2番目に割り当てると思った。 – user1142285

0

割り当ては、最初のコード例では同時に行われ、2番目の段階では連続して行われ、異なる回答につながります。

関連する問題