Rekursive Methode

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo, ich soll eine rekursive Methode zur Berechnung von f schreiben, wobei f=n+2 falls n>3 und f=2*f(n-1)+f(n-3) sein soll.
Mein erster Entwurf sieht so aus:
Code:
public class Rekursiv {
  static int add(int n){
    if (n<3)
      return n=n+2;
    else
      return n=(2 * add(n-1) + add(n-3));
  }
  public static void main(String[] args) {
    for (int i=0;i<=20;i++){
       System.out.println(add(i));
    }

  }
}

Ist das so richtig?
 
J

Johanness

Gast
Ja, eigentlich schon. Nur das "n=" in den returns solltest Du dir schenken.

Also:

Code:
public class Rekursiv
{

   static int add(int n){
      if (n<3)
         return n+2;
      else
         return (2 * add(n-1) + add(n-3));
   }
   public static void main(String[] args) {
      for (int i=0;i<=20;i++){
         System.out.println(add(i));
      }

   }

}

Johannes
 
B

bygones

Gast
was hält dich davon ab es laufen zu lassen ?

dann siehst du schon obs richtig ist ???
 
G

Guest

Gast
Hab ich ja getan. Ich war mir nur nicht sicher, ob das mit der Rekursion so richtig ist bzw ob ich es richtig verstanden habe.
 
G

Guest

Gast
Könnte mir jetzt vielleicht noch jemand einen Gedankenanschub liefern, mit dem ich die Methode iterativ schreiben könnte?
 
L

Leroy42

Gast
Anonymous hat gesagt.:
Könnte mir jetzt vielleicht noch jemand einen Gedankenanschub liefern, mit dem ich die Methode iterativ schreiben könnte?

Das glaube ich nicht :cry:
Falls ich mich richtig erinne, kann es keinen allgemeinen Algorithmus geben, der dir
eine beliebige rekursive Funktion in eine iterative mit konstantem Speicherbedarf umwandelt.
Zumindest ist es nicht trivial.

Du kannst die Rekursion zwar unter Hinzunahme eines Stacks iterativ umformen indem
du die Zwischenergebnisse selbst verwaltest, das wäre dann aber nicht wirklich iterativ.

Das heißt allerdings noch lange nicht, daß es für diese spezielle Funktion keine iterative
Lösung gibt. Du könntest dir ja mal eine Tabelle der ersten Funktionswerte erstellen und
versuchen irgendwie herauszubekommen(*), ob es eine Systematik gibt und diese iterativ zu
formulieren. Viel Spaß 8)

==
(*) Das ist zum Beispiel ein Kriterium für wahre Intelligenz (menschlich oder künstlich)
 
S

SnooP

Top Contributor
jenau - schau dir die Funktionswerte genau an und überlege dir mal genau was da eigentlich steht beim return, sprich wie berechnet sich der neue Funktionswert... - daraus kannst du dir dann überlegen, wie eine schleife aussehen könnte und wieviel Berechnungsschritte von vorher du jeweils benötigst.. 1, 2, 3... theoretisch unendlich? - falls die Anzahl Berechnungsschritte konstant ist ;) - dann kannst du dir überlegen für diese Anzahl entsprechend viele Variablen zu nutzen, deren Inhalt du jeweils durchreichst pro Schleifendurchlauf um das jetzt mal salopp zu formulieren und nicht zuviel vorweg zunehmen...

keine gute Lösung wäre übrigens nen array zu nehmen und darin die funktionswerte speichern, da damit kein unendlich großes n mehr realisiert werden kann, bzw. viel zu viel Speicherplatz verschwendet wird, wie du recht schnell merken solltest ;)
 
Bleiglanz

Bleiglanz

Gesperrter Benutzer
f=n+2 falls n>3 und f=2*f(n-1)+f(n-3) sein soll.
bei solchen fragen (rekursive zahlenfolge) ist die Antwort immer eine for-schleife

nur muss man dann die werte f_n_minus1 und f_n_minus3 eben "mitschleifen"
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Rekursive Java-Methode Java Basics - Anfänger-Themen 13
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
J Rekursive swapArray Methode Java Basics - Anfänger-Themen 69
D Rekursive Methode Java Basics - Anfänger-Themen 8
O Quersumme rekursive Methode Java Basics - Anfänger-Themen 3
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
J rekursive Methode Java Basics - Anfänger-Themen 26
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
S Rekursive Methode Java Basics - Anfänger-Themen 8
O Rekursive Methode Java Basics - Anfänger-Themen 4
V Methoden Rekursive Methode mit String als Rückgabe Java Basics - Anfänger-Themen 7
K Rekursive Methode Java Basics - Anfänger-Themen 1
K Rekursive Methode für Fakultät mit BigInteger Java Basics - Anfänger-Themen 10
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
P Methoden Rekursive Methode für Potenzen Java Basics - Anfänger-Themen 2
S Int zu Hexadezimal - Rekursive Methode Java Basics - Anfänger-Themen 2
C rekursive methode Java Basics - Anfänger-Themen 2
R rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
R Rekursive Methode, Files finden Java Basics - Anfänger-Themen 2
C rekursive Methode verstehe nicht! Java Basics - Anfänger-Themen 3
S Methoden rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
E Rekursive Methode Java Basics - Anfänger-Themen 3
A Rekursive Methode in Iterative umwandeln Java Basics - Anfänger-Themen 6
C Rekursive Methode - Ziffern in Zahl Java Basics - Anfänger-Themen 33
G Rekursive Methode Java Basics - Anfänger-Themen 3
E Rekursive Methode mit Zufallsarray Java Basics - Anfänger-Themen 6
E Rekursive Methode Java Basics - Anfänger-Themen 18
M Rekursive Methode - wo ist der Fehler? Java Basics - Anfänger-Themen 4
J rekursive methode Java Basics - Anfänger-Themen 6
H ScrollBar inaktiv / Rekursive Methode Java Basics - Anfänger-Themen 4
J Rekursive Methode Java Basics - Anfänger-Themen 11
G Rekursive Methode Java Basics - Anfänger-Themen 5
J Rekursive Methode: Fakultaet berechnen Java Basics - Anfänger-Themen 5
G rekursive Methode Java Basics - Anfänger-Themen 3
G rekursive u iterative Methode Java Basics - Anfänger-Themen 8
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
R Methoden rekursive Methoden Java Basics - Anfänger-Themen 6
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
M Rekursive Dateiliste erstellen mit Dateiendung(en) ?? Java Basics - Anfänger-Themen 4
G Harmonische Rekursive Folge Java Basics - Anfänger-Themen 3
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
B Datentypen Suchbaum - Rekursive Ausgabe Java Basics - Anfänger-Themen 1
M Methoden Binäre Suche als rekursive Variante Java Basics - Anfänger-Themen 5
B Rekursive Algorithmus schreiben Java Basics - Anfänger-Themen 8
S Eine rekursive Lösung Java Basics - Anfänger-Themen 4
M Rekursive Suche in einem Feld Java Basics - Anfänger-Themen 11
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
shiroX OOP Rekursive und Iterative Definition Java Basics - Anfänger-Themen 2
B Methoden Rekursive Methoden Java Basics - Anfänger-Themen 2
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
D Methoden Rekursive Methoden Java Basics - Anfänger-Themen 13
M Stürzen alle Rekursive Methoden irgendwann ab? Java Basics - Anfänger-Themen 11
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
S rekursive folge verbessern Java Basics - Anfänger-Themen 2
N Methoden Rekursive Fibonaccizahlen mit Array Java Basics - Anfänger-Themen 2
R Rekursive Ausgabe eines Binärbaums Java Basics - Anfänger-Themen 4
J Methoden Rekursive Potenz ohne Math.Pow() Java Basics - Anfänger-Themen 9
S Labyrith Rekursive Wegsuche Java Basics - Anfänger-Themen 4
U Dezimal zu Hexadezimal rekursive Funktion Java Basics - Anfänger-Themen 8
M rekursive Funktion zur Berechnung der Spiegelzahl Java Basics - Anfänger-Themen 7
L iterative und rekursive Folge Java Basics - Anfänger-Themen 20
A rekursive Listen in Java? Java Basics - Anfänger-Themen 5
B OOP Einfach verkettete Liste - rekursive Methoden Java Basics - Anfänger-Themen 1
U Rekursive lösung von pascal dreieck Java Basics - Anfänger-Themen 11
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
K Rekursive Methoden Java Basics - Anfänger-Themen 15
K Rekursive Funktion (Verständnissfrage) Java Basics - Anfänger-Themen 5
S Rekursive Bruch potenzierung Java Basics - Anfänger-Themen 2
D rekursive Summenberechnung Java Basics - Anfänger-Themen 8
E Rekursive definierten Folge Java Basics - Anfänger-Themen 10
A HILFE! Rekursive Funktion Java Basics - Anfänger-Themen 20
kulturfenster rekursive Binaere Suche Java Basics - Anfänger-Themen 12
F Rekursive Aufrufe, Parameterübergabe, call by reference Java Basics - Anfänger-Themen 3
G Rekursive Berechnung von n über k schlägt fehl Java Basics - Anfänger-Themen 5
B Rekursive & schreiben im ArrayList Java Basics - Anfänger-Themen 2
J Rekursive Fkt. Java Basics - Anfänger-Themen 2
A Rekursive Dateisuche Java Basics - Anfänger-Themen 12
K rekursive Funktion mit mehreren Parametern Java Basics - Anfänger-Themen 5
N rekursive Beispiele Java Basics - Anfänger-Themen 3
ven000m Rekursive Funktionen - Frage Java Basics - Anfänger-Themen 16
D rekursive ausgabe einer zahl Java Basics - Anfänger-Themen 14
S Rekursive Funktionen in imperative Funktionen umwandeln Java Basics - Anfänger-Themen 2
M Rekursive Binärsuche Java Basics - Anfänger-Themen 6
S rekursive methoden Java Basics - Anfänger-Themen 5
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
B Methoden warum macht die Methode nicht das was ich erwarte? Java Basics - Anfänger-Themen 2
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
Y Aufruf von Methode nicht möglich. Java Basics - Anfänger-Themen 2
O Instanzattribut per Getter Methode zuweisbar, warum? Java Basics - Anfänger-Themen 3
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben