0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 4
|
|
1 | |
Матрица..30.06.2010, 16:33. Показов 966. Ответов 15
Метки нет (Все метки)
Всем приветя вот столкнулся с какой проблемой.Мне нужно написать в программе, чтобы рекурсия возвращала МАТРИЦУ.Как бы я не пытался это сделать, не получается(помогите, кто может.
0
|
30.06.2010, 16:33 | |
Ответы с готовыми решениями:
15
Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) Нужны преобразования: список смежных вершин -> список инцидентных ребер -> матрица инцидентности -> матрица смежности Шаблон функции матрица-матрица |
2 / 2 / 0
Регистрация: 27.06.2010
Сообщений: 27
|
|
30.06.2010, 16:52 | 2 |
У Вас вероятно переполняется стек (рекурсивные подпрограммы вообще очень быстро заполняют стек своими адресами возврата). Вероятно необходимо передать матрицу не по значению, а по ссылке тогда в стек будет помещена не сама матрица, а ее адрес в оперативной памяти.
Примечание: в данном случае будет изменен массив в памяти, а не будет возвращена его измененная локальная копия в стеке. В паскале и C++ возможна также передача константного указателя когда в подпрограмму передается адрес переменной, но ее значение нельзя изменить в подпрограмме Если что спрашивайте
0
|
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 4
|
|
30.06.2010, 16:59 [ТС] | 3 |
Задача такая: Дана матрица А порядка m, и натуральное число n, надо вычислить E+A+A^2+.....+A^n с помощью рекурсии.
У меня получается, что рекурсивная функция должна возвращать матрицу, а насколько я знаю так делать нельзя (или даже невозможно).
0
|
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
|
|
30.06.2010, 17:08 | 4 |
таки да... Вот поэтому в рекурсивную функцию передавайте указатель/ссылку на матрицу.
0
|
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 40
|
|
30.06.2010, 17:16 | 5 |
У меня та же проблема. Чтобы применить рекурсию к матрице надо чтобы она явно возвращала матрицу (в return), а не просто перезаписывала ее в процессе выполнения.
0
|
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
|
|
30.06.2010, 17:22 | 6 |
попробуйте создать простенький класс содержащий матрицу. Объект вернуть можно уж точно
1
|
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 4
|
|
30.06.2010, 17:26 [ТС] | 7 |
Приведите хотя б простейший пример, применительно к этой задаче..я просто не знаю, как это(
0
|
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
|
||||||
30.06.2010, 17:40 | 8 | |||||
2
|
7 / 7 / 1
Регистрация: 30.06.2010
Сообщений: 27
|
|
30.06.2010, 17:56 | 9 |
а степени это перемножение матрицы на саму себя? то есть можно сделать рекурсивную процедуру, в нее передается:
ну, на вскидку так Добавлено через 3 минуты подразумевается что вы понимаете что за указатели такие на матрицу то есть и возвращать ничего не нужно по сути, рекурсивно вычисляется A^k (то есть циклом-то проще это реализовать на самом на деле)
2
|
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 4
|
||||||
30.06.2010, 18:39 [ТС] | 10 | |||||
Будет ли это работать?
0
|
Aaxenon
|
30.06.2010, 18:45
#11
|
Не по теме: скомпильте и посмотрите о.о
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
30.06.2010, 18:46 | 12 |
Скорее всего даже не скомпилируется. Вы сути не поняли - класс нужен, чтобы внутри него двухмерный массив спрятать, а Вы пытаетесь эти самые массивы параметрами в функции класса передавать.
0
|
7 / 7 / 1
Регистрация: 30.06.2010
Сообщений: 27
|
|
30.06.2010, 18:50 | 13 |
Я вас люблю - явно нет. если понял что я там написал, попробуй для начала это сделать с обычными массивами и в цикле, как заработает, попробуй переделать в простенькую рекурсию
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
01.07.2010, 10:24 | 14 | |||||
0
|
7 / 7 / 1
Регистрация: 30.06.2010
Сообщений: 27
|
|
01.07.2010, 10:51 | 15 |
Mr.X, пожалуй ему этого класса еще на десяток заданий про матрицы хватит
0
|
2 / 2 / 0
Регистрация: 27.06.2010
Сообщений: 27
|
|
01.07.2010, 11:11 | 16 |
Передавайте все по ссылке, константный указатель здесь не нужен это только если в функцию значения передаете, а Вам ее вернуть надо
0
|
01.07.2010, 11:11 | |
01.07.2010, 11:11 | |
Помогаю со студенческими работами здесь
16
Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E единичная матрица порядка n Определить базовый класс "Матрица" и класс-потомок "Треугольная матрица" матрица А+В матрица Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |