Mekanism-tilera-Edition/src/main/java/mekanism/common/util/StatUtils.java
Aidan C. Brady 2fe4cf290d Merge branch 'master' into development (@unpairedbracket, make sure I did this right)
Conflicts:
	src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java
	src/main/java/mekanism/common/util/MekanismUtils.java
2015-02-19 16:12:28 -05:00

32 lines
658 B
Java

package mekanism.common.util;
import java.util.Random;
import static java.lang.Math.ceil;
import static java.lang.Math.sqrt;
import static java.lang.Math.exp;
import static java.lang.Math.pow;
import static java.lang.Math.PI;
import static java.lang.Math.E;
public class StatUtils
{
public static Random rand = new Random();
public static int inversePoisson(double mean)
{
double r = rand.nextDouble()*exp(mean);
int m = 0;
double p = 1;
double stirlingValue = mean*E;
double stirlingCoeff = 1/sqrt(2*PI);
while((p < r) && (m < 3*ceil(mean)))
{
m++;
p += stirlingCoeff/sqrt(m)*pow((stirlingValue/m), m);
}
return m;
}
}