Wenn ich grade schon mal am Kommentieren bin, wollte ich euch mal sagen, dass es echt krass ist was ihr alles geschaffen habt sogar manche Lehrer von uns zeigen eure Videos im Unterricht um es zu veranschaulichen.... Und bei viele Klausuren und Tests habt ihr mich schon oft gerettet🤗 DANKE dafür 😍💗
Also prinzipiell stimmts ja, aber : Bei 2:23 sieht es so aus als wollte ihr sagen, dass z.12 : baumfaellen(a-1) die Abbruchbedingung ist. Dabei ist es natürlich z.7 : if(a==1)! Eine Abbruchbedingung kann ja nicht gleichzeitig der rekursive Aufruf sein. Wie der Name schon sagt, es ist die Bedingung um abzubrechen und nicht mehr in die Rekursion zu gehen. Wenn man nun außerdem eure Methode mit Werten kleiner 1 aufrufen würde, dann hätte man eine Endlosrekursion was in Java in einem Stackoverflow resultiert, weil die Abbruchbedingung ja dann nie erreicht wird. if(a
Danke Leute ihr habt mein Leben gerettet hab eine GSL über Rekursionen und bis jetzt hab ich viel danach gegoogelt aber keiner kanns so gut erklären wie ihr XD Ihr seid die besten :))
danke für das Video. Ich weiß nun wo mein Problem ist, ich kenne den ganzen Theoretischen Teil bereits, aber ich muss lernen ihn Computersprachentechnisch zu programmieren
Daniel Däschle doch eigentlich schon nur in Java hab ich mir das irgendwie so angewöhnt in anderen Sprachen zB C# schreibe ich Methoden auch groß. Java war meine erste Sprache und da hab ich nie drauf geachtet aber weils funktioniert hat ist mir das irgendwie egal geworden
Wieso kommt bei 4:20 nicht 1 raus? Ihr decrementiert doch einfach a bis es 1 ist und gebt dann den Wert 1 zurück. Wieso sollten die return-Werte aus dem else Block überhaupt berücksichtigt werden?
Die Methode wird insgesamt drei mal aufgerufen; der zweite Aufruf geschieht während des ersten Aufrufes, und der dritte Aufruf während des zweiten. Wenn also im dritten Aufruf die 1 zurückgegeben wird, landen wir im zweiten Aufruf, in dem jetzt als Rückgabewert "2 * " steht, also "2 * 1": das ganze wird dann in den ersten Aufruf zurückgegeben, wo dann "3 * " steht, also "3 * ´2 * 1´", womit dann insgesamt 6 zurückgegeben wird. Habe jetzt sehr oft die Wörter Aufruf und Rückgabe verwendet, aber darum geht es halt... E: oh.. vor 3 Monaten, naja vielleicht hat ja irgendwann jemand nochmal die gleiche Frage
Rekursion ist so, als würde man sagen: Rekursion ist Rekursion. Die Definition für Rekursion ist nämlich rekursiv, das bedeutet: Wer Rekursion verstehen will, muss vorher Rekursion verstehen. Verständlicherweise muss man daher, um die Rekursion zu verstehen, nicht nur erst die Rekursion verstehen, sondern auch zuerst die Rekursion verstehen.
Dieser Moment du hast Informatik in der Oberstufe nur gewählt weil du in allem anderen Fächern noch schlechter warst du in 7 Stunden Klausur schreibst aber komplett unvorbereitet bist weil du erst um 12 uhr abends angefangen hast zu lernen Und dann liest du all diese Informatiker Witze
Wieso springt denn bei der Rekursion das Programm zurück zum Beginn von der ifAnweisung? Da kommt ja kein Befehl der dafür sorgt. Könnte mir das bitte jemand erklären?
Das Beispiel mit der Omma ist aber eigentlich keines für eine Rekursion, sondern für eine Schleife, was ihr ja auch erwähnt habt. In solch einem Fall hat es überhaupt keinen Sinn, das Ganze rekursiv zu lösen, das belastet nur den Arbeitsspeicher, da der Stack der Methodenaufrufe vollläuft. In einer rekursiven Methoden ist i.d.R. ein return-Statement, das einen Wert zurückgibt, der von einem weiteren Aufruf der Methode kommt... Das Beispiel mit der Fakultät ist da eher sinnvoll.
Kannst du bitte mir erklären warum du im Parameter (int a) gegeben hast du könntest einfach unten es deklarieren Ein antwort bitte was über Haupt Parameter sind und wann man was reinschreiben kann
Kann mir jemand sagen, wann es Sinn macht welche Schleife zu benutzen? Ich weiß nie so richtig ob ich ne while, if, do-while oder ne recursion benutzen soll. Wär cool, wenn mir einer ein bisschen helfen könnte. Für nen link oder literaturvorschlag, wo das verständlich erklärt ist, wär auch sehr dankbar.
do-while: Die Operation wird mindestens einmal, maximal so oft, wie oft die Schleifenbedingung erfüllt ist, ausgeführt. while: Die Operation wird "mindestens 0-mal" (ist also optional), maximal so oft, wie oft die Schleifenbedingung erfüllt ist, ausgeführt. if: Die Operation wird einmal oder keinmal ausgeführt. Rekursion ist zwar cool, aber nach einer bestimmten Anzahl (die kleiner ist als man denken würde!) ist sie recht uneffizient (im Vergleich zu einer richtig geschriebenen iterativen Methode). Was soll das bedeuten? Die 100.000.000-ste Fibonacci-Zahl wirst du wohl nicht mit Rekursion berechnen wollen, weil du gleich nach dem Starten schlafen gehen kannst und schaust dann am nächsten Tag, was die Zahl ist (ok das ist übertrieben, aber wenn du so einen PC hast, dann kann das schon passieren). Iterativ ist die Sache mit einem Methodenaufruf und insbesondere mit einer einzigen Rechnung erledigt.
Danke 😍 und könntet ihr auch noch Themen von Kommunikations- und Ortungstechnik , Betriebssysteme (C Programmierung) machen.. bald sind dir Klausuren und der Lehrer ist so schlecht 😣
berichtigt mich wenn ich falsch liege aber sollte das programm in diesem fall nicht nur 4 mal hacken ausgeben und dann baum fällt? bei a == 0 würde es 5 mal hacken ausgeben.. so ist es zu mindest in meinem programm und ich habs 1:1 so geschrieben wie the simple club in dem video.. bin verwirrt
Ja hast schon recht, aber in dem Video steht auch 5 x hacken int a = 5 hacken a ungleich 1 --> baumfällen (4) --> hacken a ungleich 1 --> baumfällen (3) --> hacken a ungleich 1 --> baumfällen (2) --> hacken a ungleich 1 --> baumfällen(1) --> hacken a gleich 1 --> baum fällt also 5 * hacken und ein Baum fällt...
Beim Verbinden mit simpleclub.com trat ein Fehler auf. SSL hat einen Eintrag erhalten, der die maximal erlaubte Länge überschritten hat. Fehlercode: SSL_ERROR_RX_RECORD_TOO_LONG
Das ist alles super erklärt und im Detail gezeigt, Daumen hoch dazu! :D Aber Rekursion benutzt man doch eig lieber mit Algorithmen die man nicht iterierin (gibt's das Verb?) kann wie ua die Ackermann Funktion, oder irre ich mich da total ? Oo (siehe Computerphile "Recursion" und "Ackermann")
Ich dachte eigentlich, dass es zu jedem rekursiven Algorithmus einen iterativen gibt. Der Hauptanwendungszweck von Rekursionen ist aber meines Wissens, sobald es ums Backtracking (Damenproblem, Springerproblem etc.), eventuell auch beim dynamischen Programmieren, bei Tiefensuche, bli, bla, blub,...
Nein zur jedem rekursivem Algo gibt es keine Iterative (wie Ackermann zB). Ackermann geht dabei so: A(0,m) = m+1; A(n,0) = A(n - 1, 1); A(n,m) = A(n - 1, A(n, m - 1).
Der Typ Genau! Alles was ne Turing Maschine kann, sollte auch das Lambda-Kalkül können. Und wenn ich das richtig begriffen habe, gibt es dann Probleme, die man nicht mit Algorithmen lösen kann..
Wenn meine Oma mehr als 100000 mal hackt bekomme ich in der Konsole eine Fehlermeldung.Der Baum fällt nicht. Exception in thread "main" java.lang.StackOverflowError......etc.
Jungs ihr seid die besten kein Dozent erklärt das ganze so gut wie ihr. Jetzt habe ich bisschen Hoffnung, die Klausur doch zu bestehen. Danke euch!!
Gestern erst an Informatik Aufgaben verzweifelt ihr seid perfekt :)
Nice! :)
Wenn ich grade schon mal am Kommentieren bin, wollte ich euch mal sagen, dass es echt krass ist was ihr alles geschaffen habt sogar manche Lehrer von uns zeigen eure Videos im Unterricht um es zu veranschaulichen.... Und bei viele Klausuren und Tests habt ihr mich schon oft gerettet🤗
DANKE dafür 😍💗
Also prinzipiell stimmts ja, aber :
Bei 2:23 sieht es so aus als wollte ihr sagen, dass z.12 : baumfaellen(a-1) die Abbruchbedingung ist. Dabei ist es natürlich z.7 : if(a==1)!
Eine Abbruchbedingung kann ja nicht gleichzeitig der rekursive Aufruf sein.
Wie der Name schon sagt, es ist die Bedingung um abzubrechen und nicht mehr in die Rekursion zu gehen.
Wenn man nun außerdem eure Methode mit Werten kleiner 1 aufrufen würde, dann hätte man eine Endlosrekursion was in Java in einem Stackoverflow resultiert, weil die Abbruchbedingung ja dann nie erreicht wird.
if(a
"Bei der Rekursion ruft sich eine Methode immer wieder selbst auf" und genau das musste ich hören.
Schöne Auffrischung des gelernten, hab lange nicht mehr selbst programmiert muss es aber jetzt jemandem erklären, danke.
Simpleclub Informatik Channel so underrated
Danke Leute ihr habt mein Leben gerettet hab eine GSL über Rekursionen und bis jetzt hab ich viel danach gegoogelt aber keiner kanns so gut erklären wie ihr XD Ihr seid die besten :))
Sehr gut
Mit dem Thema haben wir vorgestern im Unterricht angefangen 💪🏼
Nice! :)
Ihr rettet mir grad den Arsch Jungs.
danke für das Video. Ich weiß nun wo mein Problem ist, ich kenne den ganzen Theoretischen Teil bereits, aber ich muss lernen ihn Computersprachentechnisch zu programmieren
2:54 Geile Scheizä! Jetzt kann ich auch ein Minecraft programmieren!
Wie weit bist du? xD
2:23 Hier wurde doch auf den Rekursionsschritt gezeigt, die Abbruchbedingung ist doch oben das if(a==1) oder?
ja
Ist bei 2:24 nicht if(a==1) der Abbruchsfall? Weil wenn a nach einer gewissen anzahl von Rekursionen = 1 ist und die Rekursion aufhört?
Schon wieder ein Klassenname, der mit einem Kleinbuchstaben beginnt :(
Sowas gehört verboten :D
fuckt ab oder? :D
ne spaß in Java mach ich das auch manchmal xD
Wer Namensconventions nicht einhält hat ekelhaften Code! Du hast wohl nicht so viel erfahrung in Programmierung oder?
Daniel Däschle doch eigentlich schon nur in Java hab ich mir das irgendwie so angewöhnt in anderen Sprachen zB C# schreibe ich Methoden auch groß. Java war meine erste Sprache und da hab ich nie drauf geachtet aber weils funktioniert hat ist mir das irgendwie egal geworden
Hmm, grad in Java und so gehört das groß! :D
Wieso kommt bei 4:20 nicht 1 raus? Ihr decrementiert doch einfach a bis es 1 ist und gebt dann den Wert 1 zurück. Wieso sollten die return-Werte aus dem else Block überhaupt berücksichtigt werden?
Die Methode wird insgesamt drei mal aufgerufen; der zweite Aufruf geschieht während des ersten Aufrufes, und der dritte Aufruf während des zweiten. Wenn also im dritten Aufruf die 1 zurückgegeben wird, landen wir im zweiten Aufruf, in dem jetzt als Rückgabewert "2 * " steht, also "2 * 1": das ganze wird dann in den ersten Aufruf zurückgegeben, wo dann "3 * " steht, also "3 * ´2 * 1´", womit dann insgesamt 6 zurückgegeben wird.
Habe jetzt sehr oft die Wörter Aufruf und Rückgabe verwendet, aber darum geht es halt...
E: oh.. vor 3 Monaten, naja vielleicht hat ja irgendwann jemand nochmal die gleiche Frage
Das hat mir zum verstehen noch gefehlt! Vielen Dank!!!
einfach toll ...... ^_^ ....danke euch
Haut mal ein Video zu Vererbung in Java raus, wäre echt korrekt! :D :)
Rekursion ist so, als würde man sagen: Rekursion ist Rekursion. Die Definition für Rekursion ist nämlich rekursiv, das bedeutet: Wer Rekursion verstehen will, muss vorher Rekursion verstehen. Verständlicherweise muss man daher, um die Rekursion zu verstehen, nicht nur erst die Rekursion verstehen, sondern auch zuerst die Rekursion verstehen.
Dieser Moment du hast Informatik in der Oberstufe nur gewählt weil du in allem anderen Fächern noch schlechter warst du in 7 Stunden Klausur schreibst aber komplett unvorbereitet bist weil du erst um 12 uhr abends angefangen hast zu lernen
Und dann liest du all diese Informatiker Witze
Me
Hatte keine Lust auf Bio und kann Chemie und Französisch nicht (Physik Englisch LK), hab deswegen Info. War n Fehler. :)
Geil! Danke für das Video!
welches Programm benutzt ihr eigentlich, um eure Videos auf diese simple Art und Weise zu visualisieren?
Besser als ne Stunde Vorlesung wo man am ende eh nix versteht xD
Und so schnell ist der Klassenname klein geschrieben :P Super Videos !
Stark!
Ich liebe euch
Hey ich hab son bisschen ein Problem JUnit Tests zu schreiben. Könnt ihr dazu auch mal ein Video machen?
Ist notiert :)
Wieso springt denn bei der Rekursion das Programm zurück zum Beginn von der ifAnweisung? Da kommt ja kein Befehl der dafür sorgt. Könnte mir das bitte jemand erklären?
Ja das mit der Omma, ist echt eher ne Schleife.
Naja, eher beides.
1:53 Und wie würde das in C++ ausshene? ://
Habs jetzt nicht ausprobiert und bin auch kein C++ Profi, aber das sollte laufen:
void baumfaellen(int a)
{
cout
@@eggerslayer yooo, danke!!
Leute, morgen werd ich gerupft 😂🪦
nice Video! Könnt ihr dasselbe für C++ machen ?
Thx Boyzzz
Das Beispiel mit der Omma ist aber eigentlich keines für eine Rekursion, sondern für eine Schleife, was ihr ja auch erwähnt habt. In solch einem Fall hat es überhaupt keinen Sinn, das Ganze rekursiv zu lösen, das belastet nur den Arbeitsspeicher, da der Stack der Methodenaufrufe vollläuft. In einer rekursiven Methoden ist i.d.R. ein return-Statement, das einen Wert zurückgibt, der von einem weiteren Aufruf der Methode kommt... Das Beispiel mit der Fakultät ist da eher sinnvoll.
Ah, und Code Conventions... bitte
Welches Semester bist du den ?
Auf das wäre ich jetzt nicht gekommen xD
x4v33r **hust** 10. Klasse **hust** ^^
Also letzte Klasse Gymnasium ?
x4v33r Naja, die Oberstufe hab ich noch vor mir
würde mich über die ackermann funktion freuen
Wenn man der Methode *rechneFakultaet* den wert 2 übergibt, kommt dann nicht 1 raus?
Das heißt die Funktion zwischenspeichert den Wert mit jeder Iteration?
Kannst du bitte mir erklären warum du im Parameter (int a) gegeben hast du könntest einfach unten es deklarieren
Ein antwort bitte was über Haupt Parameter sind und wann man was reinschreiben kann
Hab grade mal Rekursion gegooglet
und gemerkt dass das "Meintest du: Rekursion " nur eine verarsche ist.. :D
Manchmal ist Google einfach best!
Warum sind rekursive Mehtoden immer static ?
Immer wieder erstaunlich wie ihr die einzigen zu sein scheint die wissen, was beim erklären von Algorithmen wichtig ist.
Kann mir jemand sagen, wann es Sinn macht welche Schleife zu benutzen? Ich weiß nie so richtig ob ich ne while, if, do-while oder ne recursion benutzen soll. Wär cool, wenn mir einer ein bisschen helfen könnte. Für nen link oder literaturvorschlag, wo das verständlich erklärt ist, wär auch sehr dankbar.
do-while: Die Operation wird mindestens einmal, maximal so oft, wie oft die Schleifenbedingung erfüllt ist, ausgeführt.
while: Die Operation wird "mindestens 0-mal" (ist also optional), maximal so oft, wie oft die Schleifenbedingung erfüllt ist, ausgeführt.
if: Die Operation wird einmal oder keinmal ausgeführt.
Rekursion ist zwar cool, aber nach einer bestimmten Anzahl (die kleiner ist als man denken würde!) ist sie recht uneffizient (im Vergleich zu einer richtig geschriebenen iterativen Methode).
Was soll das bedeuten? Die 100.000.000-ste Fibonacci-Zahl wirst du wohl nicht mit Rekursion berechnen wollen, weil du gleich nach dem Starten schlafen gehen kannst und schaust dann am nächsten Tag, was die Zahl ist (ok das ist übertrieben, aber wenn du so einen PC hast, dann kann das schon passieren).
Iterativ ist die Sache mit einem Methodenaufruf und insbesondere mit einer einzigen Rechnung erledigt.
würde mich auch über Merge sort und Aufwandsbetrachtungen freuen
Ist notiert :)
Danke 😍 und könntet ihr auch noch Themen von Kommunikations- und Ortungstechnik , Betriebssysteme (C Programmierung) machen.. bald sind dir Klausuren und der Lehrer ist so schlecht 😣
berichtigt mich wenn ich falsch liege aber sollte das programm in diesem fall nicht nur 4 mal hacken ausgeben und dann baum fällt? bei a == 0 würde es 5 mal hacken ausgeben.. so ist es zu mindest in meinem programm und ich habs 1:1 so geschrieben wie the simple club in dem video.. bin verwirrt
Ja hast schon recht, aber in dem Video steht auch 5 x hacken
int a = 5
hacken
a ungleich 1 --> baumfällen (4) -->
hacken
a ungleich 1 --> baumfällen (3) -->
hacken
a ungleich 1 --> baumfällen (2) -->
hacken
a ungleich 1 --> baumfällen(1) -->
hacken
a gleich 1 --> baum fällt
also 5 * hacken und ein Baum fällt...
Könnt ihr ein Video über ECM machen
Ist notiert :)
Ich finde die 7 tage Testversion nicht würde echt gerne testen :/
Bitte hilfe
Die App an sich ist kostenlos und die ersten Cheats kannst du dir auch holen :)
Was heißt return 3 * rechneFakultaet (3-1)
Hilfeeee
mehr informatik videos
bitte
auch was fürs abi
Wir sind dran 💪
0:00 Wenn man mehr kennen würde, würden einem die Videos nicht mehr gefallen :D
könnt ihr Mal Assembler erklären
download dir ein x86 assembler ebook
😊
LebensreterLebensreter
Viel geiler, wenn ich eure Webseite aufrufen will, sperrt mein Virenprogramm diese Webseite.
Beim Verbinden mit simpleclub.com trat ein Fehler auf. SSL hat einen Eintrag erhalten, der die maximal erlaubte Länge überschritten hat. Fehlercode: SSL_ERROR_RX_RECORD_TOO_LONG
in den Einstellungen kannst du es abändern, dass unsere Seite erlaubt ist :)
Sonst einfach die App runterladen :)
BaumFällen method.....Das war sehr lustig....
Würde das ganze nicht auch über eine While Schleife funktonieren ?
Klar, geht auch
Das ist alles super erklärt und im Detail gezeigt, Daumen hoch dazu! :D
Aber Rekursion benutzt man doch eig lieber mit Algorithmen die man nicht iterierin (gibt's das Verb?) kann wie ua die Ackermann Funktion, oder irre ich mich da total ? Oo
(siehe Computerphile "Recursion" und "Ackermann")
Ich dachte eigentlich, dass es zu jedem rekursiven Algorithmus einen iterativen gibt.
Der Hauptanwendungszweck von Rekursionen ist aber meines Wissens, sobald es ums Backtracking (Damenproblem, Springerproblem etc.), eventuell auch beim dynamischen Programmieren, bei Tiefensuche, bli, bla, blub,...
Nein zur jedem rekursivem Algo gibt es keine Iterative (wie Ackermann zB). Ackermann geht dabei so:
A(0,m) = m+1;
A(n,0) = A(n - 1, 1);
A(n,m) = A(n - 1, A(n, m - 1).
Mit dem Lambda Kalkül kann man auch eine iterative Ackermannfunktion implementieren:
ack ≡ λn. n (λf.λm. m f (f 1)) succ
Der Typ Genau! Alles was ne Turing Maschine kann, sollte auch das Lambda-Kalkül können. Und wenn ich das richtig begriffen habe, gibt es dann Probleme, die man nicht mit Algorithmen lösen kann..
Versucht mal den Quicksort Iterativ. Wer es schafft und es mir zeigt kriegt 2€ ^^
Hallo,
weiß jemand welche Präsentationssoftware die Jungs benutzen?
Würde mich über eine Antwort freuen und bedanke mich im Voraus 🙂
Prezi evtl?
Ich kann nicht mehr :[
hat echt keiner die Aufgabe gemacht, den Rekursionsteil in die if-Abfrage zu legen? Die Jugend von heute... tztztzz
Weniger labern, mehr fakten. Die coole Musik und die hippen Soundeffekts kann man schon machen, stört aber eher mMn
1.
euer Code funktioniert halt in der Realität nicht mal 👎🏿👎🏿👎🏿
Wenn meine Oma mehr als 100000 mal hackt bekomme ich in der Konsole eine Fehlermeldung.Der Baum fällt nicht.
Exception in thread "main" java.lang.StackOverflowError......etc.
Du kannst die Oma halt nicht so oft hacken lassen, sonst wird die Rekursion so groß vom Speicherverbrauch, dass du einen Fehler bekommst.
Das liegt daran, dass ab 500 hacken die Rekusion abkackt xD. Dann muss man eigentlich auch Iterativ wechseln