#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#define PERIOD 10.0
#define MAXTIMES 1000000
double VAR = 1.0; //バスの到着の幅

double rand01() // [0.0...1.0]の一様分布乱数
{
    return  (rand() / (1.0 + RAND_MAX));
}

double nextbus() //次にパスが来る時間を返す
{
    return(PERIOD + VAR * (rand01() - 0.5));
}

main()
{
  int i,j;
  double total=0.0, now, bus;
  VAR = 0.0;
  for (j=0;j<=10;j++){ // VAR を変えて実行する
     total = 0.0;
     for(i=0;i<MAXTIMES;i++){ //100000回試してみる
       now = PERIOD * rand01(); //バス停に人が到着する時間
       for (;;){  //バスのランダムな到着時間：現時点nowより後にする
           bus = nextbus();
           if (bus > now)  break; 
       }  
       total += bus - now;
     }
     printf("到着時間[%f,%f]のとき，待ち時間の平均は%f\n",
            PERIOD-VAR/2, PERIOD+VAR/2,total/MAXTIMES);
     VAR += 0.5;
  }
}
