#include <math.h>
#include <stdlib.h>
#include <stdio.h>

#define  RANGE       200       /* MAXIMUM RANGE OF RANDOM NUMBER      */
#define  SEED          5       /* INITIAL FOR GERNERATE RANDOM NUMBER */
#define  NUMBER_DATA 100       /* NUMBER OF DATA TO GERNERATE         */

void uniform(int a, int b, double *x, double *y, int N);
void expont(double theta, double *x, double *y, int N); /* theta is 1/lamda */

void main() {
  double x[NUMBER_DATA], y[NUMBER_DATA];
  int i=0;

  srand(SEED);
  printf("List of x[i]");
  do  {
    if((x[i]=random(RANGE))!=0) {
      printf("Data Number %3d is %lf\n", i, x[i]);
      i++;
    }
  }  while(i<NUMBER_DATA);
  uniform(1,3,x,y,NUMBER_DATA);
  expont(0.3,x,y,NUMBER_DATA);
}

void expont(double theta, double *x, double *y, int N){
  int i;

  printf("\nList of Random by Exponential\n");
  for(i=0; i<N; i++)  {
    y[i] = -theta * log((double)(x[i]));
    printf("Data Number %3d is %lf\n",i ,y[i]);
  }
}

void uniform(int a, int b, double *x,double *y,int N){
  int i;

  printf("\nList of Random by Exponential\n");
  for(i=0; i<N; i++)  {
    y[i]=a+(b-a)*x[i];
    printf("Data Number %3d is %lf\n",i ,y[i]);
  }
}
