Найти - Пользователи
Полная версия: Помогите оптимизировать алгоритм
Начало » Python для новичков » Помогите оптимизировать алгоритм
1
Enfoire
Разбиение числа на слагаемые. Нужно оптимизировать по памяти и по скорости, подскажите, что предпринять? Или может как - нибудь иначе, тем же перебором лучше решается?. Прикрепил скрин с алгоритмом.

 def split(n, m, k, response):
    
    if n == 0 and m == 0:
        response.append(1)
    if (0 < m <= n) is False or (k * m >= n) is False:
        return
    return split(n, m, k - 1, response), split(n - k, m - 1, k, response)
    
response = []
n = int(input())
split(n, 4, n - 3, response)
print(len(response))

doza_and
Enfoire
Нужно оптимизировать по памяти и по скорости
Это сродни попросить чтобы и волки были сыты и овцы целы. Оптимизация выполняется по одному критерию. Или память или скорость. Определитесь.

Enfoire
что предпринять?
Судя по вашему посту ничего. Вы не написали что вас не устраивает в вашем решении.

Смею предположить что от вас хотят ровно то что задании у вас написано. Применить метод динамического программирования с мемоизацией. Ваша реализация к этому не имеет никакого отношения.
Enfoire
doza_and
метод динамического программирования с мемоизацией
Был бы очень благодарен, если бы Вы показали реализацию обозначенными методами. Сел бы сразу разбираться что к чему там.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB