ランダム化と再帰的アルゴリズムの違い

Anonim

ランダム化と再帰的アルゴリズムの実行中のランダムな選択ランダム化されたアルゴリズムは、アルゴリズムの実行中にランダムな選択を行うことによって、このランダム性により、固定入力の場合でもアルゴリズムの動作が変わる可能性があります。多くの問題では、ランダム化されたアルゴリズムが最も簡単で効率的なソリューションを提供します。再帰アルゴリズムは、同じ問題のより小さなサブ問題に対する解法を見つけることによって、問題の解を見つけることができるという考えに基づいている。再帰は、コンピュータサイエンスの問題に対する解決策を見つけるために広く使われており、多くの高水準プログラミング言語が再帰をサポートしています。

ランダム化アルゴリズムとは何ですか?ランダム化されたアルゴリズムは、アルゴリズムの実行を導くランダムな選択を行うことによってランダム性の感覚を組み込む。これは、通常、追加入力として擬似乱数ジェネレータによって生成された乱数のセットを取ることによって行われます。このため、固定入力の場合でもアルゴリズムの動作が変わることがあります。クイックソートは、ランダム性の概念を使用し、入力プロパティに関係なく実行時間がO(n log n)である広く知られているアルゴリズムです。さらに、計算幾何学の凸包のような構造を構築するために、ランダム化増分構築法が用いられている。この方法では、入力点はランダムに置換され、次に構造に1つずつ挿入されます。ランダム化されたアルゴリズムを実装することは、同じ問題に対して決定論的アルゴリズムを実装することよりも比較的簡単です。ランダム化アルゴリズムを設計する上での最大の課題は、時間と空間の複雑さの漸近解析を行うことにあります。

再帰アルゴリズムとは何ですか?再帰アルゴリズムは、同じ問題のより小さなサブ問題に対する解法を見つけることによって、問題の解を見つけることができるという考えに基づいている。再帰アルゴリズムでは、関数はそれ自身の前のバージョンの観点から定義されます。この自己参照には、自己を永遠に参照しないようにするための終了条件が必要であることに注意することが重要です。終了条件は、自身を参照する前にチェックされます。再帰的アルゴリズムの最初のステップは、問題の再帰的定義の基本節に関連しています。最初のステップに続くステップは、問題の帰納的節に関連しています。再帰アルゴリズムは、多くの状況でより単純な解を提供し、同じ問題の反復アルゴリズムよりも自然な考え方に近いものです。しかし、一般的に、再帰アルゴリズムはより多くのメモリを必要とし、計算コストがかかる。

ランダム化アルゴリズムと再帰アルゴリズムの違いは何ですか?ランダムアルゴリズムは、アルゴリズムの実行に影響を及ぼす可能性のあるランダムな選択を行うことによってランダム性の感覚を使用するアルゴリズムであり、再帰アルゴリズムは、問題の解を解を見つけることによって見つけることができるという考え方に基づくアルゴリズムである。同じ問題のより小さなサブ問題。ランダムアルゴリズムのランダム性により、アルゴリズムの動作は、同じ入力であっても(アルゴリズムの異なる実行において)変化する可能性がある。しかし、これは再帰アルゴリズムでは不可能であり、再帰アルゴリズムの動作は固定入力に対しても同じです。