Exercise Monte Carlo integration
  1. Implement a plain Monte Carlo multi-dimensional integration, fx like
    function plainmc(f, a[], b[], N) returns {I,err} :
    	d=length(a); sum=0; sum2=0
    	for k=1..N :
    		for i=1..d : x[i] = a[i] + random()*(b[i]-a[i])
    		sum += f(x[]); sum2 += f(x[])^2
    	average = sum/N; variance = sqrt( sum2/N - average^2 )
    	vol = product( b[i]-a[i], i=1..d)
    	I = vol*average; err = vol*variance/sqrt(N)
    
  2. Implement quasi-random sampling.
  3. Implement stratified sampling.
  4. Calculate 0π  dx/π 0π  dy/π 0π  dz/π [1-cos(x)cos(y)cos(z)]-1 = Γ(1/4)4/(4π3) ≈  1.3932039296856768591842462603255