-
Cómo programar para exponentes
-
Programación para un exponente entero positivo es simple. Sólo hay que establecer un bucle que se multiplica la base del exponente por sí mismo y repetir el bucle para corresponder al número exponente. La programación informática difícil viene en el trato con exponentes que no son números enteros.Instrucciones
1 Suponga que su base es 2 y el exponente es un número racional, no entero como 1.542. Traducir el decimal en una fracción: 1542/1000.
2 Formar la función f (x) = 2 ^ 1542-x ^ 1000, donde el acento circunflejo (^) se refiere a la exponenciación. El objetivo de aquí en adelante es encontrar x que resuelve f (x) = 0. Así que el problema de exponenciación se ha reducido a un simple problema de raíz de problemas, para el que existen varios algoritmos. ¿Cómo surgió la ecuación viene? 2 ^ 1.542 es desconocido. Así que nos pusimos a x. Por lo tanto, 2 ^ 1.542 = x. Así que 2 ^ (1542/1000) = x. El aumento de ambos lados de la ecuación para un exponente de 1000 da [2 ^ (1542/1000)] ^ 1000 = x ^ 1000, o 2 ^ 1542 = x ^ 1000.
3 Resolver para x usando un algoritmo de búsqueda de raíz estándar, al igual que el método de bisección. El método de bisección encuentra una x1 y x2 que dan una f (x) signos opuestos. (. Ver el 1 y 2 como subíndices Son conjeturas secuenciales en qué valor de x va a resolver f (x) = 0.) A continuación, el punto medio (x3) de x1 y x2 se encuentra: x3 = (x1 + x2) / 2 . Sea cual sea x3 signo hace que la función f (x), que se descartan que sea uno de X1 y X2 dio el mismo signo de f (x).
Por ejemplo, elegir x1 = x2 = 2 y 4. Continuando con la función anterior, f (2) = 2 ^ 1542-2 ^ 1000 es claramente positiva, y f (4) = 2 ^ 1542-4 ^ 1000 es claramente negativo. x3 = 3 es el punto medio entre x1 y x2. f (3) = 2 ^ 1542-3 ^ 1000 es negativo. Así que tirar x2 = 4 y encontrar el punto medio entre x1 y x3.
4 Mantener el cálculo de los puntos medios y tirar del mismo signo x de hasta f (x) es lo más cercano a 0 a medida que lo necesita ser, es decir, hasta que el valor absoluto de f (x) es menor que la tolerancia predeterminada que haya programado en .
Consejos y advertencias
- Si usted no encuentra los pasos anteriores de un método claro de traducir esto en el código, lo veo de esta manera: Estos pasos se toman de la base B, el numerador N del exponente, el denominador del exponente D y un número máximo de significativa Figuras S, y entonces identifica con la X que hace que f (x) = B ^ (N * 10 ^ S) -x ^ (10 ^ S) tan cerca de cero como su tolerancia requiere. En cuanto a la determinación de x1 y x2, a la vuelta de la exponente arriba y hacia abajo para obtener x1 = 2 ^ 2 y x2 = 2 ^ 1.
- Programación de los números irracionales es una cuestión de aproximación. Sin embargo, si el usuario introduce un número irracional como el correo o pi, ya se habrá truncado después de un cierto número de decimales ya. Por ejemplo, el número pi sería procesado como 3,141593 -es decir, redondeado a seis lugares decimales.