//========================================================================
//
// Importance sampling
//
// Simon Premoze
//
//
//
//
//
//
//
//========================================================================

#include <stdlib.h>
#include <iostream.h>
#include <math.h>

int NUM_SAMPLES = 10;
double A = 0.0;
double B = 2.0;
double VALUE = 8.0 / 3.0;

int main( void )
{


  for( int NUM_SAMPLES = 1; NUM_SAMPLES < 100000; NUM_SAMPLES++ ) {

    double I = 0.0;
    double y = 0.0;
    double xi = 0.0;
    
    for( int i = 0; i < NUM_SAMPLES; i++ ) {
      
      xi = 2.0 * sqrt( drand48() );
      I += xi * xi / ( 0.5 * xi );
    }
    
    I = I / double( NUM_SAMPLES );
    
    cout <<  fabs( VALUE - I ) << endl;

  }
  
}


