Pregunta 2.d y 2.e · Prácticas de programación UOC 2021
Tema: Análisis de complejidad y eficiencia · Del examen Examen de síntesis de Prácticas de programación (Convocatoria de enero 2021) (2021)
Enunciado
Analiza el siguiente fragmento programado en lenguaje C perteneciente a un procedimiento denominado guess:
int guess(int x)
{
int result;
assert(x >= 0);
if (x == 0) // (1)
result = 1; // (2)
else // (3)
result = guess(x - 1) * x; // (4)
return result; // (5)
}
d)
[15%] Efectúa el estudio formal del coste computacional (complejidad temporal) correspondiente al diseño recursivo original a través de su relación de recurrencia detallada paso a paso.
e)
[5%] En caso de que se concibiera una variante de este método cuyo orden de complejidad temporal resultase de clase logarítmica , razona en un párrafo breve de 4 a 5 líneas la conveniencia o inconveniencia de sustituir la implementación actual por dicha propuesta.

Solución
Según los criterios oficiales de corrección
d) Orden de complejidad asintótica obtenido
Solución: / / Lineal
d) [15%] Efectúa el estudio formal del coste computacional (complejidad temporal) correspondiente al diseño recursivo original a través de su relación de recurrencia detallada paso a paso.
Solución: Relación de recurrencia: Desarrollo por sustitución regresiva: Para el caso base :
e) Decisión respecto a una alternativa logarítmica
Solución: Inconveniente
e) [5%] En caso de que se concibiera una variante de este método cuyo orden de complejidad temporal resultase de clase logarítmica O(log n), razona en un párrafo breve de 4 a 5 líneas la conveniencia o inconveniencia de sustituir la implementación actual por dicha propuesta.
Solución: Resultaría inconveniente porque el tipo `int` desborda a partir de (). Al estar acotado a un máximo de 12 iteraciones, el coste es despreciable y una alternativa logarítmica solo añadiría sobrecarga de control y constantes ocultas.
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.
‹ Pregunta 2.d · 2023 · Pregunta 2.d y 2.e · 2021 ›