Wer versteht diese Java Aufgabe mit Fibonacci Zahlen siehe Foto?
Hab ich das richtig gelöst? ich muss die 30. Zahl ausgeben habs gemacht aber die Aufgabenstellung ist total unlogisch gestellt deswegen hab Ichs bisschen anders gemacht. Siehe Foto
Mit freundlichen Grüßen
3 Antworten
Also, zunächst mal sollen die ersten 3 Zahlen mit "1" beginnen.
Hier hast du einen Tippfehler direkt beim Start.
Ist zwar kein Java aber so geht's.
Dim Zahlen(30) as long
Zahlen(0) = 1
Zahlen(1) = 1
Zahlen(2) = 1
for i = 3 to 30
Zahlen(i) = Zahlen(i-1)+Zahlen(i-2)+Zahlen(i-3)
next i
Ich habe die Aufgabenstellung angeschaut. Die ersten 3 Zahlen sind gegeben, je "1". die 4te berechnet sich aus der Summe der "letzten 3" t_3 = 3.
Die 5te berechnet sich wieder aus der Summer der letzten 3
t_4 = 3 + 1 + 1 = 5. usw. t_5 = 5+3+1 = 9 …
Ich bin von meiner VBA Lösung überzeugt.
Eventuell gibt es zu klären ob die 30te Zahl bereits mit dem index i = 29 erreciht wird, da 0 - 29 dreißig Elemente sind.. Sofern du also das Ergebnis bereits kennst dann mal an dieser Ecke spielen.
*Tribonacci
In der Aufgabenstellung steht, dass du die 30. Tribonacci-Zahl berechnen sollst, nicht die Fibonacci-Reihenfolge. Zu Letzterer hast du schließlich bereits die Lösung.
Die Tribonacci-Reihenfolge sollte nach vier Iterationen so aussehen:
3 1 1
5 3 1
9 5 3
17 9 5
Das heißt, die erste Zahl berechnet sich stets durch die Summe der vorherigen Reihe.
1 1 1 // = 3; init
3 1 1 // = 5
5 3 1 // = 9
9 5 3 // = 17
Umgewandelt in Pseudocode:
first = 1
second = 1
third = 1
from 0 < count:
sum = first + second + third
third = second
second = first
first = sum
Die Reihenfolge der Zuweisungen ist wichtig, damit die vorherigen Werte nicht überschrieben werden.
Beachte, dass du die 30. Zahl berechnen sollst. Nicht die 29..
gib mal in google Tribonacci zahl ein man wird direkt auf Fibonacci korrigiert... Tribonacci gibts nicht
Offensichtlich musst du das mit dem Suchen nochmal üben. Google ist im Übrigen keine Quelle, die allein darüber entscheidet, was es alles gibt und was nicht.
Das kann man rekursiv viel schöner loesen. Abgesehen davon sollst du Tribonacci und nicht Fibonacci machen...
Hat man nicht bei einer Rekursion den Nachteil, dass der Call-Stack immer größer wird? Sollte man, wenn man auf Rekursion verzichten kann, dies auch tun?
Gruß
Für eine performante Implementierung natürlich. Wenn es um eine elegante und kurze Implementierung gehen soll (was bei so einer Aufgabe sehr nahe liegt) dann eignet sich rekursion bestens.
google mal Tribonacci, das gibts nicht, man wird direkt auf fibonacci korrigiert
Ich glaube es geht lediglich um eine "Programmieraufgabe", die man gleich im Netz als Standard Lösung vorfindet. aber nun halt hier :-)
warum auf English? Gabs keinen deutschen Link?😂😂 Warum gibt uns mein Lehrer Hausaufgaben über irgendwelche Zahlenarten die so selten sind das sie fast niemand kennt
Weil in der Aufgabe steht, wie man sie berechnet.
Ich frage mich, wo dein Problem liegt. 😶 Dein Lehrer hätte dir nicht einmal den Namen der Folge nennen müssen, denn wie sie funktioniert, steht ja in der Aufgabenstellung. Das muss genügen.
Bei der Aufgabe geht es um eine einfache Programmierübung.
hmmmokay hast du dir mal die fibonacci zahlen angekuckt?? mit deiner Rechnung kommt man nicht aufs Ergebnis