PHP 再帰アルゴリズムとアプリケーション メソッドの概要_PHP チュートリアル
PHP は動的ページ WEB の開発に推奨されるテクノロジーであり、プログラミングに役立つようにその基本的な知識を覚えておく必要があります。 PHP 再帰アルゴリズムで何が起こっているのかを見てみましょう。
1. サブルーチン呼び出しの意味:
メインプログラムがサブルーチンAを呼び出すステートメントを実行すると、システムは必要なオンサイトデータを保存し、BASIC言語と同様のGOTOステートメントを実行してサブルーチンAにジャンプします(わかりやすくするために、ここではパラメータ転送を無視しています)。プロセス)。サブルーチン A がサブルーチン B を呼び出すステートメントに到達すると、システムは上記のようにサブルーチン B にジャンプします。サブプログラム B は、すべてのステートメントの実行を終了した後、サブプログラム A に戻り、サブプログラム B の次のステートメントを呼び出します (サブプログラム A の実行が終了した後、戻り値の処理を再度無視しました)。メイン プログラムに戻り、サブプログラムを呼び出します。 A. ステートメントの次のステートメントでは、メインプログラムが最後まで実行されます。比較してみましょう。私が食事をしているとき(メインプログラムを実行中)、誰かが私に電話をかけてきました(サブルーチン A を実行中)。途中でまた電話が鳴りました(サブルーチン B を実行中)。まず電話を終えて、誰かと話を終えて、そして最後に食事を終えます(私はこの食事を食べるとかなり疲れています)。
2. 再帰関数を理解する
私たちは皆、高校で数学的帰納法、PHP 再帰アルゴリズムを学びました。例:
お願いします! nを入れることもできます!この定義は 3 が必要であることを意味します。 、まず 2 を見つけなければなりません。 、リクエスト2! 、まず 1 を見つける必要があります。 、リクエスト1! 、まず 0 を見つける必要があります。 、0!=1 なので、1!=0!*1=1 となり、2!、3! を求めます。それぞれ関数で表されると、0! の計算以外のことがわかります。サブルーチンを除いて、他のサブルーチンも基本的には同様です。このようなサブルーチンを設計できます。
int階乗(int i){int res;
res=factorial(I-1)*i;
return res;
次に、メインプログラムステートメントs=factorial(3)が実行されると、ただし、factorial(3) が実行されると、factorial(2) が再度呼び出されます。このとき、factorial(3) と fastial(2) は同じコード セグメントではありますが、それらのデータ領域は同じであることに注意してください。メモリは2人前です! Factorial(2) が実行されると、Factorial(1) が呼び出され、Factorial(1) が Factorial(0) と呼ばれます。factorial 関数が呼び出されるたびに、メモリに新しいデータ領域が追加されます。複数の関数は異なる名前を持つ複数の関数として理解できますが、この関数には問題があります。factorial(0) が実行されると、factorial(-1) が呼び出されます。 。 。無限ループが発生します。つまり、factorial 関数では、関数が適切なタイミングで呼び出されないようにする必要があります。つまり、呼び出しステートメント res=factorial(I-1)*i; が実行されないようにする必要があります。 。したがって、関数を次のように変更する必要があります:
int階乗(int i){
if (I>0) res=factorial(I-1)*i;
return res;
3.再帰 問題を解決するためのアルゴリズム
例: s=1+2+3+4+5+6+……+n を求める 元々、この問題にはループ累積法を使用していました。ここで再帰的手法を使用する場合は、次の 2 つの点を考慮する必要があります: 1) 問題を再帰的な記述形式に変換できるかどうか。
明らかに、再帰には 2 つの条件があります:
2) s(1)=1
したがって、ソースプログラムは次のようになります:
int progression(int n){
int res;
return res;
4.
バイナリツリーの順序通りの走査
void inorder (BinTree T){ if (T){ printf(“%c”,T->rchild); }
http://www.bkjia.com/PHPjc/326852.html
www.bkjia.com
true

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
