Einen wunderschönen Guten Tag,
ich bin Neueinsteiger hier mit Java (Infostudium) und hier tun sich nun so ein paar Anfängerprobleme auf.
Beispielsweise bei der rekursiven Annäherung an pi, folgender Algorithmus liegt zugrunde:
(^2)/6=1/1^2+1/2^2+1/3^2+1/4^2+...+...
(Das ganze soll nach 1000 Durchläufen abgebrochen werden)
Folgenden iterativen Code habe ich erstellt, der soll nun wie gesagt auf rekursiv übertragen werden:
Im Aufruf der Methode hätte ich dann Math.sqrt(quadraticFractionSum(1)*6) angewandt.
return counter + 1/(quadraticFractionSum(counter+1)) ; <- Das große Problem liegt hier in dieser Zeile. quadraticFractionSum(counter+1) müsste ja quadriert werden (quadraticFractionSum(counter+1)*quadraticFractionSum(counter+1)), hier endet das Ganze aber in einer Endlosschleife(? - oder zumindest läuft das seeehr lange), was mich ziemlich ratlos dastehen lässt...
Ich hoffe, hier kann mir der ein oder andere den ein oder andern Tipp geben? Wäre super, danke!
Gruß
Egon0815
ich bin Neueinsteiger hier mit Java (Infostudium) und hier tun sich nun so ein paar Anfängerprobleme auf.
Beispielsweise bei der rekursiven Annäherung an pi, folgender Algorithmus liegt zugrunde:
(^2)/6=1/1^2+1/2^2+1/3^2+1/4^2+...+...
(Das ganze soll nach 1000 Durchläufen abgebrochen werden)
Folgenden iterativen Code habe ich erstellt, der soll nun wie gesagt auf rekursiv übertragen werden:
Java:
static double pi() {
double nenner = 1.0;
double pivar = 0.0;
while (nenner <= 1000){
pivar = pivar + 1.0/(nenner*nenner);
nenner = nenner + 1.0;
}
return Math.sqrt(pivar*6);
}
Java:
public static double quadraticFractionSum(double counter){
if (counter == 1000)
{
return counter;
}
else {
return counter + 1/(quadraticFractionSum(counter+1)) ;
}
}
Im Aufruf der Methode hätte ich dann Math.sqrt(quadraticFractionSum(1)*6) angewandt.
return counter + 1/(quadraticFractionSum(counter+1)) ; <- Das große Problem liegt hier in dieser Zeile. quadraticFractionSum(counter+1) müsste ja quadriert werden (quadraticFractionSum(counter+1)*quadraticFractionSum(counter+1)), hier endet das Ganze aber in einer Endlosschleife(? - oder zumindest läuft das seeehr lange), was mich ziemlich ratlos dastehen lässt...
Ich hoffe, hier kann mir der ein oder andere den ein oder andern Tipp geben? Wäre super, danke!
Gruß
Egon0815