0

だから私はこれが初めてです。関数を使用してプログラムを作成しようとしています

double_product(vector< double > a, vector< double > b) 2 つのベクトルのスカラー積を計算します。スカラー積は

$a_{0}b_{0}+a_{1}b_{1}+...a_{n-1}b_{n-1}$.

これが私が持っているものです。バタバタですががんばります!

#include<iostream>

#include<vector>

using namespace std;

class Scalar_product
{

public:

    Scalar_product(vector<double> a, vector<bouble> b);

};


double scalar_product(vector<double> a, vector<double> b) 
{

   double product = 0;

   for (int i=0; i <=a.size()-1; i++)

       for (int i=0; i <=b.size()-1; i++)

           product = product + (a[i])*(b[i]);

   return product;

}

int main()
{

    cout << product << endl;

    return 0;

}
4

2 に答える 2

2

基本的なレベルで、あなたはかなり正しい考えを持っています。いくつかの基本的な構成要素を追加すれば、順調に進むことができます。あなたのscalar_product機能は近いですが、完全ではありません。同じ値を反復処理する同じ名前の2つのループ反復子を作成しました。簡単に言うのは良いはずです

if (a.size() != b.size()) {} // error
for (int i=0; i < a.size(); i++)
   product = product + (a[i])*(b[i]);

これで、データを取得して呼び出し、結果を出力するだけです。

int main() {
    std::vector<double> a;
    std::vector<double> b;
    // fill with the values
    std::cout << scalar_product(a, b) << endl;
}

ここclassではすべてが完全に不要です。必要なクラスはStandardlibにあります。

于 2012-06-06T04:23:20.280 に答える
2

コメントできないので、返信せざるを得ません。

どうやらまったく同じ質問が、単語ごとに、ここにあります:

C++ での 2 つのベクトルのスカラー積の計算

于 2012-06-06T08:10:25.523 に答える