Я хочу реализовать функцию хвостовой рекурсии для вычисления биномиального коэффициента двух чисел n и k. Если k > n, то следует вернуть 0. Аналогично, если n == k или k == 0, он должен вернуть 1. Я реализовал это рекурсивно следующим образом, но, очевидно, это не использует логику хвостового вызова, но я не могу понять, как соединить их вычисления в один рекурсивный вызов. Будем очень признательны за любую помощь, а также за объяснение того, как перейти от обычной рекурсивной функции к реализации хвостовой рекурсии. Спасибо!
public static long binomCoeffRecursive(int n, int k) {
// TODO: Implement binomCoeff recursively.
if (n == k) {
return 1;
}
if (k > n) {
return 0;
}
if (k == 0) {
return 1;
}
return binomCoeffRecursive(n-1, k-1) + binomCoeffRecursive(n - 1, k);
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... on-in-java
Хвостовая рекурсивная функция биномиального коэффициента в Java ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как преобразовать уравнение биномиального распределения в JavaScript?
Anonymous » » в форуме Javascript - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-