C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での自然数の加重平均のプログラム


自然数の配列と、対応する自然数の重みを含むもう1つの配列が与えられた場合、タスクは自然数の加重平均を計算することです。

自然数の加重平均を計算するために使用される式があります。

$$ \ overline {x} =\ frac {\ displaystyle \ sum \ Limits_ {i =1} ^ n(x_ {i *} w_ {i})} {\ displaystyle \ sum \ Limits_ {i =1} ^ n w_ {i}} $$

ここで、xは自然数、wはその自然数に関連付けられた重みです。

入力

X[] = {11, 22, 43, 34, 25, 16}
W[] = {12, 12, 43, 54, 75, 16}

出力

weighted mean is : 29.3019

説明

(11*12 + 22*12 + 43*43 + 34*54 + 25*75 + 16*16) / (12 + 12 + 43 + 54 +75 +16)

入力

X[] = {3, 4, 5, 6, 7}
W[] = {4, 5, 6, 7, 8}

出力

weighted mean is : 5.33333

説明

(3*4 + 4*5 + 5*6 + 6*7 + 7*8) / (4 + 5 + 6 + 7 + 8)

以下のプログラムで使用されているアプローチは次のとおりです

  • 2つの異なる配列を入力します。1つは自然数用で、もう1つは対応する自然数の重み用です。

  • 式を適用して、自然数の加重平均を計算します

  • 対応する結果を印刷します。

アルゴリズム

Start
Step1→ declare function to calculate weighted means of natural numbers
   float weightedmean(int X[], int W[], int size)
      Declare int sum = 0, weight = 0
      Loop For int i = 0 and i < size and i++
         Set weight = weight + X[i] * W[i]
         Set sum = sum + W[i]
      End
      return (float)weight / sum
Step 2→ In main()
   Declare int X[] = {11, 22, 43, 34, 25, 16}
   Declare int W[] = {12, 12, 43, 54, 75, 16}
   Declare int size_X = sizeof(X)/sizeof(X[0])
   Declare int size_W = sizeof(W)/sizeof(W[0])
   IF (size_X == size_W)
      Call weightedmean(X, W, size_X)
   End
   Else
      Print -1
   End
Stop

#include<bits/stdc++.h>
using namespace std;
//calculate weighted mean.
float weightedmean(int X[], int W[], int size){
   int sum = 0, weight = 0;
   for (int i = 0; i < size; i++){
      weight = weight + X[i] * W[i];
      sum = sum + W[i];
   }
   return (float)weight / sum;
}
int main(){
   int X[] = {11, 22, 43, 34, 25, 16};
   int W[] = {12, 12, 43, 54, 75, 16};
   int size_X = sizeof(X)/sizeof(X[0]);
   int size_W = sizeof(W)/sizeof(W[0]);
   if (size_X == size_W)
      cout<<"weighted mean is : "<<weightedmean(X, W, size_X);
   else
      cout << "-1";
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

weighted mean is : 29.3019

  1. 二分法のためのC++プログラム

    0であり、関数f(x)はaとbの間にある必要があります。つまりf(x)=[a、b ]。タスクは、二分法を使用して、関数f(x)の区間aとbの間にあるルートの値を見つけることです。 二分法とは何ですか? 二分法は、「a」と「b」で定義された指定された制限内の関数f(x)の根の値を見つけるために使用されます。関数の根は、f(a)=0となるような値aとして定義できます。 例 Quadratic equation F(x) =  - 8 This equation is equals to 0 when the value of x will be 2 i.e.  - 8 =

  2. 最初のn個の自然数の二乗和のためのC++プログラム?

    この問題では、最初のn個の自然数の2乗の合計を取得する方法を確認します。ここでは、1からnまで実行されるforループを使用しています。各ステップで、項の2乗を計算し、それを合計に追加します。このプログラムは、完了するまでにO(n)時間かかります。しかし、これをO(1)または一定時間で解きたい場合は、この級数式-を使用できます。 アルゴリズム squareNNatural(n) begin    sum := 0    for i in range 1 to n, do       sum := sum + i^2 &