Hola, intente resolver el ejercicio 8 , pero mientras traducia las ecuaciones a C me quedo la duda de como asegurar que la funcion que estaba definiendo era efectivamente una funcion. O sea como me aseguro la terminacion, no superposicion y exhaustividad , porque tengo 2 parametros sobre los que estoy aplicando la recursion. Con esto me quedo tambien la duda cual de los esquemas de recursion estoy usando.
Ademas trate de hacer la funcion usando solo recursion en m, pero no pude. Hay alguna forma de llevar la funcion a una recursion solo en m?
Dejo el codigo por si es necesario:
// Precond : m >= n >= 0
// Postcond : Combinaciones de m tomadas de n
uint combinaciones(uint m, uint n) {
// Casos Base:
if (n == 0) return 1;
else if (n == 1) return m;
else if (n == m) return 1;
// Casos Inductivos:
else return combinaciones(m - 1,n) + combinaciones(m - 1, n - 1);
}