Hey, sieht nach einer Rekursionsaufgabe aus. Du musst also immer weiter die Funktion UNKNOWN(A,l,r) aufrufen bis die Begingung l=r erfüllt ist. Dann bekommst du erst eine Zahl als Ergebnis. In deinem Fall musst du also UNKNOWN(A,1,3) * UNKNOWN(A,4,8) wieder bestimmen.
Vielleicht als kleiner Tipp: Du kannst dir die resultierenden Funktionsaufrufe auf einem Blatt in einer Baustruktur aufschreiben. Wenn die Bedingung l = r erfüllt wird musst du dann an dem entsprechenden index schauen und die Zahl dem Funktionsaufruf zuodrdnen.
Wenn ich nicht ganz daneben liege sollte als Ergebnis 6 * 4 * 2 * 9 * 2 * 8 * 7 * 5 = 241920
Ich denke das Ergebis ist aber eher Nebensache. Es geht wahrscheinlich darum, dass die Funktionsweise von Rekursion verdeutlicht wird.
Punkte: 15
Klar,
einfach machen und hochladen :)
verstehe ich nicht ganz, warum du (A,1,3) hast warum 1 und 3? wie muss ich genau UN(A,1,3) * UN(A,4,8) bestimmen bzw. wie kriege ich die Zahl? Genau, das verstehe ich nicht!
─ sayuri 09.01.2021 um 11:22wäre es nicht 6 * 2 9 5..?
─ sayuri 10.01.2021 um 11:03Du musst wiederrum UN(A,1,3) und UN(A,4,8) bestimmen.
Das geht so lange bis du tatsächlich zu Zahlen kommst. In deinem Beispiel kommst du zu einer Zahl wenn l = r gilt, da dann die l-te Zahl des Arrays zurückgegeben wird.
Selbst wenn es dir schwer fäll vorzustellen empfehle ich dir einfach mal auf einem Blatt die einzelnen Funktionsaufrufe zu bestimmen dadurch wird es vielleicht deutlicher.
Welche Zahl du zuerst bekommst hat bei einer Baumstruktur natürlich damit zu tun welchem Ast du zuerst folgst. Wenn es keine besonderen verweise gibt wird aber immer von links nach rechts ausgewertet. Bedeutet UN(A,l,q) wird vor UN(A,q+1,r) ausgewertet.
Markdown wird unterstützt.
Vielen Dank timrank044. Darf ich es einmal auf einem Blattpapier schreiben, kannst du mal darüber schauen, ob ich es richtig verstande habe?
─ sayuri 17.11.2020 um 23:06