Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Как установить лимит рекурсии в питоне при больших вычислениях?

  1. Как установить лимит рекурсии в питоне при больших вычислениях?

    Привет, народ! У меня тут одна задачка: пишу скрипт на питоне, который использует рекурсию для обработки данных. Столкнулся с проблемой, когда питон выбрасывает ошибку StackOverflow, потому что, видимо, рекурсия зашкаливает. Слышал, что есть способ установить лимит рекурсии в питоне, но не въезжаю как это сделать. Кто-нибудь может объяснить, как установить лимит рекурсии в питоне, и желательно с примерами кода? Еще, есть ли подводные камни при изменении этого лимита? Спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Йо! Чтобы установить лимит рекурсии в питоне, юзаем модуль sys. Вот тебе пример кода:
    Программный код:
    import sys

    # Устанавливаем лимит
    sys.setrecursionlimit(2000)

    # Тестовая функция
    def rec_countdown(n):
    if 
    <= 0:
    print(
    'Бум!')
    else:
    print(
    n)
    rec_countdown(n-1)

    rec_countdown(1950
    Но имей в виду, если слишком завысишь лимит, можешь нарваться на сжирание всей оперативки и крашнуть программу. Будь аккуратен, бро!

  4. Цитата Сообщение от Gretel
    Йо! Чтобы установить лимит рекурсии в питоне, юзаем модуль sys. Вот тебе пример кода:
    Программный код:
    import sys

    # Устанавливаем лимит
    sys.setrecursionlimit(2000)

    # Тестовая функция
    def rec_countdown(n):
    if 
    <= 0:
    print(
    'Бум!')
    else:
    print(
    n)
    rec_countdown(n-1)

    rec_countdown(1950
    Но имей в виду, если слишком завысишь лимит, можешь нарваться на сжирание всей оперативки и крашнуть программу. Будь аккуратен, бро!
    Спасибо за пример с кодом! А есть какие-то рекомендованные значения для лимитов или все индивидуально надо подбирать?

  5. Альо! Ставь лимит как Тимур рассказал, и кайфуй. Только вот ты потести с разными значениями, чтобы на своей задаче выяснить, какое лучшее - а то фиг знает, сколько там жрать будет твоей памяти!

  6. Цитата Сообщение от Гэндальф
    Альо! Ставь лимит как Тимур рассказал, и кайфуй. Только вот ты потести с разными значениями, чтобы на своей задаче выяснить, какое лучшее - а то фиг знает, сколько там жрать будет твоей памяти!
    Кек, спасибо! Понял, что надо осмотрительно подходить. Потестю разные лимиты.

  7. Йоу, чувак! включай импорт sys и бахай sys.setrecursionlimit() чтоб задать лимит. Примерно так:
    Программный код:
    import sys
    sys
    .setrecursionlimit(1500
    Только будь в курсе, слишком высокий лимит может вести к OutOfMemory. Короче, без фанатизма.

  8. Цитата Сообщение от MagicSwordsman
    Йоу, чувак! включай импорт sys и бахай sys.setrecursionlimit() чтоб задать лимит. Примерно так:
    Программный код:
    import sys
    sys
    .setrecursionlimit(1500
    Только будь в курсе, слишком высокий лимит может вести к OutOfMemory. Короче, без фанатизма.
    Окей, понял! Спасибо за предостережение! Пока попробую на 1500.

  9. Чувак, вообще проще переписать алгоритм на нерекурсивный, если такое повторяется часто. Таким макаром, можно избежать головняков с лимитом, ну и фазу не срывешь xD.

  10. Цитата Сообщение от SofiaWarrior
    Чувак, вообще проще переписать алгоритм на нерекурсивный, если такое повторяется часто. Таким макаром, можно избежать головняков с лимитом, ну и фазу не срывешь xD.
    О, а нерекурсивный алгоритм - это тема. Может, так и сделаю, если с лимитами напряг будет. Спасибо за совет!

Страница 1 из 2 12 ПоследняяПоследняя