Me pregunto si existe alguna regla/esquema de proceder con la corrección del algoritmo de prueba? Por ejemplo, tenemos una función $ F $ definido en los números naturales y se define a continuación:Estrategias generales de prueba para mostrar la corrección de las funciones recursivas?
function F(n,k)
begin
if k=0 then return 1
else if (n mod 2 = 0) and (k mod 2 = 1) then return 0
else return F(n div 2, k div 2);
end;
donde $ n \ \ text {div} \ 2 = \ left \ lfloor \ frac {n} {2} \ right \ rfloor $
la tarea es demostrar que $ F (n, k) = \ begin {cases} 1 \ Leftrightarrow {n \ choose k} \ \ text {mod} \ 2 = 1 \ 0 \ text {else} \ end {cases} $
No parece muy complicado (¿estoy equivocado?), pero no sé cómo se debe estructurar este tipo de pruebas. Estaría muy agradecido por la ayuda.
Me gusta este mejor que mi respuesta. Probablemente sería bueno agregar una prueba de que los 4 casos derivados cubren NxN, para justificar la conclusión inductiva. –
Me gusta más este enfoque. Pero todavía no es simple para mí, cómo usar la base de inducción para mostrar estas implicaciones. – xan
¿Hay un error tipográfico en f (2 * n + 1, k)? Debería ser f (2 * n + 1, 2 * k)? – xan