class MonteCarloIntegral extends DefiniteIntegral
{
constructor(samples)
{
super();
this.samples = samples;
}
compute(f, a, b)
{
let sum = 0.0;
let sampler = () => a + Math.random() * (b-a);
for(let i = 0; i < this.samples; i++) sum += f(sampler())
return sum * this.delta(a, b, this.samples);;
}
}