|
|
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Поймал я тут вчерась Лохову ссылку, да и сунул http://www.firststeps.ru/vba/excel/r.php?30 ]туда свой шибко любопытный нос (носик, носяру, носище, рубильник, шнобель... как правильно?). А там!!! Батюшки!!! Переполнением стека (стейка, стука, стока) грозятся! Вот и думаю "Рекурсить или не рекурсить?". А ну как переполнение, что польется? И как спасаться? Буду весьма признателен за успокоение от мрачных мыслей. Надеюсь (уповаю, жажду, мечтаю) на помощь опытных товарищей, съевших на ней собаку. За сим, вечно Ваш. Витал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 13:10 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Мой совет.Если можешь обойтись без рекурсии-обходись. А если нет-то нет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 13:55 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 13:59 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Переполнение стека у тебя возникнет при о-о-очень большой глубине рекурсии. В реальной жизни так не бывает. Если такое возникнет - значит ты где-то в алгоритме ашипся и заloopился случайно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:03 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Значит 60-70 рекурсий потянет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:13 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Как можно бояться новых методов в программировании? Волков бояться - в лес не ходить. Рекурсия - вещь классная, при обработке иерархических записей (меню, дерева) трудно найти более правильное решение. Использование рекурсии резко уменьшает массу кода, следовательно и количество возможных ошибок. Переполнение стека можно избежать разного рода счетчиками или правильной конструкцией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:14 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Вообщето любую рекурсию можно переписать сохраняя промежуточный результат во временных таблицах. Получется несколько громоздко , но работает быстрее (по крайней мере для MSSQL) и никаких переполнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:14 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
progist Переполнение стека можно избежать разного рода счетчиками или правильной конструкцией. А подробнее?? Если можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:21 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Значит 60-70 рекурсий потянет? Код: plaintext 1. 2. 3. У меня сваливается на 4716-й итерации. Хм... Я себе предсавил дерево с 4716 уровнями вложености... Это ж какой тривью нужон... 2 progist Переполнение стека можно избежать разного рода счетчиками или правильной конструкцией А зачем??? Если тебе столько не хватило - бог тебе судья, пусть прога в ошибку валится и работу прекращает. Ничего лучше все равно не получится сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:32 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
честно говоря, про счетчики только читал и то давно. Сам всегда обхожусь без них. Если рекурсия нужна для прожождения какой-либо ветви иерарх... структуры, она обязательно кончится и переполнения не будет. Чем меньше расход памяти процедурой (малое количество переменных и т.д.), тем больше вызовов можно выполнить. Но повторяю, ни разу не сталкивался с проблемой переполнения и не вникал в нее. Максимум, что обрабатывал - до 10 - 15 влоожений в таблицах до 100 000 записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:32 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Всем огромный сенька!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:35 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
отвечал Виталу, а получилось еще и Лоху На рекурсию не тянет, больше похоже на полиморфизм, наверное, или перегруженную функцию :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:44 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Чем меньше расход памяти процедурой (малое количество переменных и т.д.) А ежели перед вызовом очищать переменные (или объявлять заново), это как-то повлияет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:49 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
2 лох кстати, попробуй эту же функцию, но обяви ее не как Variant, а как integer или Long Количество интераций должно увеличиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:51 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
2 vital Лох наглядно показал сколько может быть. Забудь об этой проблеме, когда возникнет - пиши, будет интересно посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 15:01 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
А если так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 15:01 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
попробуй, потом расскажешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 15:08 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
2 VIG еще штук двадцать переменных По идее локальные переменные не должны влиять на стек. Проверять лениво... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 15:20 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
2 Л.П Еще как влияют,даже если они только обьявлены и нигде не используются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 15:27 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Да уж... действительно влияют... Поделом мне дураку. Не фиг лениться. Кто бы мог подумать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 15:50 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
Еще как влияют,даже если они только обьявлены и нигде не используются А параметры? Если не объявлять локальные переменные, а передавать как параметры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 16:03 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
У меня пример ЛП завалился на 5217 итерации. У кого-нибудь м.б. завалиться и на 100 - хотя и такое дерево представить сложно. Если же добавить локальную перемную, то п%здец наступит быстрей (a = Space(15000000) на 27 шаге исчерпано вся память ПК (1Гб)) - неплохой пример тестирования менеджера управления памитью виндоуса :) Таким образом: рекурсии применять можно, но ... осторожно В некотрых случаях без них никуда (например, если не ошибаюсь, расчет факториала) == А каков размер стека (ошибка 28. Out of stake space)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 16:04 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
В некотрых случаях без них никуда (например, если не ошибаюсь, расчет факториала) Расчет факториала наоборот является ярким примером хвостовой рекурсии, когда рекурсивный шаг - последнее действие в функции. От такого рода рекурсии очень легко (и нужно) избавится обычным циклом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Хотя согласен, что есть случаи, когда без них - никуда. Вообще всем, кто интересуется данным вопросом я бы порекомендовал книжку Рода Стивенса "Алгоритмы на VB" (название примерное, точно не помню). Там всё популярно написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 16:13 |
|
||
|
Помогите!!!! Меня Лох напугал. Для любопытных - это про рекурсию
|
|||
|---|---|---|---|
|
#18+
2Витал А параметры? Если не объявлять локальные переменные, а передавать как параметры? тоже самое-В стек,сэр! 2Сенин Виктор В некотрых случаях без них никуда (например, если не ошибаюсь, расчет факториала) Ой ли? Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 16:18 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32220842&tid=1680226]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 348ms |

| 0 / 0 |
