ホームページ >バックエンド開発 >Python チュートリアル >N次ステップの問題を解くためのPythonの方法
この記事では、主に N ステップ歩行の問題を解決するための Python の方法を紹介し、ステップ上を歩く問題について簡単に説明し、次の形式でステップ上を歩く問題を解決するための再帰的および再帰アルゴリズムを使用して Python の関連操作スキルを分析します。必要な友達は以下を参照してください
この記事の例では、N 次ステップの問題を解決する Python の方法について説明します。参考のためにみんなに共有してください。詳細は次のとおりです。
質問: 建物には N 段ありますが、毎回 1 段、2 段、または 3 段ジャンプできます。
Afanty の分析:
この種のルールを見つける問題に遭遇したら、とにかく押し続けてください。レベル 1 には何手がありますか?レベル2には何手ありますか?レベル3には何手ありますか?レベル4には何手ありますか?レベル5には何手ありますか?
そうだ、ルールは決まったんだ!
エラーが発生しやすいポイント: 初めて第 1 レベルを歩き、2 回目に第 2 レベルを歩くことは、初めて第 2 レベルを歩き、2 回目に第 1 レベルを歩くこととは異なるため、これは組み合わせの問題ではありません
以下は Python コードの再帰実装です:
def allMethods(stairs): ''''' :param stairs:the numbers of stair :return: ''' if isinstance(stairs,int) and stairs > 0: basic_num = {1:1,2:2,3:4} if stairs in basic_num.keys(): return basic_num[stairs] else: return allMethods(stairs-1) + allMethods(stairs-2) + allMethods(stairs-3) else: print 'the num of stair is wrong' return False
もちろん、非再帰メソッドを使用して実装することもできます。 以下は再帰メソッドに基づくコードです:
def allMethod(stairs): '''''递推实现 :param stairs: the amount of stair :return: ''' if isinstance(stairs,int) and stairs > 0: h1,h2,h3,n = 1,2,4,4 basic_num = {1:1,2:2,3:4} if stairs in basic_num.keys(): return basic_num[stairs] else: while n <= stairs: temp = h1 h1 = h2 h2 = h3 h3 = temp + h1 + h2 return h3 else: print 'the num of stair is wrong' return False
さて、上記は再帰の使用と再帰メソッドの実装プロセスです。
関連する推奨事項:
モンテカルロ法で定積分を計算するためのPythonプログラミングの詳細な説明
PythonのサブプロセスはバッチでLinuxコマンドを実行します
以上がN次ステップの問題を解くためのPythonの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。