2016-03-23 7 views
1

Пожалуйста, помогите мне понять эту формулу (на случай, если кто-нибудь задается вопросом, то есть алгоритм Needleman-Wunsch), я должен написать код, который использует рекурсию, но я не понимаю, как это сделать, у меня уже есть полная динамическая версия написана, поэтому я знаю, как работает алгоритм, но я понятия не имею, как реализовать его с помощью рекурсии/стека. Я открыт для любого предложения.MiPS ASM Проблемы рекурсивного понимания?

Это формула:

Formula

ответ

1

Неясно, что у вас есть проблемы с. Эта формула уже рекурсивна, ничего особенного. Вы знаете, как создавать локальные переменные? Вы будете нуждаться в 3:

local i; 
local j; 
local max = F(i-1, j-1); 
max += S(Ai, Bj); 
register tmp = F(i, j-1) + d; 
if (tmp > max) max = tmp; 
tmp = F(i-1, j) + d; 
if (tmp > max) max = tmp; 
return max; 

PS: предположительно у вас есть какое-то условие для начальных элементов, так что рекурсия не бесконечна.