OriginalGriff
Рекурсия проста для понимания: смотрите раздел "рекурсия", и вам все станет ясно!
Ваша функция вызывает себя с различными параметрами и возвращается к себе со значением каждый раз, когда она вычисляется.
Посмотрите, что происходит с вашим кодом, когда вы передаете определенные значения: a == 2, b == 3
1) 2, 3 : b - это не 1, поэтому вы вызываете функцию снова, с a == 2, b == 2
1.1) 2, 2 : b не равно 1, поэтому вы вызываете функцию снова, с a == 2, b == 1
1.1.1) 2, 1 : b - это единица, поэтому вы возвращаете a: 2
1.2) возвращается к 2, 2: и возвращает 2, которые вы получили из 1.1.1, плюс 2 : 4
2) возвращается к 2, 3: и возвращает 4, которые вы получили от 1.2, плюс 2 : 6
Таким образом, вся функция возвращает 6.
Это плохой пример рекурсии - цикл намного проще и эффективнее, - но просто выполните его с помощью отладчика, и вы поймете, что я имею в виду.
Member 13949923
Спасибо Вам за отличный ответ. Кажется, теперь я все понял. Поправьте меня, если я ошибаюсь. В основном процесс умножения происходит через параметр "а", добавляемый к результату "мульт(а, в-1)" рекурсивным действием, поскольку "мульт(а, в-1)" является меньшей функцией внутри своей собственной большей зеркальной функции def " мульт(а, в)".
OriginalGriff
Забудьте термины "меньшая функция" и "зеркальная функция" - это одна и та же функция, вызываемая рекурсивно.
Подумайте об этом: умножение-это повторяющееся сложение:
x * y = x + x + x ... x + x
где есть "y x" на правой стороне есть:
4 * 3 = 4 + 4 + 4
7 * 2 = 7 + 7
Это все, что делает ваша рекурсивная функция: вычитание единицы, чтобы обеспечить подсчет того, сколько раз ей нужно вызвать себя.