русский
Germany.ruForen → Архив Досок→ Programmierung

Рекурсивные функции

164  
dave2 гость16.12.06 11:05
16.12.06 11:05 
Привет, сейчас готовлюсь к экзамену, в рамках которого мы доказываем Terminierung рекурсивных функций, где самое сложное - это подобрать Abstiegsfunktion, для которой нет определенных правил ее подбора. В свяхи с этим вопрос - может кто уже с этим связывался - может что посоветовать?? Спасибо.
#1 
Программист посетитель18.12.06 09:47
NEW 18.12.06 09:47 
in Antwort dave2 16.12.06 11:05
Странный вопрос :)
Подбери условие выхода из цикла :)
Все зависит от задачи... Ну или ищи способ определения количества свободной памяти на стеке и если ее (свободной памяти на стеке) мало, то выходи из рекурсии.
#2 
  Chipolino знакомое лицо18.12.06 18:24
NEW 18.12.06 18:24 
in Antwort Программист 18.12.06 09:47
+ в некоторых компиляторах/интерпретаторах ограниченая глубина рекурсии ,
например у пайтона 1000 , по умолчанию.
#3 
Murr коренной житель18.12.06 18:52
Murr
NEW 18.12.06 18:52 
in Antwort Chipolino 18.12.06 18:24
в некоторых компиляторах ... ограниченая глубина рекурсии
------
Не видел такого. Есть ограничения на размер стека, но не на количество рекурсивных вызовов функции...
#4 
  Chipolino местный житель21.12.06 19:57
NEW 21.12.06 19:57 
in Antwort Murr 18.12.06 18:52
А я видел , у Пайтона .
#5 
Murr коренной житель21.12.06 21:19
Murr
NEW 21.12.06 21:19 
in Antwort Chipolino 21.12.06 19:57
Это тебе от разработчика:
> > The SRE recursion removal patch is finally in. Please, let me know
> > if you find any problems.
>
> What is the purpose of the USE_RECURSION #define? It looks to me like
> you have added a lot of dead code; I recommend to remove all this code.
If you enable USE_RECURSION it will become recursive again, so it's
nice to see if some problem is related to the non-recursive algorithm
or not, and makes it easy to understand to change made.
The "dead" code you're talking about is probably the unused macros,
right? I've used them in some ideas, and gave up later. OTOH, they may
be used in further extensions. If you don't mind, I'd rather leave them
there, than thinking about it again if I need it. But if they're really
a problem, well, I'll remove. Just let me know.

#6