Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: prometheus48 en 4 Enero 2012, 23:03 PM

Título: Problema Programa que eleva un numero a una potencia
Publicado por: prometheus48 en 4 Enero 2012, 23:03 PM
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!
Título: Re: Problema Programa que eleva un numero a una potencia
Publicado por: BlackZeroX en 4 Enero 2012, 23:07 PM

https://es.wikipedia.org/wiki/Potencia_%28matem%C3%A1tica%29

Dulces Lunas!¡.
Título: Re: Problema Programa que eleva un numero a una potencia
Publicado por: prometheus48 en 4 Enero 2012, 23:16 PM
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!
Título: Re: Problema Programa que eleva un numero a una potencia
Publicado por: BlackZeroX en 4 Enero 2012, 23:24 PM
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!¡.
Título: Re: Problema Programa que eleva un numero a una potencia
Publicado por: Oblivi0n en 4 Enero 2012, 23:51 PM
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.
Título: Re: Problema Programa que eleva un numero a una potencia
Publicado por: LearningSpanishProgrammer en 5 Enero 2012, 01:40 AM
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
Título: Re: Problema Programa que eleva un numero a una potencia
Publicado por: prometheus48 en 5 Enero 2012, 08:44 AM
Me podrias explicar eso último que has hecho ahí?

Salu2!
Título: Re: Problema Programa que eleva un numero a una potencia
Publicado por: xiruko en 6 Enero 2012, 00:43 AM
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)
Título: Re: Problema Programa que eleva un numero a una potencia
Publicado por: BlackZeroX en 6 Enero 2012, 02:52 AM
Leete la pagina que te puse y lo entenderas... tambien lee algo sobre operaciones Binarias, igual y consigues algo...

Dulces Lunas!¡.