Rekursive Methode

Status
Nicht offen für weitere Antworten.
E

evil

Aktives Mitglied
Hallo. Ich hab da so eine "kleine" Aufgabe. Und zwar lautet die (ich lad sie wieder hoch):

myimg.de - kostenloses Bilderhosting

Leider habe ich keine Ahnung, wie ich die Methode rekursiv schreiben soll (das einlesen der Zahl und das ausgeben von a_n und b_n sollte kein Problem [also die main-Methode]).

Hab auch schon mit der SuFu. gearbeitet, konnte aber leider nichts gebrauchbares finden. Vielleicht hat ja jemand für mich einen kleinen Denkanstoß :)

Vielen Dank im Vorraus
 
E

eRaaaa

Top Contributor
mhm, also eig. muss man ja quasi bei solchen aufgaben, die formeln nur abschreiben.

du machst eine methode aN und eine bN oder wie auch immer du die nennen magst

aN bekommt eine ganze zahl übergeben (n)

wenn n >=2 :

aN = aN-1 + .....

aN = aN-....das sieht doch schon sehr nach rekusrion aus, also musst du da wahrscheinlich die methode einfach erneut aufrufen (nur halt nicht mit n, sondenr mit n-1).

das gleiche halt auch beiden anderen aN`s, und bN`s :D

wenn n nicht >= 2 ..dann gib n+1 zurück (weil es ist ja definiert a1 = 2; a0 = 1; )

bei bN genauso vorgehen, und die sache ist in 5 min feddich :D

gruß
 
P

Painii

Bekanntes Mitglied
Schreib dir eine Methode die dein a(n) berechnet nach der Formel, analog für b(n).

Und Tipp: Rechne erstmal mit festen Werten für die du weisst was rauskommen musst.
Vom Nutzer einlesen kannst du machen wenn du sicher bist dass deine Berechnung stimmt.
 
E

evil

Aktives Mitglied
Ahjoooo *mir vor die Stirn hau* Es scheint bei mir der Wumr drin zu sein, nichtmal die "einfachen" Aufgaben klappen :oops: Aber die Lösung ist so einfach. Vielen Dank :)

(Wenn ich bei anderen Aufgaben auch Probleme habe, kann ich die gleich hier dran Posten, oder muss ich immer ein neues Thread eröffnen?)
 
E

evil

Aktives Mitglied
Ich habe es extra nicht als erledigt makiert, weil ich die Methoden noch nicht geschrieben hab. Wenn noch Fragen auftauchen sollten, wollte ich das offen lassen.. :autsch:
 
Ebenius

Ebenius

Top Contributor
Ich habe es extra nicht als erledigt makiert, weil ich die Methoden noch nicht geschrieben hab. Wenn noch Fragen auftauchen sollten, wollte ich das offen lassen.. :autsch:
Sorry, dann hab ich Deinen letzten Beitrag falsch gelesen. Mein Fehler. Hab den Thread wieder als unerledigt markiert. Steht auch in dem Link drin, wie das geht. :)

Ebenius
 
E

evil

Aktives Mitglied
Kein Problem, kann ja mal passieren, ist ja nichts abhanden gekommen :)

Mh, irgendwie bin ich heute zu blöd. Ich entschuldige mich jetzt schonmal.

Eben klang es noch logisch.. Jetzt finde ich keinen Anfang..

Java:
class Folgen {
	static String aN(String a) {
		StringBuffer a = new Stringbuffer()
		a =
		
		
	}
	public static void main (String[] args) {
		Out.println("Bitte Zahl eingeben: ");
		int zahl = In.readInt();
	}
}

Ich komm auch gar nicht auf die Ergebnisse (a_n = 30 und b_n = -480). Weiß jemand was die da genau rechnen?
 
P

Painii

Bekanntes Mitglied
Java:
	static String aN(String a) {
		StringBuffer a = new Stringbuffer()
		a =
	}
Also, die Aufgabe redet von ZAHLENfolgen. WIE kommst du jetzt darauf einen String zu benutzen? :autsch:

Ich komm auch gar nicht auf die Ergebnisse (a_n = 30 und b_n = -480). Weiß jemand was die da genau rechnen?
Rechne mal mit dem angegebenen Wert 4 dein a und b selbst aus (mit Zettel+Stift).
Wenn du das hinbekommst ist es leichter das ganze als Programm aufzuschreiben (denke ich).
 
E

evil

Aktives Mitglied
Hau mir bitte ein Brett vor den Kopf - Danke.

Trotzdem weiß ich nicht wie man das ausrechnen soll, da für a und b doch gar keine Werte gegeben sind. Ansonsten wäre das Gleichungaufstellen auch kein großes Problem, nur muss ich erstmal wissen, wie man überhaupt rechnet..
 
P

Painii

Bekanntes Mitglied
Hau mir bitte ein Brett vor den Kopf - Danke.

Trotzdem weiß ich nicht wie man das ausrechnen soll, da für a und b doch gar keine Werte gegeben sind. Ansonsten wäre das Gleichungaufstellen auch kein großes Problem, nur muss ich erstmal wissen, wie man überhaupt rechnet..

Rechne so wie die Aufgabe will ;)

Gebe n : 4
Berechne a(n) = a(n-1) + a(n-2) + b(n-2) + 3
Berechne a(n-1) = ...
Berechne a(n-2) = ...
Berechne b(n-2) = ...
Wenn du die 3 Sachen hast, kannst du dir ja daraus dann einfach dein a(n) zusammen addieren.
Analog für b(n).

edit: Wenn dein n-1 dann irgendwann mal 0 oder 1 ist musst du dann statt der Formel die angegebenen Werte für a(0), a(1) und b(0) einsetzen.
 
E

evil

Aktives Mitglied
Ja aber bei n = 4 würde ich ja (4-1) + (4-2) - (4 - 2) + 3 rechnen. Das ist aber nicht a_n = 30 ?!
 
E

eRaaaa

Top Contributor
Ja aber bei n = 4 würde ich ja (4-1) + (4-2) - (4 - 2) + 3 rechnen. Das ist aber nicht a_n = 30 ?!


hm, also erstens, ist in der formel für an auch noch ein bn enthalten und zweitens ist das nicht so ganz rekursiv.

schreib doch jetzt mal ein bisschen code. es wurden dir doch schon tips gegeben...
2 methoden die einen int als paramter bekommen und einen als rückgabe liefern.
dann hast du schonmal einen anfang und kannst dann auch mal direkte fragen stellen, weil im moment kann man dir ja schwer helfen (außer dir natürlich die komplette lösung zu geben)

Java:
    public static void main(String[] args) {
	System.out.println(an(4));
	System.out.println(bn(4));
    }

    static int an(int n) {
	if (n >= 2) {
	    return //formel aN
	}else{
	    return  //a0 = 1; a1=2;  ==> (n+1) ?? :D
	}
    }
    
    static int bn(int n){
	if(n>=1){
	    return //formel bN
	}else{
	    return //b0 = -2;
	}
    }
 
E

evil

Aktives Mitglied
Mh, ohje..

Also ich hab mal angefangen.
Java:
class Folgen {
	public static void main (String[] args) {
		Out.println("Bitte Zahl eingeben: ");
		int n = In.readInt();
	}
	static int a (int n, int a_n) {
		if (n == 0) {
			return n;
			Out.println("a_n = 1");
		} else if (n == 1) {
			return n;
			Out.println("a_n = 2");	
		} else {
			return 	// Wie schreibe ich die Methode für mein a_n
			Out.println("a_n = " + a_n);
		}
	}
	static int b (int n, int b_n) {
		if (n == 0) {
			return n;
			Out.println("b_n = -2")
		} else {
			return // Selbe Problem wie bei Methode für a_n
			Out.println("b_n = " + b_n);
		}
	}
}
 
E

eRaaaa

Top Contributor
ohje, also mir gehen jetzt die tips aus :D (zudem bin ich auch ziemlich schlecht im erklären *g*. vllt sollte jmd anders weitermachen ^^ + ich bin jetzt CL schauen ;D)

aber
Java:
if (n == 0) {
            return n;
???:L wenn n = 0, dann wäre das ergebnis ja 0 ?
aber es ist doch vorgegeben, dass

a0 = 1; was bedeutet, dass aN (wenn n = 0 ) halt 1 ist :D (dann kannst du doch nciht 0 zurückgeben)

und ansonsten ist da auch wieder nichts rekusriv...du musst die methode NOCHMAL aus sich selbst aufrufen

return a(n-1) + a(n-2) ........ +3; (nach formel halt)
 
Zuletzt bearbeitet:
E

evil

Aktives Mitglied
Ich weiß, ich bin gerade ein sehr schwieriger Fall^^ Tut mir auch leid :(
Trotzdem vielen Dank
 
Zuletzt bearbeitet:
P

Painii

Bekanntes Mitglied
Du musst denk ich noch das Prinzip der Rekursion verstehen ;)
Deine Methode muss a(int n) heissen, und DIE ist dein a_n.
Wenn du also a_n mit n=4 berechnen willst, dann rufst du NUR a(4) auf.
In a(4) sieht es dann so aus:
n>=2 -> return a(n-1)+a(n-2)+b(n-2)
Du rufst damit einmal direkt die Methode selbst auf (direkte Rekursion), und dann nochmal die Methode b(n), die hat ja eine andere Berechnungsformel - ist indirekte Rekursion in diesem Fall, da b(n) auch wieder a(n) aufruft.

Und deine Methoden rufen sich solang weiter auf bis das n klein genug ist dass du einen richtigen Wert kennst (wie eRaaaa schon gesagt hat, bei a==0 müsste z.b. return 1 da stehen).

Achja, und deine println-Befehle müssen vor das return, sonst gibts unerreichbaren Code (-> Methode wird verlassen, danach sollte aber noch dein println kommen, das wird dann niemals ausgeführt) ;)
 
E

evil

Aktives Mitglied
Ja, ich hab das nun verstanden. Ich hab da wohl einen kleinen Denkfehler gehabt, außerdem dachte ich nicht, dass man in der return-Anweisung einfach die Formel reinschreiben kann.

Das Prinzip der Rekursion hab ich schon verstanden, nur als Anfänger solche Sachen gleich anwenden ist ein größeres Problem. Und Java ist auch nicht die einfachste Programmiersprache ;) Und wenn man sich alles selber erarbeiten..

Vielen Dank für die Hilfe.
 
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
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
G Rekursive Methode Java Basics - Anfänger-Themen 7
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