Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Logaritmo

Estas en el tema de Logaritmo en el foro de C/C++ en Foros del Web. Uso el logaritmo neperiano para calcular valores aleatorios peor me da un error, sabeis porque puede ser¿? numero_aleatorio = (rand()%100)/100; valor = (-1/1)*log10(numero_aleatorio); Error en ...
  #1 (permalink)  
Antiguo 12/08/2010, 15:18
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
Logaritmo

Uso el logaritmo neperiano para calcular valores aleatorios peor me da un error, sabeis porque puede ser¿?

numero_aleatorio = (rand()%100)/100;

valor = (-1/1)*log10(numero_aleatorio);

Error en ejecuccion: Log10: SING error
  #2 (permalink)  
Antiguo 12/08/2010, 15:47
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Logaritmo

Parece ser que estas haciendo el logaritmo de un numero igual o menor a cero y eso es un error.

Si esas dos lineas estan contiguas el unico error que se me ocurre es que la variable numero_aleatorio sea entera y al dividirla quede siempre 0 :s

Proba modificando esas cosas.
  #3 (permalink)  
Antiguo 12/08/2010, 16:11
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Respuesta: Logaritmo

Haz declarado la librería math.h y la librería stdlib para usar los aleatorios???
  #4 (permalink)  
Antiguo 12/08/2010, 16:16
 
Fecha de Ingreso: julio-2010
Mensajes: 153
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Logaritmo

si estas en algún linux prueba poniendo enlazando -lm
  #5 (permalink)  
Antiguo 13/08/2010, 00:30
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Logaritmo

Numero aleatorio es float tambien.

En pascal lo hice utilizando esa funcion y no daba problemas, no creo que sean números negativos puesto que me habría pasado también en pascal. El logaritmo neperiano en Pascal en ln, en c es log10¿?
  #6 (permalink)  
Antiguo 13/08/2010, 00:57
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Logaritmo

Ya se donde esta el problema, pero nose como arreglarlo.

numero_aleatorio = (rand()%100);
printf("%d,numero_aleatorio); <-- 26.000000
numero_aleatorio = (rand()%100)/100;
printf("%d,numero_aleatorio); <-- 0.000000

No deberia dar 0, deberia hacer 26/100 = 0.26 :(

Última edición por Zunri; 13/08/2010 a las 01:15
  #7 (permalink)  
Antiguo 13/08/2010, 07:38
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Logaritmo

Pasa que en ese printf estas pidiendo el entero y no el double.

printf("%f,numero_aleatorio);

Asi deberia ir. Sobre lo del logaritmo nepelioano o en base dies log10 como su nombre lo indica esta en base 10. Creeria que el que dice log solo es en base e. Pero nunca lo he usado igual.
  #8 (permalink)  
Antiguo 13/08/2010, 07:40
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Logaritmo

El printf no lo tengo puesto en el programa, lo puse aqui para que vean que sale.

Tengo puestos printf("%f", ), el problema es que sigue dando 0. Entonces da error en el logaritmo. Peor no se como puede dar 0! xD
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:05.