0-1 ナップザック問題を解決するための PHP 動的プログラミングの分析例_PHP チュートリアル
0-1 ナップザック問題を解くための PHP 動的プログラミングの分析例
この記事では、主に 0-1 ナップザック問題を解決するための PHP 動的プログラミングを紹介します。この例では、ナップザック問題の原理と実装テクニックを分析します。必要な場合はそれを参照してください
この記事では、0-1 ナップザック問題を解決するための PHP 動的プログラミングの例を分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです:
ナップサックの問題の説明: 最大重量 W のバックパックには n 個のアイテムがあり、各アイテムの重量は t、各アイテムの値は v です。
このバックパックの重量を最大にする (ただし W を超えない) には、バックパックの値が最大である必要があります。
アイデア: 2 次元配列を定義します。1 つの次元は項目の数 (各項目を表す)、2 番目の次元は重み (最大値を超えない、ここでは 15) です。次の配列 a、
動的計画法の原理的な考え方、max(opt(i-1,w),wi+opt(i-1,w-wi))のうちの最大値
opt(i-1,w-wi) は前の最適解を参照します
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
//これは動的計画法の原理に基づいて書いたものです // max(opt(i-1,w),wi+opt(i-1,w-wi)) //バックパックは最大重量に耐えることができます $w=15; //4つのアイテムと各アイテムの重量は次のとおりです $dx=配列(3,4,5,6); //各アイテムの価値 $qz=配列(8,7,4,9); //配列を定義する $a=配列(); //初期化 for($i=0;$ifor ($j=0;$j//opt(i-1,w),wi+opt(i-1,w-wi) for ($j=1;$j for($i=1;$i $a[$j][$i]=$a[$j-1][$i]; //最大値 w=15 を超えない if($dx[$j-1] if(!isset($a[$j-1][$i-$dx[$j-1]])) 続行; //wi+opt(i-1,wi) $tmp = $a[$j-1][$i-$dx[$j-1]]+$qz[$j-1]; //opt(i-1,w),wi+opt(i-1,w-wi) => 比較 if($tmp>$a[$j][$i]){ $a[$j][$i]=$tmp; } } } } //この配列を出力し、最も高い値を持つ右端の値を出力します for ($j=0;$j for ($i=0;$i echo $a[$j][$i]."/t"; } echo "/n"; } ?>
|
http://www.bkjia.com/PHPjc/973132.html

thesecrettokeepingaphp-poweredwebsterunningsmootlyunderheavyloadinvolvesseveralkeystrategies:1)emform opcodecoduceSciptionexecutiontime、2)aatabasequerycachingwithiThing withiThistolessendavasoload、

コードをより明確かつ維持しやすくするため、依存関係が関心(DI)に注意する必要があります。 1)DIは、クラスを切り離すことにより、よりモジュール化されます。2)テストとコードの柔軟性の利便性を向上させ、3)DIコンテナを使用して複雑な依存関係を管理しますが、パフォーマンスの影響と円形の依存関係に注意してください。

はい、最適化されたAphPossibleandessention.1)CachingingusapCutoredatedAtabaseload.2)最適化、効率的なQueries、およびConnectionPooling.3)EnhcodeCodewithBultinctions、Avoididingglobalbariables、およびUsingopcodeching

keyStrategIestsoSificlyvoostphpappliceperformanceare:1)useopcodecachinglikeToreexecutiontime、2)最適化abaseの相互作用とプロペラインデックス、3)3)構成

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
