/***************************************************************************
 * File:     random.c
 * Status:   19-apr-2002, pfk.
 *           31-mar-2008, wlm
 * Functie:  Programma om gebruik van random generator te laten zien.
 ***************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define INIT_1  10
#define INIT_2   5
#define MAX_TEL  5
#define REMOVE_BASE 1350000000

void print_random_values(void) {
  int teller;
  int    randomWaardeInt;
  double randomWaardeDouble;

  for (teller=0; teller<MAX_TEL; teller++)
  {
    randomWaardeInt = rand();
    randomWaardeDouble = (double) randomWaardeInt / (double) RAND_MAX;
    printf ("%de gegenereerde random waarde %d, %f\n", teller, randomWaardeInt,randomWaardeDouble);
  }
}

int main ()
{
  time_t tijd, tijd1;

  printf ("maximum random waarde      %d\n\n", RAND_MAX);

  printf("Geen initalisatie\n");
  print_random_values();

  printf("Initalisatie met %d\n",INIT_1);
  srand(INIT_1);
  print_random_values();

  printf("Initalisatie met %d\n",INIT_2);
  srand(INIT_2);
  print_random_values();

  printf("Initalisatie met %d\n",INIT_1);
  srand(INIT_1);
  print_random_values();

/* Use the time as seed. This generates a "real" random number series */

  time(&tijd);
  printf("Initalisatie met %d\n",(int)(tijd-REMOVE_BASE));
  srand(tijd - REMOVE_BASE);
  print_random_values();

  do {
    tijd1 = tijd;
    time(&tijd);
  }
  while ( difftime(tijd,tijd1)< 1 );
  printf("Initalisatie met %d\n",(int)(tijd-REMOVE_BASE));
  srand(tijd-REMOVE_BASE);
  print_random_values();

  return (0);
}

