Rekursive definierten Folge

Status
Nicht offen für weitere Antworten.

EibeX

Mitglied
Ich habe ein kleines Problem. Ich habe heute mein erstes Java Programm geschrieben. Das Programm soll N-te Glied einer rekursive definierten Folge berechnen.

Sprich ich habe die Funktion:

(x / 2) + (1 / x) = xn

x1 = 1

Jetzt wird für x 1 eingesetzt. Das ergebnis was ich bekomme soll wieder eingesetzt werden und dies n mal.


Irgendwo muss sich da der Fehlerteufel eingeschlichen haben aber ich finde ihn nicht 😳

Bitte heflt mir! Danke im vorraus.


Code:
public class Hello_World {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//** Definieren der Variablen
		
		int zahl=1;
		double gesuchtesn = 2.0;
		double ergebnishalter = 1;
		
		while ( zahl <= gesuchtesn) {
			
			double ergebnis1 = (ergebnishalter/2.0)+(1.0/ergebnishalter);
			
			ergebnishalter = ergebnis1;
			
			System.out.println(ergebnishalter); 
			zahl++; 
							}
	}
}
 
Wahrscheinlich von einem logischem Fehler.
Einfacher als oben, würde es so gehen:

Code:
public class Hello_World {

   public static void main(String[] args) {
      //** Definieren der Variablen
      
      int x = 1;
      double ergebnis = 1.0;
      
      while ( x <= 10) {
         
         ergebnis = (ergebnis/2.0)+(1.0/ergebnis);
         System.out.println(ergebnis);
         x++;
      }
   }
}
 
Wodan hat gesagt.:
Frage: Würden ihm hier "Rekursive-Methoden" helfen?
Man könnte es mit iteration lösen, oder mit rekursion, wobei rekursion mehr "kostet", in extremfällen gehen einem die Stackframes aus, obwohl das hier nicht der Fall zu sein scheint.
 
Interessant wäre noch, welcher Fehler konkret auftritt: wird ein anderes als das erwartete Ergebnis geliefert? Wenn ja: bei welchem Wert für n, was wird ausgegeben und was wird erwartet?
 
Vielen dank für eure Antworten.

Das Problem ist das einfach ein falsches Ergebnis ausgegeben wird. :cry:
 
*rumrat*
while ( zahl <= gesuchtesn) {
Damti wird die Schleife evtl. 1 mal zu oft durchlaufen. Vielleicht hilft
while ( zahl < gesuchtesn) {
Ansonsten beschreib' das Problem (d.h. Eingabe, Ausgabe und gewünschte Ausgabe) genauer.
 
Murray hat gesagt.:
EibeX hat gesagt.:
Das Problem ist das einfach ein falsches Ergebnis ausgegeben wird. :cry:
Was gibst du für n vor? Was erwartest du für einen Wert? Was kommt raus?

Also ich habe eine Funktion:

(x / 2) + (1 / x) = xn+1

So ich habe nun den Wert x1 = 1

Den Setze ich nun in die Funktion ein:

(1 / 2) + (1 / 1) = x1+1

Ich erhalte also das Ergebnis x2 = 1,5

Nun möchte ich den Wert x2 wieder in die Funktion einsetzen um x3 zu erhalten, sprich:

(1,5 / 2) + (1 / 1,5) = 1,4166666


Aber wenn ich das jetzt so sehe. Merke ich das ich der Idiot war und mein Programm von Anfang an richtig war. Tut mir leid eure Zeit gestohlen zu haben ???:L


Sorry nochmal :bloed: :bloed: :bloed: :bloed: :bloed: 😳 😳 😳 😳 😳 :gaen: :gaen: :gaen: :gaen: :### :### :### :### :### :### :### :noe: :noe: :noe: :noe:
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben