Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/02/2016, 16:16
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Aleatorios de 0.001 a 1

Cuando dices que el rango debe ser 0.001-1 te refieres a que quieres limitar la salida a 3 decimales o a que el número no ha de ser inferior a 0.001?

Lo pregunto porque es un rango un tanto curioso y prefiero asegurarme.

En cualquier caso. Tomando como buena la segunda opción, una forma de proceder es la siguiente:

El rango (1-0.001) podemos convertirlo en el rango (0.999-0.0) restando 0.001 a cada límite. Si la función nos devuelve un rango (1.0-0.0) conseguir nuestro rango es pan comido:

Código C:
Ver original
  1. float numero = drand48()*0.999+0.001;

Con la multiplicación pasamos de (1.0-0.0) a (0.999-0.0) y con la suma siguiente pasamos de (0.999-0.0) a (1.0-0.001)

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Última edición por eferion; 27/02/2016 a las 16:21