Существует ли версия умножения для операции a * = b для массивов с комплексными числами? Другими словами, какой наиболее эффективный способ умножить все элементы массива комплексных чисел (большое количество элементов или неизвестной длины) и сохранить результат в сложной двойной переменной?Умножение массива комплексных чисел
В следующем коде Ans1 дает правильный ответ, однако для моего приложения нецелесообразно обращаться к каждому элементу массива, так как будет сотни. В идеале, я бы хотел иметь цикл (нечто похожее на Ans2), который умножает все элементы массива и сохраняет ответ. Если я не инициирую Ans2 как 1.0,1.0, ответ будет равен 0,0, поскольку элементы будут умножены на 0. Однако инициализация с 1.0.1.0 не будет работать, поскольку мы имеем дело со сложными числами.
EDIT - Причина, по которой я не могу адресовать каждый элемент вручную, заключается в том, что это будет связано с более крупной программой, где элементы массива «a» будут поступать откуда-то еще, а длина «a» будет меняться ,
В идеале ОТВЕТ = КОМПЛЕКСНОЕ ЭЛЕМЕНТ [0] * КОМПЛЕКС ЭЛЕМЕНТОВ [1] КОМПЛЕКС ЭЛЕМЕНТОВ [2] .... КОМПЛЕКС ЭЛЕМЕНТОВ [п]
/*
Complex Array Multiplication
*/
#include <complex>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n = 3;
complex<double> Ans1, Ans2(1.0,1.0);
complex<double> a[n];
a[0] = complex<double>(1.0, 1.5);
a[1] = complex<double>(-1.0, 1.5);
a[2] = complex<double>(1.0, -1.5);
Ans1 = (a[0]*a[1]*a[2]);
cout << "\nAns1 = " << Ans1;
for (int i =0; i < n; i++) {
Ans2 = Ans2 * a[i];
}
cout << "\nAns2 = " << Ans2;
getchar();
}
Может быть, это можно было бы сделать очень легко, но я «Что-то не хватает. Заранее спасибо.
Умножение «сотни «сложных значений на самом деле не является проблемой для современных компьютеров ... – filmor
« для моего приложения не имеет смысла обращаться к каждому элементу массива, так как будет сотни »вы пишете эту программу на перфокартах? – djechlin
Правда, но написание каждого элемента вручную, как я сделал для Ans1, вероятно, не самый эффективный способ использования современных компьютеров.Я только что создал массив A для заполнения значений, но для моего приложения значения будут получены откуда-то еще. – user2550888