Gerando numéros reais aleatórios entre 0 e 1 em C/C++
Recentemente um amigo me perguntou como
gerar numéros reais aleatorios entre 0 e 1 em C. Investigando
o manual de programação do Linux, descobri uma função
random(), em stdlib.h, que gera números inteiros entre 0 e
RAND_MAX (cujo valor está definido nesta biblioteca) [veja man
random]. Assim, me veio a idéia de criar uma simples macro que
transformasse os valores retornado por random() e RAND_MAX em float e
realizasse a divisão random()/RAND_MAX.
A seguir está o código de
teste que enviei a ele.
//----------------------------------
#include <stdio.h>
#include <stdlib.h> // RAND_MAX é definido em stdlib.h#define myrand ((float)(random())/(float)(RAND_MAX) ) //macro myrand: gera numeros float entre 0 e 1
int main(){
srandom(time(NULL)); // inicia o gerador de números aleatórios
// gera 10 numeros aleatorios
for(i=1;i <= 10; i++)
printf("%f\n",myrand);
}
//----------------------------------Espero que seja útil, pessoal!