private double beta(double m, double v, Random rand)
{
double p1, p2,result=0;
do
{
p1 = rand.NextDouble();
p2 = rand.NextDouble();
} while (Math.Pow(p1, 1/m) + Math.Pow(p2, 1/v) >= 1);
result = Math.Pow(p1, 1 / m) / (Math.Pow(p1, 1 / m) + Math.Pow(p2, 1 / v));
return result;
}