このホワイトペーパーではハノイと再帰的なアルゴリズムが実装さフィボナッチ数列のPythonの例を説明します。以下のように、ご参考のためにあなたに共有します:
ここでは、Pythonで再帰を使用することを学ぶ、2つの例を渡します。
- フィボナッチ数列を識別、添字nが数(0からインデックス)であります
フォームフィボナッチ数列これです:0,1,1,2,3,5,8,13 ......
次のように①ループしながら、python2コードがあります:
def fib(n):
a,b=0,1
count=0
while count<n:
a,b=b,a+b
count=count+1
print a
結果は以下の通りであります:
>>> fib(0)
0
>>> fib(1)
1
>>> fib(2)
1
>>> fib(3)
2
>>> fib(4)
3
>>> fib(5)
5
次のように②再帰(境界条件が再帰的でなければならない)、python2コードがあります:
def fib(n):
if n==0 or n==1:#递归的边界条件
return n
else:
return fib(n-1)+fib(n-2)
結果は以下の通りであります:
>>> fib(0)
0
>>> fib(1)
1
>>> fib(2)
1
>>> fib(3)
2
>>> fib(4)
3
>>> fib(5)
5
:再帰的アルゴリズムは、一例として、我々は、F(4)に持って、再帰的な実装プロセスを見て計算思考の最高のパフォーマンスの一つである
プログラムは、再帰を使用するのは簡単ですが、同じプログラムが、再帰的なサイクルの効率よりも低く、システムリソース消費比サイクル。再帰呼び出しが入力されているので、層ごとに、層ごとのリターンの終了後に、再帰的な効率は高くありません。なぜあなたは再帰を使用する必要がありますか?いくつかの問題がありますので、我々は非常に明確なサイクルプログラムを見つけることができませんが、簡単に明白な再帰的なプログラムを見つけること。例えば、ハノイの問題の有名なタワー。
- ハノイの塔
図は、ハノイの塔ゲームの簡易版であり、唯一の4つのプレート:
ハノイゲームのタワーとして
、以下のようにpython2コードです。
def hanoi(a,b,c,n):
if n==1:#递归结束条件
print a,'->',c
else:
hanoi(a,c,b,n-1)
print a,'->',c
hanoi(b,a,c,n-1)
結果:
>>> hanoi('A','B','C',1)
A -> C
>>> hanoi('A','B','C',2)
A -> B
A -> C
B -> C
>>> hanoi('A','B','C',3)
A -> C
A -> B
C -> B
A -> C
B -> A
B -> C
A -> C
最後に、私は[良い評判パイソンの収集をお勧めします入力する]をクリック ]、スキルを習得古いタイマーがたくさんある、経験、面接スキル、職場体験や他のシェアを学んで、より多くの我々は慎重に、実際のプロジェクトデータ上のゼロベースの入門情報を準備しました方法、毎日、プログラマは学習と細部に注意を払う必要があるのいくつかを共有するために、タイミングPythonの技術を説明します