SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: dheak en Sábado 20 de Abril de 2002, 03:06

Título: Re: sobre logaritmos
Publicado por: dheak en Sábado 20 de Abril de 2002, 03:06
Alguien sabe como puedo hacer un logaritmo de base n, siendo n cualquier numero entero > 0? En lenguaje C o C++. Gracias
Título: Re: sobre logaritmos
Publicado por: ogmr2001 en Sábado 20 de Abril de 2002, 17:14
Que clase de logaritmo,digo es que no te explicas mas detalladamente.
Título: Re: sobre logaritmos
Publicado por: dheak en Sábado 20 de Abril de 2002, 23:49
Bueno, vamos a ver, me refiero a la base de un logaritmo. La tecla log que todos tenemos en la calculadora, te calcula el logaritmo en base 10 de un numero, la tecla ln de la calculadora lo hace en base e (e=2,7...), pues bien, me gustaria saber como se calcula el logaritmo (en C o C++) en cualquier base entera.

Veámoslo de otra manera. Dada la ecuación y = e^x, despejando x nos queda: x = ln y. Dada y = 10^x, despejando x queda: x = log y, esta vez el logaritmo es base 10, y el ln es base e. Pues bien, y = n^x, siendo n un numero entero positivo, despejar x, quedando así: x = log y, siendo n la base del logaritmo.

En lenguaje C, para calcular logaritmo en base e (o logaritmo neperiano) existe la función double log(double x), y el logaritmo base 10, la funcion double log10(double x). Pues me gustaria saber si hay alguna funcion que te permita calcular el logaritmo de un numero para cualquier base n.

Gracias
Título: sobre logaritmos
Publicado por: dheak en Miércoles 1 de Mayo de 2002, 22:48
vaya, me respondo mis propias preguntas.

Bueno, pongo esto porque supongo que mucha gente tendra el mismo problema. Bueno, pues aqui va la solucion:

Tenemos la ecuacion log(base n) x. Pues como en C/C++ no tenemos una funcion para calcular esto (o al menos yo no la se) hay que construirla:

double logBase(double x, double base)
{
   return(log(x)/log(base));
}

Bueno, espero que os sirva de algo (a mi me ha servido). Gracias a xAn.

Saludos.