Hola,
Quería hacer un programa que eleva un numero cualquiera a cualquier potencia.
Se que se puede hacer incluyendo la libreria math.h y usando la funcion pow.
Sé que también se puede hacer con un bucle, haciendo que multiplique ese numero tantas veces sea la variable X ...
Pero me preguntaba si hay alguna expresión matemática para hacerlo, por ejemplo,
tipo ( a*b ) + ( x% ( c* ( a/2 ) ) )....
Estuve pensando todo el día ( ayer ), pero no se me ocurrió nada, se lo pregunte a varios amigos y me dijeron que era imposible, pero nada lo es ¿no?.
Salu2!
https://es.wikipedia.org/wiki/Potencia_%28matem%C3%A1tica%29
Dulces Lunas!¡.
Gracias por la respuesta.
Pero no dice nada de una expresión, explica pero no pone una funcion, o al menos
eso creo.
Intentare leerlo otra vez.
Salu2!
mmm...
(https://upload.wikimedia.org/wikipedia/es/math/3/4/c/34c04a6ca2ac051a6e46494f613dfad2.png)
Almenos que uses ASM (Quizas)... pero el procesador va a hacer algo similar...
Dulces Lunas!¡.
Date cuenta que la potencia es el numero de veces que se multiplica el numero. Es decir 24 = 2 x 2 x 2 x 2
Esto, en C al menso, es imposible de hacer con una sola expresión.
La manera sencilla seria un bucle for tal que:
int sum = 1;
for(int n = 0;n<potencia;n++)
{
sum *= base
}
Donde potencia seria el termino "b" y base , la base ( Ab )
Saludos.
Puede limitar el problema:
Solo usando: 2
Entonces: m^n => m << (n - 1)
Pero "n" debes ser: n >= 1
Puedes hacer mucho mucho mas! Pero no voy a hablar, buena suerte!
Protip:
32 = 2^5
32^2 = (2^5)^2 = 2^10
Me podrias explicar eso último que has hecho ahí?
Salu2!
Tan solo ha escrito una propiedad de las potencias:
(a^b)^c=a^(b*c)
En el ejemplo que ha escrito el:
32=2^5, por lo que 32^2=(2^5)^2=2^(5*2)
Leete la pagina que te puse y lo entenderas... tambien lee algo sobre operaciones Binarias, igual y consigues algo...
Dulces Lunas!¡.