Aquí tienes dos preguntas concretas, una sobre la exponenciación por cuadrados repetidos, y otra sobre en qué rama de las matemáticas hacerlo.
En primer lugar, quieres una prueba de que la exponenciación se puede realizar mediante la elevación al cuadrado repetida. Por supuesto, te das cuenta de que la exponenciación $a^b$ puede calcularse multiplicando $b$ copias de $a$ . Otra forma de decir esto a la SICP de Sussman, es que:
$$a^b = a \times a^{b-1}, a^0 = 1$$
(esto no es más que una forma recursiva de cadena en una lista de $a$ de longitud $b$ ).
El algoritmo de cuadratura repetida consigue la exponenciación porque (y creo que esto es lo único importante por lo que tienes curiosidad) también consigue una lista de $a$ de longitud $b$ Sólo que de una manera un poco más complicada. La explicación es la siguiente: $b$ es par o impar (bastante obvio, ¿verdad?). Tomemos esos dos casos por separado.
-
Si $b$ es par, entonces $a^b = a^{b/2} \times a^{b/2}$ ¿cierto? (porque $b$ es incluso se puede dividir por 2, y también, $a^x \times a^y = a^{x+y}$ una propiedad básica de los exponenciales. (Obsérvese que $b/2$ puede ser par o impar, no lo sabemos).Y esto es lo mismo que $a^{b/2}$ al cuadrado. Ahí es donde las repetidas cuadrando viene de.
-
si $b$ es impar, entonces $a^b = a \times a^{b-1}$ (la fórmula habitual). (Tenga en cuenta que $b-1$ debe ser incluso ahora).
Porque $b$ es par o impar (y nunca ambos) esto cubre todos los casos (no hay más posibilidades que par o impar) y podemos siempre Obtenga $a^b$ utilizando algunos exponentes menores.
Y como siempre estamos obteniendo exponentes más pequeños, nosotros siempre bajar a un exponente de 1, sin importar el exponente.
¡Y ya está!
(¿por qué querríamos complicar las cosas de esta manera? Bueno, (a menudo) estamos dividiendo por 2, por lo que el número de multiplicaciones es como el logaritmo de $b$ en lugar de $b-1$ (que es mucho menos).
En cuanto a su segunda pregunta, ¿qué rama de las matemáticas se necesita para ello? Los hechos que utilizamos fueron algunas propiedades de la exponenciación, algo de teoría de números (propiedades de impar y par) y algo de aritmética. Todo esto suele enseñarse, al menos en el sistema educativo estadounidense, en el primer o segundo año de álgebra de la escuela secundaria.
Hay un paso de la prueba que es más o menos el pegamento lógico que lo mantiene todo unido y pone la última pequeña pieza del rompecabezas para resolverlo y ese fue el último paso, que siempre se obtiene un exponente menor y se llega a 1. La matemática para eso es la inducción, que es exactamente lo que Sussman está enseñando con este ejemplo. La inducción se enseña a menudo en la escuela secundaria en varias clases, tal vez en el álgebra, tal vez en el precálculo.
Una nota al margen: si sabe de binarios, considere $b$ en binario. El algoritmo del cuadrado repetido sigue entonces los dígitos binarios hacia atrás. Si $b$ termina en 0 (es par) entonces divide $b$ por 2 y elevar al cuadrado el resultado. Si $b$ termina en 1, entonces cambia el 1 por un 0 (resta 1) y multiplica por uno $a$ . A continuación, trabaje recursivamente en los dígitos restantes.
0 votos
No sabes por qué qué ¿es correcto?
0 votos
@Mitch No sé por qué los algoritmos son correctos.
0 votos
¿Qué nivel de matemáticas alcanzaste en el instituto, y cómo te impide la ceguera aprender matemáticas (no puedes ver los símbolos)?
0 votos
@cheesyfluff "¿Qué nivel de matemáticas llegaste a tener en el instituto?" - Sólo cosas básicas de álgebra hasta cantidades () y un poco de funciones.
0 votos
La multiplicación es una suma repetida. Sin embargo, la división no es una sustracción repetida. En cuanto a la exponenciación, no es más que una multiplicación repetida. Aparte de estas cosas básicas, no tengo ni idea de qué tipo de respuesta estás buscando.
1 votos
@cheesyfluff Yo usaba braille en el colegio, pero ahora usaba un lector de pantalla. Ambos no pueden leer símbolos complejos, me baso en ejemplos de código de programación para entenderlos.
1 votos
Los números de Fibonacci se definen simplemente así, mientras que la exponenciación por cuadratura sucesiva funciona porque $(a^m)^n = a^{mn}$ para cada uno de los valores no nulos de $a$ (en caso de que no pueda leer las fórmulas MathJax con su lector de pantalla, es
(a^m)^n = a^(mn)
). En general, el problema de crear algoritmos que computen objetos o funciones matemáticas conocidas es muy amplio y suele abordarse en la parte de las matemáticas a la que pertenecen esos objetos o funciones.0 votos
@Eggy básicamente como se logran las soluciones matemáticas. No quiero decirle a la gente "La fórmula es ", me gustaría decirles "La fórmula funciona porque "
0 votos
¿Preguntas por el fibonacci o la exponenciación o la suma o qué? El fib se define así sin más, no hay justificación que valga. El único algoritmo que diste para la exponenciación por cuadratura repetida no es obvio pero hace tienen una justificación. La forma en que has formulado la pregunta es demasiado amplia: "¿Cómo funciona todo esto?". Tienes que especificar para que tengamos una oportunidad razonable de responder.