私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
再帰的アルゴリズムコンピュータ科学と数学で広く使用されているプログラミング手法であり、関数を使用できるようにします。直接または間接的な土地自分自身を呼び出すこの問題を解決するために。再帰的基本的な考え方これは、複雑な問題をより小さな同様のサブ問題に分解し、これらのサブ問題が直接解決できるほど単純になるまで分解することです。
アドバンテージ: コードは簡潔で、ロジックは明確で、理解しやすく、書きやすいです。
欠点がある : 関数呼び出しのオーバーヘッドが増えるため、反復ソリューションよりも効率が劣る可能性があります。さらに、再帰が深すぎるとスタック オーバーフロー エラーが発生する可能性があります。
再帰は、次のような多くのアルゴリズムに応用できます。ツリートラバース、グラフ検索、動的プログラミングなど 。再帰を適切に使用すると、複雑な問題の解決を簡素化できます。
def factorial(n):#自定义求n的阶乘函数
if n==1:#判断n=1
return 1#返回1结束
else:#递归条件 即n!=1
return n*factorial(n-1)#递归求阶乘
number = int(input("请输入一个正整数:"))#输入n的值
result = factorial(number)#调用阶乘函数
print("%d 的阶乘是 %d" %(number,result))#输出结果
factorial
関数はパラメータを受け取ります n
、階乗を計算する数値を表します。階乗は次のように表されます。n!
、すべて以下であると定義されます。 n
正の整数の積。例えば、5! = 5 × 4 × 3 × 2 × 1 = 120
。
n
1 に等しい場合、関数は 1 を直接返します。 1 の階乗は 1 として定義されるため、これが再帰の終了条件になります。n
が 1 に等しくない場合、関数はn
そしてfactorial(n-1)
結果は倍増します。factorial(n-1)
それは本当ですfactorial
関数電話そのものですがパラメータが1減ります。この通話は次まで継続されます n
1に達します。再帰の重要な点は、各再帰呼び出しが基本ケースに近づき、最終的には基本ケースに到達して値を返し始めることです。この例では、再帰呼び出しごとに、n が 1 になるまで n を 1 ずつ減らします。
再帰では、各関数呼び出しがスタック領域の一部を占有するため、大きな値を処理するときにパフォーマンスの問題やスタック オーバーフロー エラーが発生する可能性があります。階乗などの単純な数学演算の場合、多くの場合、より効率的でメモリに優しい反復メソッドが存在します。ただし、再帰は特定の問題を解決するための洗練されたわかりやすい方法を提供します。