ホームページ  >  記事  >  バックエンド開発  >  平均が指定された配列の中央値を超える長さ K の部分配列を計算します

平均が指定された配列の中央値を超える長さ K の部分配列を計算します

WBOY
WBOY転載
2023-09-02 08:09:131341ブラウズ

平均が指定された配列の中央値を超える長さ K の部分配列を計算します

「K 個の長さの部分配列」という式は、正確に K 個の要素を持つ連続した部分配列に適用されます。部分配列を習得して使用することは、動的計画法、計算幾何学、データ分析などの分野におけるさまざまな問題を解決するために不可欠です。

配列操作と統計におけるもう 1 つの重要な概念は、中央値です。配列の中央値は、要素を昇順に並べ替えたときの中央の値を表します。要素の数が偶数である場合、中央値は 2 つの中心値の平均です。中央値は、平均値よりも極値や外れ値の影響を受けにくいため、中心傾向の永続的な尺度を構成します。

この記事では、指定された配列内で平均が中央値を超える K 長の部分配列の数を決定するという課題について研究しようとしています。データセットの平均と中央値の関係を理解することで、この課題を詳しく掘り下げ、それを解決するための効率的な手法を開発できます。問題文を詳しく分析し、重要な概念を検討し、配列内で必要な長さ K の部分配列の数をアルゴリズムで効率的に計算します。

###文法###

配列内の要素を昇順に並べ替えます。

リーリー

整数ベクトルを宣言します。

リーリー

整数配列を宣言する

リーリー

C の基本的な for ループ構文。

リーリー

ソースコードアルゴリズム

    入力配列とそのサイズを読み取ります。
  • 指定された配列の中央値を計算します。
  • 長さ K の各部分配列について、平均を計算します。
  • 平均値と中央値を比較します。
  • 平均値が中央値を超える統計サブ配列。
  • 方法 1: ブルート フォース クラッキング

方法 1 は、平均が指定された配列の中央値を超える長さ K の部分配列の数を決定するという課題に対する簡単な解決策を構成します。最初に、入力配列がソートされ、中央値が計算されます。続いて、プログラムはすべての実行可能な K 長サブ配列を反復処理し、それらのコンポーネントを集計することによって平均を計算します。部分配列の平均が中央値を超えると、カウントが増加します。最後に、コードはそのようなサブ配列の数を返します。

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

指定された配列の中央値を計算します。

  • すべての可能な K 長の部分配列を反復処理します。

  • 各部分配列の平均を計算します。

  • 部分配列の平均が中央値より大きい場合は、カウントを増やします。

  • 例 1

  • 以下のコードは、この記事で前述した総当たりアプローチに従っています。まず入力配列を並べ替えて、中央値を計算します。次に、考えられるすべての K 個の長さの部分配列を反復し、要素を合計することで平均を計算します。部分配列の平均が中央値より大きい場合、カウントは増加します。最後に、コードはそのようなサブ配列の数を返します。
リーリー ###出力### リーリー

方法 2: 最適化方法

方法 2 は、指定された配列の中央値を超える平均値を持つ長さ K の部分配列の数を決定する問題に対する洗練された解決策です。まず入力配列を並べ替えて、中央値を計算します。次に、プレフィックス合計配列を計算します。これは、長さ K の各サブ配列の合計を決定するために使用されます。このアルゴリズムは、長さ K の考えられるすべてのサブ配列を反復処理し、プレフィックス合計配列を使用してそれらの平均を計算し、中央値と比較します。

部分配列の平均が中央値を超える場合、カウントは増加します。最後に、プログラムはそのようなサブ配列の数を返します。このアプローチは、プレフィックス合計配列を利用して長さ K の各サブ配列の合計を計算するため、実行時の複雑さが軽減されるため、最初のアプローチよりも効率的です。

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

指定された配列の中央値を計算します。

プレフィックス合計配列を計算します。

  • すべての可能な K 長の部分配列を反復処理します。

  • プレフィックスと配列を使用して平均を計算します。

  • 部分配列の平均が中央値より大きい場合は、カウントを増やします。

  • 例 2

  • このアルゴリズムは、前述した最良のアプローチに従います。プレフィックス合計配列を利用して、K 個の長さのサブセットごとに集計を迅速に計算します。入力シーケンスがソートされ、中央値が決定された後、プレフィックスの合計が計算されます。次に、プログラムは長さ K のすべてのサブセットをループし、プレフィックス合計配列を使用してそれらの平均を計算し、それを中央値と比較します。平均が中央値を超えると、カウントが増加します。要約すると、コードはそのようなサブセットの数を返します。
  • リーリー ###出力### リーリー ###結論は###

    この記事では、C を使用して、平均が指定された配列の中央値を超える K 長の部分配列を計算する 2 つの方法について説明しました。 1 つ目の方法は総当たり法で、考えられるすべての K 個の長さの部分配列を反復し、それらの平均を計算します。 2 番目の方法は、プレフィックスと配列を使用して平均をより効率的に計算する最適化方法です。両方のコードが提供されており、必要な数のサブ配列を見つけるために実行できます。

以上が平均が指定された配列の中央値を超える長さ K の部分配列を計算しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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