Just another update

This commit is contained in:
Ingy döt Net 2015-02-20 00:35:01 -05:00
parent a25938f123
commit 00a190b0a6
6591 changed files with 94363 additions and 23227 deletions

View file

@ -0,0 +1,44 @@
package montecarlo;
import java.util.stream.IntStream;
import java.util.stream.DoubleStream;
import static java.lang.Math.random;
import static java.lang.Math.hypot;
import static java.lang.System.out;
public interface MonteCarlo {
public static void main(String... arguments) {
IntStream.of(
10000,
100000,
1000000,
10000000,
100000000
)
.mapToDouble(MonteCarlo::pi)
.forEach(out::println)
;
}
public static double range() {
//a square with a side of length 2 centered at 0 has
//x and y range of -1 to 1
return (random() * 2) - 1;
}
public static double pi(int numThrows){
long inCircle = DoubleStream.generate(
//distance from (0,0) = hypot(x, y)
() -> hypot(range(), range())
)
.limit(numThrows)
.unordered()
.parallel()
//circle with diameter of 2 has radius of 1
.filter(d -> d < 1)
.count()
;
return (4.0 * inCircle) / numThrows;
}
}