PHPの再帰アルゴリズムについて話す

PHPの再帰アルゴリズムについて話す

PHP はまだ比較的よく使用されているので、PHP の再帰アルゴリズムを研究し、皆さんのお役に立てればと思い、ここで共有したいと思います。ネストされた頭字語名である PHP は、英語の Hypertext Preprocessing Language (PHP: Hypertext Preprocessor) の略語です。 PHP は HTML 埋め込み言語です。HTML ドキュメントに埋め込まれ、サーバー側で実行されるスクリプト言語です。言語スタイルは C 言語に似ており、現在多くの Web サイト プログラマーに広く使用されています。 PHP のユニークな構文は、C、Java、Perl、そして PHP 独自の革新的な構文が混在したものです。

#T#CGI や Perl よりも高速に動的な Web ページを実行できます。 PHPなどのプログラミング言語で作成された動的なページと比較すると、PHPはプログラムをHTML文書に埋め込んで実行するため、HTMLタグを完全に生成するCGIよりも実行効率がはるかに高くなります。また、同じくHTML文書に埋め込まれるスクリプト言語であるJavaScriptと比較すると、PHPはサーバー側で実行されるため、サーバーのパフォーマンスを最大限に活用できます。また、PHP実行エンジンは、ユーザーが頻繁にアクセスするPHPプログラムをメモリ上に常駐させます。他のユーザーが再度プログラムにアクセスしたとき、プログラムを再コンパイルする必要はなく、メモリ上のコードを直接実行できます。これもPHPの高効率性の現れの1つです。

PHP は非常に強力な機能を備えています。すべての CGI または JavaScript 機能を実装でき、ほぼすべての一般的なデータベースとオペレーティング システムをサポートします。ここでは PHP の再帰アルゴリズムを詳しく紹介します。

PHP 再帰アルゴリズム コード:

  1. <? php  
  2. //円周率の角度の値を定義する
  3. 定義("PII",M_PI/180);
  4.  
  5. //新しい画像リソースを作成し、背景色を白、前景色を黒に定義します
  6. $ im =イメージを作成します(670,500);
  7. $ white = imagecolorallocate ($im,0xFF,0xFF,0xFF);
  8. $ g =イメージカラー割り当て($im,0x00,0x00,0x00);
  9.  
  10. //以下のインスタンス化コードから、$x、$y、$L、$aの初期値はそれぞれ300、500、100、270であることがわかります。
  11. 関数drawLeaf($g,$x,$y,$L,$a){
  12. グローバル$im;
  13. $ B = 50 ;
  14. $ C = 9 ;
  15. s1 = 2 ;
  16. s2 = 3 ;
  17. $ s3 = 1.2 ;
  18. $L > $s1の場合{
  19. // 葉の位置を計算する
  20. $ x2 =$x+$L*cos($a*PII);
  21. $ y2 =$y+$L*sin($a*PII);
  22. $ x2R =$x2+$L/$s2*cos(($a+$B)*PII);
  23. $ y2R =$y2+$L/$s2*sin(($a+$B)*PII);
  24. $ x2L =$x2+$L/$s2*cos(($a-$B)*PII);
  25. $ y2L =$y2+$L/$s2*sin(($a-$B)*PII);
  26.  
  27. //以下の葉の位置を計算する
  28. $ x1 = $x + $L / $s2*cos($a*PII);
  29. $ y1 =$y+$L/$s2*sin($a*PII);
  30. $ x1L =$x1+$L/$s2*cos(($a-$B)*PII);
  31. $ y1L =$y1+$L/$s2*sin(($a-$B)*PII);
  32. $ x1R = $ x1 + $ L / $ s2 * cos ( ($ a + $ B ) * PII );
  33. $ y1R =$y1+$L/$s2*sin(($a+$B)*PII);
  34.  
  35. //幹と葉の表面を別々に描画する
  36. イメージライン($im,(int)$x,(int)$y,(int)$x2,(int)$y2,$g);
  37. イメージライン($im、(int)$x2、(int)$y2、(int)$x2R、(int)$y2R、$g);
  38. イメージライン($im、(int)$x2、(int)$y2、(int)$x2L、(int)$y2L、$g);
  39. イメージライン($im、(int)$x1、(int)$y1、(int)$x1L、(int)$y1L、$g);
  40. イメージライン($im、(int)$x1、(int)$y1、(int)$x1R、(int)$y1R、$g);
  41.  
  42. // 自分自身を再帰的に再度呼び出す
  43. 葉っぱを描きます($g,$x2,$y2,$L/$s3,$a+$C);
  44. 葉っぱを描きます($g,$x2R,$y2R,$L/$s2,$a+$B);
  45. 葉を描きます($g,$x2L,$y2L,$L/$s2,$a-$B);
  46. 葉を描きます($g,$x1L,$y1L,$L/$s2,$a-$B);
  47. 葉を描きます($g,$x1R,$y1R,$L/$s2,$a+$B);
  48. }
  49. }
  50.  
  51. //インスタンス化
  52. リーフを描画します($g,300,500,100,270);
  53. ヘッダー("コンテンツタイプ:image/png");
  54. イメージpng($im);
  55. ?>私の個人的な PHP プログラミング経験では、再帰呼び出しは静的変数とともによく使用されます。静的変数の意味については、PHP マニュアルを参照してください。次のコードが再帰と静的変数の理解に役立つことを願っています。
  56.  
  57. ヘッダー("コンテンツタイプ:text/plain");
  58. 関数static_function(){
  59. 静的$ i = 0 ;
  60. $i++ < 10場合
  61. echo$i."\n";
  62. 静的関数();
  63. }
  64. }
  65. 静的関数();

このコードは 1 から 10 までの数字を出力します。 static_function 関数が 2 回目に実行されると、変数 i は静的変数であるため保持され解放されず、自己増分された値を取得できます。

<<:  PHP 再帰アルゴリズムとアプリケーションの紹介

>>:  PHPソートアルゴリズムの完全実装

推薦する

2024年までにAIが広告に革命を起こす

人工知能 (AI) は、コンテンツの作成や顧客のセグメンテーションからキャンペーンの最適化まで、マー...

ポピュラーサイエンス:自動運転車はなぜ制御を失うのか? 「道路の汚れ」が原因か

通常の「道路の汚れ」でも、インテリジェントな自動運転車を混乱させ、1 秒以内に制御を失い車線から外れ...

3Dマスクは顔認識を破ることができるのか?アリペイとWeChatが緊急対応

顔認証決済はますます普及しつつあるしかし、この技術の安全性については激しい議論が交わされています。映...

ナレッジグラフの紹介と応用

[[376661]]人間は知識を獲得する過程で、物事の本質にますます注意を払うようになります。人工知...

...

人工知能の環境コスト: 計算能力のために私たちは何を犠牲にする覚悟があるのでしょうか?

コンピューティング能力の需要が高まり続けるにつれて、さまざまな環境への影響が生じ、人工知能 (AI)...

Toutiaoのアルゴリズムロジックを使用してMacOSを再設計しました

仕事以外では、私はほとんどの時間を2つの状態で過ごしています。1つは見出しを閲覧している状態で、もう...

エネルギー効率を向上させるために、脳は予測知覚能力を発達させた。

[[436377]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...

ML プロジェクトを実行するときに、タスクが多数あり、些細な場合はどうすればよいでしょうか?このセルフチェックリストはあなたの心を整理するのに役立ちます

機械学習プロジェクトには、データ処理、モデルの最適化など、多くの要素が関係します。開発者は混乱したり...

安定した拡散3がリリースされ、ソラと同じ技術を使用して、テキストがついに文字化けしなくなりました

OpenAI の Sora が 1 週間にわたってスクリーンを独占した後、昨夜、トップクラスの生成 ...

AI人工知能の今後の発展方向と展望

人工知能 (AI) は、人間の知能をシミュレートし、学習、推論、認知、適応を通じて自律的にタスクを実...

ビジュアル Transformer アーキテクチャの進歩を整理した記事: CNN と比較して、ViT が勝っているのはどこでしょうか?

注意ベースのエンコーダー/デコーダー アーキテクチャである Transformer は、自然言語処理...

Baidu Brain CVサービスでは、100~1000元のクーポンを提供しています。

覚えていますか? 「小都」はかつて「The Brain」の舞台でエネルギー溢れる出場者たちと競い合い...

AI時代に従業員がIT業務の価値を証明する方法

[[251301]]ロボットがあなたの仕事を奪う可能性はありますか? あなたはロボットの仕事を手伝う...

あなたは人工知能の前で「透明な人」ですか?

プライバシーがないと感じる人が増えているのは紛れもない事実です。最も直接的な例は、買い物をしたい場合...