Función rand y float

Dudas sobre el C/C++ en general
Responder
Mensaje
Autor
creepystr
Mensajes: 1
Registrado: 29/06/2019 11:22 am

Función rand y float

#1 Mensaje por creepystr » 29/06/2019 11:30 am

Hola buenas,
Soy nuevo en el foro, este es mi primer post
Tengo una duda con la funcion rand(), no consigo sacar numeros aleatorios decimales que estén contenidos dentro de un intervalo con numeros decimales
Por ejemplo, quiero sacar numeros decimales en el rango [2.5, 3.8]
He intentado de muchas formas y al pasar el maximo y minimo del rango a la función me da error.
Copio un extracto del codigo: el objetivo es conseguir un vector de tamaño n de numeros decimales aleatorios dentro de un rango de numeros decimales

Código: Seleccionar todo

vecalea (n, vecx, vecy, maxx, maxy, minx, miny, semillax, semillay); //llamada a la función desde el main

Código: Seleccionar todo

void vecalea (int n, double vecx[n], double vecy[n], float maxx, float maxy, float minx, float miny, int semillax, int semillay) //función
{
	
	int i;
	
	srand(semillax);
	
	for (i=0; i<n; i++){
		
		vecx[i] = rand() % (maxx-minx) + minx;
		
	}
	
	srand(semillay);
	for (i=0; i<n; i++){
		
		vecy[i] = rand() % (maxy-miny) + miny;
		
	}
}
Cabe destacar que maxx, maxy, minx, miny están declarados como float en el main


Un saludo y gracias de antemano
Última edición por mollok el 29/06/2019 1:55 pm, editado 1 vez en total.
Razón: Los códigos deben ir entre etiquetas 'code', botón </>

dehm
Mensajes: 291
Registrado: 29/04/2011 7:31 am

Re: Función rand y float

#2 Mensaje por dehm » 02/07/2019 8:19 am

Hola, se me ocurre que puedes hallar los números del intervalo y luego pasarlos a decimal dividiéndolos por 10.

Algo así:

Código: Seleccionar todo

#include <iostream>

using namespace std;

int main()
{
int _min = 25;
int _max = 38;
srand(time(0));
float numero = (float)(_min + ( std::rand() % ( _max - _min + 1 ) ))/10;
cout <<"numero: "<<numero;



return 0;
}
Aprendiendo

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados