rekursive Methode

babuschka

Top Contributor
Das n-te Element der Pibonacci-Folge kann durch die Funktion pib(n) so dargestellt werden:

pib(n):=1 falls 0<n<= 3
pib(n):= pib(n-1)+2-pib(n-3), falls 3<n


Also die Folge sieht so aus:

1,1,1,2,3,4,4,3,1,-1,-2,...


Aufgabe ist es eine rekursive Funktion pib(int n) zu implementieren, die das n-te Element der Folge berechnet.

(Für n<= 0 ist die Funktion nicht definiert; wir sollen dann den Wert 0 zurückgeben und eine entsprechende Fehlermeldung ausgeben.)


------

Ich habe das gemacht und wüsste gerne, ob meine Methode bzw. Klasse so gut ist. Kommt mir irgendwie zu einfach vor!

Java:
public class PibonacciRecursive{
public int pib(int n){
  if( n<=0){
     System.out.println("Function is not defined for n<=0.");
     return 0;
  }
  
  if( 0<n && n<= 3) return 1;

  return pib(n-1)+2-pib(n-3);
  }
}
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
> if( 0<n && n<= 3) return 1;
die erste Bedingung kannst du dir sogar noch sparen, ist durch die allereste Abfrage sowieso sichergestellt,

so einfach ist es, korrekt
 

HimBromBeere

Top Contributor
Wie würdest du die Aufgabe denn auf dem Papier lösen? Wie lautet deine Rekursionsformel (sowas wie
Code:
f(n + 1) = g(n)
, in anderen Worten: wie würdest du den Nachfolger zu einer Fibo-Zahl bestimmen?

EDIT: Läuft dein Code und spuckt er aus, was er soll? Dann ist er auch gut :D
 

babuschka

Top Contributor
Wie würdest du die Aufgabe denn auf dem Papier lösen? Wie lautet deine Rekursionsformel (sowas wie
Code:
f(n + 1) = g(n)
, in anderen Worten: wie würdest du den Nachfolger zu einer Fibo-Zahl bestimmen?

EDIT: Läuft dein Code und spuckt er aus, was er soll? Dann ist er auch gut :D



Zu Deinem Beitrag:

Erstmal sollen es nicht die Fibonacci-Zahlen sein, sondern die Pibonacci-Zahlen.

Und dann würde ich das so machen:

pib(n+1)=pib(n)+2-pib(n-2)


Wäre das korrekt?
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Oben