Ich arbeite gerade an einer Aufgabe über die Kreiszahl PI und habe diese eigentlich auch erledigt frage mich aber warum sich meine Ausgerechnete zahl Pi so sehr von der Math.PI abweicht und wie ich die abweichung verringern könnte?
Vielen Dank!
Vielen Dank!
Java:
package Mathe;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Random;
public class Kreiszahl {
long anzahlPunkte = 1000000000;
double radius = 1;
public static void main(String[] args) {
BigDecimal pi = Algo(1000000000, 1);
System.out.println("PI = " + pi);
System.out.println(Math.PI);
}
public static BigDecimal Algo(long anzahlPunkte, double radius) {
Random random = new Random();
long treffer = 0;
//int treffer = 0;
for (long i = 0; i < anzahlPunkte; i++) {
double x = random.nextDouble() * radius;
double y = random.nextDouble() * radius;
if (x * x + y * y <= radius * radius) {
treffer++;
}
}
return BigDecimal.valueOf(4).multiply(BigDecimal.valueOf(treffer).divide(BigDecimal.valueOf(anzahlPunkte),20,RoundingMode.HALF_DOWN));
}
}