¿Puede alguien explicar la inducción matemática para probar un método recursivo? Soy estudiante de informática de primer año y todavía no he tomado Cálculo (lo he tenido hasta Trig). Lo entiendo, pero tengo problemas cuando me piden que escriba una prueba de inducción para un método recursivo.¿Alguien puede explicar la inducción matemática (para probar un método recursivo)
Respuesta
He aquí una explicación de por ejemplo:
Digamos que tiene la siguiente fórmula que desea probar:
sum(i | i <- [1, n]) = n * (n + 1)/2
Esta fórmula proporciona una formulario cerrado para la suma de todos los enteros entre 1
y n
.
Comenzaremos por probar la fórmula para el caso base simple de n = 1
. En este caso, ambos lados de la fórmula se reducen a 1
. Esto a su vez significa que la fórmula es válida para n = 1
.
A continuación, vamos a demostrar que si la fórmula es válida para un valor n
, entonces se cumple para el siguiente valor de n
(o n + 1
). En otras palabras, si se cumple lo siguiente:
sum(i | i <- [1, n]) = n * (n + 1)/2
A continuación, el siguiente también es cierto:
sum(i | i <- [1, n + 1]) = (n + 1) * (n + 2)/2
Para ello, vamos a empezar con la primera parte de la última fórmula:
s1 = sum(i | i <- [1, n + 1]) = sum(i | i <- [1, n]) + (n + 1)
Es decir, la suma de todos los enteros entre 1
y n + 1
es igual a la suma de enteros entre 1
y n
, más el último término n + 1
.
Como nos estamos basando esta prueba con la condición de que la fórmula es válida para n
, podemos escribir:
s1 = n * (n + 1)/2 + (n + 1) = (n + 1) * (n + 2)/2 = s2
Como se puede ver, hemos llegado a la segunda parte de la fórmula que estamos tratando de probar, lo que significa que la fórmula realmente se mantiene.
Esto completa la prueba inductiva, pero ¿qué significa realmente?
- La fórmula es correcta para n = 0.
- Si la fórmula es correcta para
n
, entonces es correcto paran + 1
.
De 1 y 2, podemos decir: si la fórmula es correcta para n = 0, entonces es correcta para 0 + 1 = 1
. Como probamos el caso de n = 0
, entonces el caso de n = 1
es correcto.
Podemos repetir este proceso anterior de nuevo. El caso de n = 1
es correcto, entonces el caso de n = 2
es correcto. Este razonamiento puede ir ad infinitum; la fórmula es correcta para todos los valores enteros de n> = 1.
Primero, necesitas una funda de base. Entonces necesitas un paso inductivo que sea cierto para algunos pasos n. En su paso inductivo, necesitará una hipótesis inductiva. Esa hipótesis es la suposición que necesita haber hecho. Por último, utilice esa suposición para demostrar el paso n + 1
inducción! = Calc !!!
Puedo obtener N chicos borrachos con 10 * N cervezas.
Caso Base: 1 chico
puedo conseguir uno borracho con 10 cervezas
paso inductivo, dado p (n) demostrar p (n + 1)
puedo conseguir i chicos Borracho con 10 * cervezas, si agrego a otro chico, puedo emborracharlo con 10 cervezas más. Por lo tanto, puedo obtener i + 1 chicos ebrios con 10 * (i + 1) cervezas.
p (1) -> p (i + 1) -> p (i + 2) ... p (inf)
Matemática Discreta es fácil!
jaja, -1 por usar chicos borrachos –
+999 por usar chicos borrachos como ejemplo. –
- 1. ¿Alguien puede explicar este método de Javascript?
- 2. puede alguien explicar la diferencia
- 3. ¿Alguien puede explicar OAuth?
- 4. ¿Alguien puede explicar esta sintaxis?
- 5. ¿Alguien puede explicar el attr?
- 6. ¿Alguien puede explicar la detección de colisiones por píxel?
- 7. ¿Alguien puede explicar Microsoft Unity?
- 8. ¿Alguien puede explicar la paradoja Class.superclass.class.superclass?
- 9. ¿Alguien puede explicar el eclipse.p2.profile
- 10. plantilla ¿Vínculo externo? ¿Alguien puede explicar esto?
- 11. ¿Alguien puede explicar este truco 'doble negativo'?
- 12. ¿Alguien puede explicar el archivo Spring web.xml?
- 13. ¿Alguien puede explicar cómo funciona esto?
- 14. ¿Alguien puede explicar que debe anular?
- 15. ¿alguien puede explicar cómo funciona este stopPropagation?
- 16. ¿Alguien puede explicar el atributo HTML5 aria- *?
- 17. ¿Alguien puede explicar el mapeo de servlets?
- 18. ¿Alguien puede explicar mappedBy in hibernate?
- 19. ¿Alguien me puede explicar las compensaciones hexadecimales?
- 20. ¿Puede alguien explicar este uso C++ referencia
- 21. if (NSOrderedAscending == result) alguien puede explicar esto
- 22. ¿Alguien puede explicar cómo usar FastTags
- 23. ¿Puede alguien explicar Cursor en Android?
- 24. C# ¿Alguien puede explicar esta lógica booleana
- 25. ¿Alguien puede explicar esto: 0.2 + 0.1 = 0.30000000000000004?
- 26. ¿Alguien me puede explicar métodos anónimos?
- 27. ¿Alguien puede explicar sobre esta consulta SQL
- 28. ¿Alguien puede explicar este código de Java
- 29. ¿Alguien puede explicar para qué sirven los intermediarios de mensajes?
- 30. ¿Alguien puede explicar cómo BCrypt verifica un hash?
¿Has visto en.wikipedia.org/wiki/Mathhematical_induction/...? Tiene algunos ejemplos ilustrativos. –
No vi eso, pero parece que podría ser útil. ¡Gracias! –