ホームページ  >  記事  >  バックエンド開発  >  配列要素を 1 ずつ増減して、最大要素と最小要素の差を最小限に抑えます。

配列要素を 1 ずつ増減して、最大要素と最小要素の差を最小限に抑えます。

PHPz
PHPz転載
2023-09-10 10:37:02664ブラウズ

通过将数组元素减少和增加 1 来最小化最大元素和最小元素之间的差异

C コーダーにとって、配列内の要素の最大数と最小数の間のギャップを減らすと便利です。これにより、すべての要素にわたる価値の均一な分散が促進され、さまざまな状況で複数のメリットがもたらされる可能性があります。私たちの現在の焦点は、アレイ構造のサイズを拡大または縮小するための実践的な技術を通じて、アレイ構造内のバランスを最適化する方法にあります。

###文法###

アルゴリズムの詳細を掘り下げる前に、まずコード例で使用されているメソッドの構文を簡単に調べてみましょう -

リーリー

minimumDifference 関数は、配列 arr とそのサイズ n をパラメーターとして受け取ります。

###アルゴリズム###

配列の最大値と最小値の間のギャップを減らすには、次の一連の手順に従ってください -

特定の要素に存在する最大値と最小値を決定するには、各値を決定して相互に比較する必要があります。

  • 最大要素と最小要素の差を計算します。

  • 差を 2 で割って、midDiff という変数に格納します。

  • 配列をループし、要素ごとに次の手順を実行します -

  • 要素が最大要素と最小要素の平均より大きい場合は、そこからmidDiffを減算します。

  • 要素が平均より小さい場合は、midDiff だけ増加します。

  • 私たちの目標では、上限と下限が 1 単位以下で収束または発散する状態に達するまで、手順 1 ~ 4 を中断することなく繰り返し、方法論を適用し続ける必要があります。

  • ###方法###

    次に、配列内の最大要素と最小要素の差を最小限に抑える 2 つの異なる方法について説明します。 -

  • 方法 1: 素朴な方法

この問題に慣れていない人のためのアプローチは、最大要素と最小要素の差が 1 単位だけになるまでアルゴリズムを繰り返し実行してみることかもしれません。このソリューションをプログラムで実装する方法は次のとおりです -

###文法### リーリー ###例### リーリー ###出力### リーリー

説明

の中国語訳は次のとおりです:

説明

素朴な方法 (方法 1 とも呼ばれます) は、最大要素と最小要素の差を減らすことで、配列内の項目間の差を最小限に抑えることを目的としています。この戦略を実行するには、次の手順が必要です。まず、元のデータ セット内のどの項目が最大値として機能するかを決定し、同時に他のどの項目が最小値を表すかを見つけます。これらのデータ セットは配列構造に保存されます。次に、では、統計的に導かれたデータ セットからこれらの最小エンティティと最大エンティティの距離を計算します。第 3 段階では、アルゴリズムによって指示された特定の条件を使用してデータ セット内のすべての要素にアクセスして更新する必要があります。これらの条件に基づいて、個々のエントリが比較されます。以前に見つかった統計的平均 (数学的平均) (ステップ I で指定された極端な最高/最低のペア) 間の差、または再スケーリングが必要なより小さい/より大きい範囲のケースで、最適な平衡状態になるまで、さまざまな割合で減少または増加します。つまり、最大/最小エンティティはお互いを超えることなく最も近くなります。

方法 2: 並べ替え方法

この問題を解決するもう 1 つの方法として、配列を両端からスキャンする前に配列を降順に並べ替えることが考えられます。サイズを交互に増減させることで、出力戦略を最適化できます。次の実装では、コード -

を通じてこれらの手順を示します。 ###文法### リーリー ###例### リーリー ###出力### リーリー

説明

の中国語訳は次のとおりです:

説明

配列内の最大値と最小値の差を最小限に抑えるには、アプローチ 2 (通常は並べ替えと呼ばれます) を使用できます。このアプローチに従うには、まずコレクション内の各要素を昇順に整理する必要があります。次に、中間点に到達するまで、小さい要素を増やしながら大きい要素を減らしながら、上記のセットの両端のトラバースを同時に開始します。これにより、最大値と最小値が近づき、それぞれの大きさに応じてパラメータ間の空間的一貫性が向上し、操作後に新たに発見された差異を高精度で測定できるようになります。

###結論は###

この記事の目的は、範囲内の小さい単位を優先することによって、範囲の最高値と最低値の差を減らすことに焦点を当てたアルゴリズム主導のアプローチについて説明することです。私たちの調査では、素朴戦略と並べ替え戦略という 2 つの異なる戦略を提案し、機能的なサンプル コードを使用して両方の戦略を最適に適用する方法に関する実際の使用例を読者に提供しますが、これに限定されるものではありません。これらの戦略を利用することで、配列内の要素の数を効果的に管理して、最適な値のバランスを実現できます。実装する際は、さまざまな構成を実行するときに特定のプロジェクト目標に合わせたカスタマイズが重要であることに留意してください。

以上が配列要素を 1 ずつ増減して、最大要素と最小要素の差を最小限に抑えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。