Rekursiv Zahlenfolgen berechnen mit zwei Variablen

chillerStudent

Bekanntes Mitglied
Hallo,

diese Zahlenfolgen sind gegeben:

Code:
a_0 = 2
b_0 = 1
b_1 = 1
a_n = a_{n-1} + (2 * b_{n}) - 1
b_n = a_{n-1} + b_{n-2}

Ich muss zu einer Eingabe n den Wert a_n berechnen.

Java:
	public static void main(String[] args) {
		
		int n = 2;
		System.out.println(function(n));
		
	}
	public static int function(int n) {
		int[] a = new int[n+2];
		int[] b = new int[n+2];
		
		a[0]=2;
		b[0]=1;
		b[1]=1;
		
		if(n==0){
			return a[0];
		} else {
			int i;
			for(i=0; i<a.length; i++) {
				a[i] = function(n-1) + (2*function(n)) - 1;
			}
			return a[i];
		}
	}

Ist der Ansatz richtig? Ich weiß, dass body von der forschleife ziemlich falsch ist. Kann mir bitte jemand tipps geben?
 
Da du es rekursiv berechnen solltest ist die forschleife ueberfluessg

tipp schreib dir eine function functionA die das ergebnis fuer a berechnet und eine funktion functionB die das ergebnis von b berechnet
 
Zuletzt bearbeitet:
Java:
	public static int function(int n) {
		int[] a = new int[n+2];
		int[] b = new int[n+2];
		
		a[0]=2;
		b[0]=1;
		b[1]=1;
		
		if(n==0){
			return a[0];
		} else {
				return function(n-1) + (2*function(n)) - 1;
		}
	}

Was mache ich jetzt falsch?
 
Du sollst einen Wert berechnen, wofür brauchst du Arrays?

Ich würde das mit 2 rekursiven Funktionen machen. Eine für
Code:
a
und eine für
Code:
b
zu berechnen.
 
Wie in meinem Tipp du hast ja zwei Funktionen die du berechnen musst, einmal eine FunctionA die die werte fuer a berechnet und eine die die Werte fuer b berechnet
 

Neue Themen


Zurück
Oben