Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mumumu/166454 to your computer and use it in GitHub Desktop.
Save mumumu/166454 to your computer and use it in GitHub Desktop.
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
//
// returns random number from zero to max.
// to compile this, run the following command.
// $ gcc -Wall -lm -lrt filename
//
double getRand(struct drand48_data *data, int max)
{
double rand = 0;
drand48_r(data, &rand);
rand = floor(rand * max);
return rand;
}
int initRand(struct drand48_data *data)
{
struct timespec time;
int result = clock_gettime(CLOCK_REALTIME, &time);
if (result == -1) {
perror("clock_gettime");
return -1;
}
srand48_r(time.tv_nsec, data);
return 0;
}
int main(int argc, char *argv[])
{
int c, result;
struct drand48_data data;
result = initRand(&data);
if (result == -1) {
return result;
}
for (c = 0; c < 100; c++) {
printf("%.0f\n", getRand(&data, 500));
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment