Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 31.01.2025
Сообщений: 6

Не работает рекурсивная функция

31.01.2025, 14:53. Показов 1320. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача вроде простая, но я новичок в питоне. Помогите, пожалуйста

Итак

Рассмотрим золотую жилу из n строк и m столбцов, представленную таблицей, где:
• каждая ячейка содержит положительное значение, которое указывает количество золота, которое майнер извлекает за прохождение через эту ячейку;
• майнер начинает с первого столбца, но с любой строки;
• майнер может двигаться только вперед в трех направлениях: вправо, вправо вверх или вправо вниз
Цель состоит в том, чтобы найти максимальное количество золота, которое майнер может собрать в соответствии с ячейкой, в которой он заканчивает свой путь (одна из ячеек справа).

Написать рекурсивную функцию mineur_max(M,i,j), принимающую массив M в качестве параметра, представляющий жилу в виде таблицы и два целых числа i и j, такие, что (i,j) представляют ячейку таблицы и возвращают значение лучшего маршрута, чтобы добраться до ячейки (i,j)

Вот, что я написала :

Python
1
2
3
4
5
6
7
def mineur_max(M,i,j):
    if (j > 0) and (i == 0):
        return (M[i][j] + max(mineur_max(M,i,j-1), mineur_max(M,i+1,j-1)))
    if (j > 0) and (0 < i < len(M)-1):
        return (M[i][j] + max(mineur_max(M,i,j-1), mineur_max(M,i+1,j-1), mineur_max(M,i-1,j-1)))
    if (j > 0) and (i == len(M)-1):
        return (M[i][j] + max(mineur_max(M,i,j-1), mineur_max(M,i-1,j-1)))
А вот мой тест :

Python
1
2
3
4
5
6
M = [[5, 1, 4, 2],
     [4, 7, 2, 1],
     [3, 2, 3, 3],
     [1, 8, 1, 4]]
 
mineur_max(M, 3, 3)
в результате должно получиться 19, что соответствует наилучшему маршруту (0,0), (1,1), (2,2), (3,3) (то есть 5+7+3+4=19), а у меня выдается ошибка '>' not supported between instances of 'NoneType' and 'NoneType'

Помогите, пожалуйста, решить задачу и объясните мне где я ошибаюсь
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.01.2025, 14:53
Ответы с готовыми решениями:

Рекурсивная функция
Выполнить в виде рекурсивной функции

Рекурсивная функция
Привет Решил начать учить языки программирования. В задачнике нашел такую штуку - Используя рекурсивную функцию найти сумму четных...

Рекурсивная функция
Доброго времени суток! Не могу разобраться с выходом из рекурсивной функции, а именно: функция перебирает все возможные значения для...

2
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
31.01.2025, 15:20
В функцию после всех if добавить строчку return M[i][j], так как нет вычисления функции при j=0
3
0 / 0 / 0
Регистрация: 31.01.2025
Сообщений: 6
31.01.2025, 16:11  [ТС]
Точно ! Большое спасибо !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.01.2025, 16:11
Помогаю со студенческими работами здесь

Рекурсивная функция
Помогите, пожалуйста, написать рекурсивную функцию, сколько не читал, не могу я её понять. un_lol_en(line: str, count: int) -&gt; str...

Рекурсивная функция
Разработать рекурсивную функцию

Рекурсивная функция
Дан список из вещественных чисел. Найти минимальный элемент списка,, используя вспомогательную рекурсивную функцию, находящую минимум...

Рекурсивная функция
Вообщем изучаю рекурсию, столкнулся с задачей, вывести сумму всех натуральных чисел в заданном промежутке через рекурсию. Прошу просто...

Рекурсивная функция
Почему, когда я ввожу неправильную дату, а потом правильную, функция возвращает то, что я ввел в первый раз (неправильную дату)? def...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru