この記事では、いくつかのクラシックな PHP アルゴリズムを例とともに説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
5人がリンゴを一束盗み、翌日その戦利品を山分けする計画を立てました。夕方、男が出てきて、すべての野菜と果物を5つの部分に分けましたが、余分なものがあったので、それを木の上の猿に投げて、最初に1/5を隠しました。意外なことに、他の4人も同じように考えていて、最初の人と同じように5つに分け、余った部分を猿に投げて1/5を奪いました。次の日、みんなで戦利品を分け、さらに5等分して、もう1つを猿に投げました。最後の人が分け前を獲得しました。質問: リンゴは何個ありますか?
リーリー猿のグループが円形に並び、1、2、...、n に従って番号が付けられます。次に、1 番目から数え始め、m 番目まで数え、円の外に追い出し、後ろから数え始め、m 番目まで数え、追い出します...このようにして最後まで続けます。猿は一匹だけ残っており、その猿は王様と呼ばれています。このプロセスをシミュレートするには、m、n を入力し、最後の王の番号を出力するプログラミングが必要です。
リーリーハノイの塔 (ハノイの塔としても知られています) は、インドの古代の伝説です。世界を創造した神ブラフマーは神殿に 3 本のダイヤモンドの棒を残しました。最初の棒は 64 個の丸い金片で覆われ、他のものは他の棒よりも小さく積み重ねられていました。寺院では、僧侶たちが精力的に棒から棒へと一つずつ移動させていましたが、真ん中の棒は補助として使用できると規定されていましたが、一度に移動できるのは 1 本だけで、大きな棒は移動できませんでした。小さいものの上に置きます。答えを見つけるには、最後にあるプログラムを参照してください。 18446744073709551615という膨大な数(円盤を動かした回数)を前に、修道士たちが一生を費やしても金円盤の移動を完了することは不可能と思われる。
その後、この伝説はハノイの塔ゲームに発展しました:
1. A、B、C の 3 つの極があります。ポールAにはプレートがいくつかあります
2. プレートを 1 枚ずつ移動する場合、小さいプレートは大きいプレートの上にのみ積み重ねることができます
3. すべての皿をポール A からポール C に移動します
調査の結果、ハノイの塔の解決策は非常に簡単であることがわかりました。移動ルールに従って金のピースを一方向に移動するだけです:
例えば、ハノイの3次塔の動き: A→C、A→B、C→B、A→C、B→A、B→C、A→C
さらに、ハノイの塔問題もプログラミングにおける古典的な再帰問題です。
リーリーPHP を使用してバブル ソートとクイック ソートのアルゴリズムを記述します。オブジェクトは配列にすることができます
リーリーPHP を使用して逐次検索アルゴリズムと二分探索アルゴリズムを記述します。逐次検索では効率を考慮する必要があり、オブジェクトは順序付けされた配列にすることができます
リーリーPHP組み込み関数を呼び出すことができ、汎用性のある2次元配列ソートアルゴリズム関数を作成します
リーリーこの記事が PHP プログラミングのすべての人に役立つことを願っています。