以下代码可以求得自然底数e得近似值,如下:
public static void main(String[] args) {
double sum = 0;
for (int i = 0; i < 100; i++) {
sum += Add_e();
}
System.out.println(sum / 100.0);
}
private static double Add_e() {
int x = 0, y = 0;
for (int i = 0; i < 1000; i++) {
if (stop()) {
x++;
} else {
y++;
}
}
return (double) x / y;
}
private static boolean stop() {
Random rd = new Random();
int i[] = new int[1000];
int r[] = new int[1000];
for (int n = 0; n < i.length; n++) {
i[n] = n;
r[n] = rd.nextInt(1000);
}
for (int n = 0; n < i.length; n++) {
int o = i[r[n]];
i[r[n]] = i[n];
i[n] = o;
}
int t = 0;
int y = 0;
for (int n = 0; n < i.length; n++) {
if (n < 333) {
if (t < i[n]) {
t = i[n];
}
}
if (n >= 333) {
if (y < i[n]) {
y = i[n];
}
}
}
if (y > t) {
return true;
} else {
return false;
}
}