ホームページ >バックエンド開発 >PHPチュートリアル >データ構造とアルゴリズム C++ および PHP で実装された再帰アルゴリズム
データ構造はアルゴリズム実装の基礎です。アルゴリズムは常に何らかのデータ構造に依存して実装されます。アルゴリズムを開発する場合、多くの場合、そのアルゴリズムに適したデータ構造が構築されます。データ構造がアルゴリズムから分離されている場合、データ構造には価値がありません。
アルゴリズムの役割---- あらゆる実際的な問題を解決するには、必然的にアルゴリズムの問題が伴い、最適な (またはより良い) 解決策が得られます。
再帰的アルゴリズム: 再帰的アルゴリズムは単純なアルゴリズムです。つまり、特定の関係を使用して、結果が得られるまで既知の条件を通じて中間推論を引き出すアルゴリズムです。逐次演繹法: 既知の条件から始めて、徐々に解決すべき問題を演繹します。
後方演繹法: 既知の問題の結果から開始し、反復式を使用して問題の開始条件を徐々に推定します。これは、前方演繹法の逆のプロセスです。
Push 例:
ウサギの繁殖プロセス
C++ コード:
#include<iostream>int main(){ using namespace std; const int NUM = 13; int count = 0; int rabbit[NUM] = {1,1}; for (int i=0; i<NUM-2; i++) { rabbit[i+2] = rabbit[i] + rabbit[i+1]; } for (int j=0; j<NUM; j++) { cout << j << "月兔子总数: " << rabbit[j] << "只\n"; } return 0;}
PHP コード:
<?php $rabbit = array(); $rabbit[1] = $rabbit[0] =1; define("MONTH", 12); for ($i=2; $i<=MONTH; $i++) { $rabbit[$i] = $rabbit[$i-2] + $rabbit[$i-1]; } for ($i=0; $i<=MONTH; $i++) { echo "第 " . $i . " 月,兔子总数量为:". $rabbit[$i] . "只<br/>"; }?>
C++ のコンパイルと実行結果
お父さんが準備中です小龍さんの場合 大学生活の 4 年間で、彼は一度にまとまったお金を貯め、毎月末に 1,000 元を引き出して翌月に使えるように小龍さんを管理していました。銀行に一括預金した場合の年利が1.71%として、父親が預けなければならない最低金額を計算してください。
C++ コード:
#include<iostream>int main(){ using namespace std; const double RATE = 0.0171; double money[48]; money[47] = 1000; for (int i=47; i>0; i--) { money[i-1] = (money[i] + 1000)/(1+RATE/12); } for (int j=47; j>0; j--) { cout << "第 " << j << " 月本利合计为: " << money[j] << " 元\n"; } return 0;}
<?php $month = array(); $month[47] = 1000; define("RATE", 0.0171); for ($i=47; $i>0; $i--) { $month[$i-1] = ($month[$i] + 1000)/(1+RATE/12); } for ($i=47; $i>0; $i--) { echo "第 " . $i . " 月本息合计为:" . $month[$i] . "元<br />"; }?>C++ のコンパイルと実行結果