|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.11.2011, 17:56 | #1 |
Форумчанин
Регистрация: 15.10.2011
Сообщений: 139
|
Как увеличить размер стека?
Как увеличить размер стека?
Код:
Программист это не профессия, программист - это образ жизни.
|
13.11.2011, 17:57 | #2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
Учитесь называть темы правильно. Название темы - должно отражать суть вопроса. буду закрывать!
|
13.11.2011, 18:06 | #3 |
Форумчанин
Регистрация: 15.12.2010
Сообщений: 398
|
Самый лучший выход - избавиться от рекурсии используя класс Stack.
Что то типо того Stack<A> stack = new Stack<a> { }; A.Push(Начальное значение>; while(A.Count != 0) { A val = stack.Pop(); //Работает с перменной на верхушке стека .... //Если нада сделать рекурсивный вызов с новой переменной то ... { A.Push(Переменная); continue; } } Увеличение предоставленного системой стека для такой задачи плоха... Логика рекурсии сохраняется, но испольуется не стек а память приложения |
14.11.2011, 17:50 | #4 | |
Форумчанин
Регистрация: 15.10.2011
Сообщений: 139
|
Цитата:
Программист это не профессия, программист - это образ жизни.
|
|
15.11.2011, 22:34 | #5 |
Форумчанин
Регистрация: 15.10.2011
Сообщений: 139
|
но все же, как увеличить размер стека и как он рассчитывается?
при значениях n=4, m=1 компилятор судорожно понимает что перед ним рекурсия и начинает истерить, происходит это где то на 55-59 миллионах вызовах из себя же. как увеличить это число?
Программист это не профессия, программист - это образ жизни.
Последний раз редактировалось Prizrak86; 16.11.2011 в 00:06. |
16.11.2011, 08:28 | #6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Проблема не в размере стэка.
Проблема в этом условии: Код:
По сути, идёт постоянный вызов rek(1,0) и выхода из этого замкнутого круга нет. |
16.11.2011, 08:38 | #7 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Рекурсию к тому иногда можно привести к циклу. Попробуйте переформулировать условие задачи.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
16.11.2011, 18:37 | #8 | |
Форумчанин
Регистрация: 15.10.2011
Сообщений: 139
|
Цитата:
при вхождении с параметром n==1 && m==1 вычисление идет по двум рекурсия вложенных друг в друга, если передает параметры n==0 && m==1 то рекурсия в последствии не выполняется, а результат работы будет m=m+1; т.е. 2.
Программист это не профессия, программист - это образ жизни.
Последний раз редактировалось Prizrak86; 16.11.2011 в 18:46. |
|
16.11.2011, 18:41 | #9 |
Форумчанин
Регистрация: 15.10.2011
Сообщений: 139
|
к сожаления в условии задачи четко прописано что при выполнении конкретных условий должна вызывать ту же систему уравнений только с измененными входными параметрами.
Программист это не профессия, программист - это образ жизни.
|
17.11.2011, 11:24 | #10 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как увеличить размер БД? | Sergey Bi. старший | БД в Delphi | 5 | 07.04.2011 21:50 |
Увеличить размер точки OptionButton | Sergey112233 | Microsoft Office Excel | 4 | 30.12.2010 22:47 |
Как увеличить выборку? | NiYa | Microsoft Office Excel | 1 | 03.05.2010 17:05 |
как увеличить максимальный размер структурных типов? | bullvinkle | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 19.12.2008 09:54 |