Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.08.2013
Сообщений: 7
1

Вычисление сложной суммы

04.11.2014, 08:20. Показов 842. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые программисты! Пожалуйста помогите! Требуется написать программу, реализующую вычисление следующей сложной суммы:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{j_1=1}^{p_{i_1}}\ldots\sum_{j_q=1}^{p_{i_q}}\begin{vmatrix}m_{i_1j_1} & \ldots  & m_{i_qj_1} \\ \ldots & \ldots &\ldots \\ m_{i_1j_q} & \ldots & m_{i_qj_q} \end{vmatrix}
Нам заранее известно q (поэтому у нас произвольное количество сумм) и соответственно мы знаем i_1,...i_q и соответствующие p и m. В свою очередь q также определяется размерность определителя.
Заранее благодарю за ответ!
Вообще хотя бы увидеть код, который подобное суммирование реализует, даже без вычисления определителя.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2014, 08:20
Ответы с готовыми решениями:

Дерево отрезков для поиска сложной суммы
Как с помощью деревьев отрезков реализовать следующую сумма на отрезке массива :...

Вычисление суммы четных и суммы нечетных чисел в одномерном массиве
1) Написать программу для вычисления суммы четных и суммы нечетных чисел в одномерном массиве!

Ввод элементов массива с клавиатуры, вычисление суммы по формуле, нахождение максимальной суммы
Помогите дополнить код. Нужно, чтоб элементы массива вводились с клавиатуры. Выводилось на экран...

Вычисление сложной функции
Используя оператор условия составить программу для вычисления составной (сложной) функции ,имеющей...

3
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
04.11.2014, 11:03 2
suntanka, Если я правильно вас понял, то проблема в том, что у нас имеется массив неизвестной (переменной) размерности. Это может быть M[p1][p2], M[p1][p2][p3] ...
Если бы размерность была известна (скажем, 3), мы бы написали просто
C++
1
2
3
4
for(i1=0; i1<p1; i++)
  for(i2=0; i2<p2; i2++)
    for(i3=0; i3<p3; i3++)
        ....
Но совершенно неизвестно, какой глубины вложения понадобятся циклы...
Выход я вижу в том, чтобы n-мерный массив располагать в одномерном N[p1*p2*p3]
Элемент M[i][j][k] располагается в N[k + p1*(j + p2*i)] (Собственно, так и поступает компилятор, но тут его работу придется взять на себя)
А такой массив легко суммируется одним циклом.
Если, конечно, я правильно понял стоящую перед вами проблему.
0
0 / 0 / 0
Регистрация: 15.08.2013
Сообщений: 7
04.11.2014, 13:58  [ТС] 3
Уважаемый, Байт! Спасибо за идею, правда я ее думала тоже... Проблема в этой задаче в том, что суммирование идет q раз, а не в размерности массива, элементы массива с индексами, которые получатся найти не сложно, для меня сложно представить как такое суммирование написать. Приходит на ум рекурсия.... но не могу представить как ей работать.... ((

Если бы у меня было конкретное число сумм, я бы совсем не заморачивалась...
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
04.11.2014, 16:20 4
suntanka, Опять же, если я правильно понимаю. Я бы структуру суммирования представил так.
C++
1
2
3
4
5
6
7
8
9
10
11
int q=3; 
int n[10] = { 3, 4, 5 }; // список размерностей n[10] - предполагаю, что q <= 10
while (q >0) {
 for(i=0,rN = 1; i<q; i++) rN *= n[i];  // rN - размер линейного массива
 double *N = malloc(rN*sizeof(double));
 // считаем все внутренние суммы.
 // Помещаем результаты в другой массив N2 = malloc((rN /= n[q-1])*sizeof(double))ж
 q--;
 free(N);
 N = N2;
}
Т.е. структура суммирования описывается глубиной(размерностью) q и списком размеров по каждой размерности n[]
Все это, конечно, очень грубый псевдокод.
Если мы опять друг друга плохо понимаем, попробуйте набросать маленький пример...
Цитата Сообщение от suntanka Посмотреть сообщение
Приходит на ум рекурсия
Да. Она прямо мерцает между строк. Может быть мои построения помогут вам представить ее работу. ИМХО, я пытаюсь смоделировать рекурсию.
Удачи!

Добавлено через 42 секунды

Не по теме:

Цитата Сообщение от suntanka Посмотреть сообщение
Если бы у меня было конкретное число сумм, я бы совсем не заморачивалась...
Дык, тогда и говорить бы не о чем...

0
04.11.2014, 16:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2014, 16:20
Помогаю со студенческими работами здесь

Вычисление составной (сложной) функции
Задание: используя оператор условия (if … then), составить программу для вычисления составной...

Вычисление составной (сложной) функции
Здравствуйте помогите пожалуйста к контрольной очень нужно заранее Вам спасибо паскаль скачал с...

Вычисление составной (сложной) функции
Функция: y=корень (1+x2 ) y=корень (2-корень (sin(1+x))) y=cos(4*(1+x)+1.1) y=-4*(x-1.5)+0.2...

Вычисление двойного интеграла сложной функции
Пытаюсь вычислить двойной интеграл от функции % G R H lambdaj theta win некоторые числа syms q...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru