Foro de elhacker.net

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:

Código
  1. int sum = 1;
  2. for(int n = 0;n<potencia;n++)
  3. {
  4.    sum *= base
  5. }
  6.  
  7.  

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!¡.