貪欲なアルゴリズムを使用して、PHP で最小コイン変更問題に対する効率的な解決策を実装するにはどうすればよいでしょうか?
はじめに:
日常生活では、特に買い物や取引の際に小銭が必要になることがよくあります。できるだけ少ないコインを使用するには、できるだけ少ないコインを使用して釣銭金額を組み合わせる必要があります。コンピューター プログラミングでは、貪欲なアルゴリズムを使用してこの問題を解決し、効率的な解決策を得ることができます。この記事では、PHP の貪欲アルゴリズムを使用して、最小コイン変更問題に対する効率的な解決策を実装する方法を説明し、対応するコード例を示します。
ステップ 1: 関数を作成する, minimumCoins という名前で、amount (金額) とコイン額面配列 (coins) の 2 つのパラメーターを受け入れます。
ステップ 2: 変更用のコインの組み合わせを保存する空の結果配列 (結果) を定義します。
ステップ 3: コインの金種配列を降順に並べ替えて、大金種から小金種までのより大きな金種のコインを選択します。
ステップ 4: コインの金種配列を走査し、毎回、現在の金種が変更する目標金額以下のコインを選択します。
ステップ 5: 変更プロセス中に、目標金額を更新し、選択した硬貨の金種を結果配列に追加し、選択した硬貨の金種を目標金額から減算します。
ステップ 6: 目標金額が 0 になるまでステップ 4 と 5 を繰り返します。
ステップ 7: 結果の配列を返します。
以下は具体的な PHP コードの例です:
function minimumCoins($amount, $coins) { $result = []; // 存储找零的硬币组合 rsort($coins); // 降序排列硬币面额数组 foreach ($coins as $coin) { while ($coin <= $amount) { $result[] = $coin; // 将当前硬币面额添加到结果数组中 $amount -= $coin; // 更新目标金额 } } return $result; } $amount = 47; // 目标金额 $coins = [25, 10, 5, 1]; // 硬币面额数组 $result = minimumCoins($amount, $coins); echo "找零组合:"; foreach ($result as $coin) { echo $coin . " "; }
上記のコードは出力します: 「変更の組み合わせ: 25 10 10 1 1」、つまり、変更を見つけるには 5 枚のコインが必要です。 47元。
結論:
欲張りアルゴリズムを使用することで、PHP の最小コイン変更問題を効率的に解くことができます。この問題は日常生活において非常に現実的であり、貪欲アルゴリズムはシンプルで効率的な解決策を提供します。この記事で提供されているコード例と解決策のアイデアがお役に立てば幸いです。
以上が貪欲なアルゴリズムを使用して、PHP で最小コイン変更問題に対する効率的な解決策を実装するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。