IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Возведение в степень
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


кто-нибудь в курсе, есть ли классический вариант возведения в спепень выражения вида:
(a+ib)^n
(комплексного числа.)
Мне надо получить, например, (a+ib)^2=a^2+2iab+(ib)^2=a^2+2iab-b^2;
максимальное n=10.
Конечно, можно записать многочлен для каждой степени (и это оправдано с точки зрения производительности), но хотелось бы универсализма. А вдруг n=100, в ручную возводить - охренеешь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Каждый член многочлена имеет вид k * i^r * a^p * b^q, где r = 0 или 1, а p и q - из отрезка [0; 10].

Объявляем тип "многочлен":

type Poly = array[0 .. 1, 0 .. 10, 0 .. 10] of integer;


Это у нас кубическая матрица, в которой элемент [r][p][q] задает коэффициент k в члене k * i^r * a^p * b^q.

Например, многочлен a^2+2iab-b^2 будет представлен так:

var x: Poly;
begin
fillchar(x, sizeof(x), 0); // заполнили всё нулями
x[0][2][0] := 1; // a^2
x[1][1][1] := 2; // 2iab
x[0][0][2] := -1; // -b^2
...


Дальше реализуем сложение и умножение:

Function Add(a, b: Poly): Poly;
Var res: Poly;
Begin
fillchar(res, sizeof(res), 0);
.. // реализуешь сам
End;

Function Mul(a, b: Poly): Poly;
Var res: Poly;
Begin
fillchar(res, sizeof(res), 0);
.. // реализуешь сам
End;


Ну и дальше сам додумаешь/доделаешь.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 1:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name