Java iterative Approxiamation von pi?
Für die iterative Approximation von π kann eine spezielle Form der Madhava-Leibniz Reihe verwendet werden:
Implementieren Sie Funktionen, die π mit Hilfe der Reihe approximieren und nach n Schritten abbrechen:
a) double piIterative(int n), die pn iterativ mithilfe einer while-Schleife berechnet.
b) double piRecursive(int n), die pn rekursiv berechnet.
Kann mir jemand helfen?
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren
Hausaufgabenservice...? 🤔
Hier die Iterative... (ich hätte eher geprüft ab wann das Ergebnis stabil wird....)
public class Main {
private String operator = "-";
private double denom = 3.0;
private double num = 1.0;
private int power = 1;
public double calcPi(int MaxSteps) {
int i=0;
while(i<MaxSteps) {
if (operator.equals("-")) {
num -= (1.0/(denom*(Math.pow(3, power))));
operator = "+";
}
else {
num += (1.0/(denom*(Math.pow(3, power))));
operator = "-";
}
denom += 2;
power += 1;
++i;
}
return Math.sqrt(12) * num;
}
public static void main(String[] args) {
System.out.println(new Main().calcPi(28)); // mehr als Durchläufe bewirken keine höhere Genauigkeit
}
}
Die Rekursion kannst Du Dir selbst basteln...
Den Algorithmus hast Du ja nun...
Klassen hatten wir noch nicht..