it-swarm.com.de

Wie erkläre ich einem 8-jährigen Kind "Rekursion"?

Mögliches Duplikat:
Was ist Rekursion im Klartext?

Was ist der beste Weg, um einem 8-jährigen Kind " Rekursion " zu erklären?

Ich habe es mit der Fibonacci-Serie versucht, aber ich habe versagt.

24
Soner Gönül

Nun, Rekursion ist für Kinder eigentlich ziemlich einfach zu verstehen. Versuchen Sie es nicht mit Mathematik oder was auch immer die anderen Leute hier vorschlagen. Sie sind zu jung, um es zu verstehen. Es ist zu abstrakt und langweilig für sie.

Stattdessen: Zeigen Sie ihnen ein Bild eines Malers, der ein Bild von einem Maler malt, der ein Bild malt ...

Etwas wie das: Recursive painting

Es gibt wahrscheinlich noch bessere Beispiele im Internet. Und vertrau mir: Sie werden es in kürzester Zeit verstehen.

Unabhängig von der Frage denke ich, dass jedes Kind ein Buch mit Gemälden von M. C. Escher besitzen sollte. Es wird gut für ihre Entwicklung und Kreativität sein.


Edit :

In letzter Zeit habe ich festgestellt, dass man Kindern die Rekursion auch durch Essen erklären kann. Nehmen Sie zum Beispiel Brokkoli oder Blumenkohl:

Broccoli

Dies sind fraktale Gemüse. Wenn Sie sie auseinander reißen, werden Sie feststellen, dass die kleineren Teile wie das große Ganze aussehen, das Sie einmal hatten, nur kleiner. Dies hat den Vorteil, dass Sie Ihrem Kind beim Essen die Rekursion beibringen können. Lach nicht! Kinder werden sich besser daran erinnern, weil es mit ihrer Mahlzeit zusammenhängt (und daher wichtig für ihr Bewusstsein ist) und sie es verstehen können. Ein deutscher Begriff für "begreifen" ist "begreifen", was wörtlich "etwas berühren, um es zu verstehen" bedeutet. Versuch es selber. Es ist viel einfacher, sich an etwas zu erinnern, das Sie einmal berührt haben.

61
Falcon

Lesen Sie diesen Satz und tun Sie zweimal, was er sagt.

(Entschuldigung für alle BrainStackOverflowExceptions

23
Callum Rogers

Wenn der Trainer Pokemon anruft, ist dies ein "normaler" Funktionsaufruf. Wenn Pokemon sich von Pokeball aus anrufen könnte, wäre das ein rekursiver Aufruf (Hat er Pokemons gesehen?).

Wenn Sänger, z. Eminem ruft Namen wie Dr. Dre, 50 Cent (normale Anrufe), Eminem (Rekursion).

Wenn Papa das Auto fährt, ist es "normaler Anruf". Wenn Bob der Baumeister selbst fährt, ist es Rekursion.

4
StupidOne

Logo.

Andere vorgeschlagene Fraktale, das ist eine gute Idee. Mit Logo können Sie jedoch trivial saubere Fraktale erstellen.

Die Kochs Schneeflocke:

 to koch :level :len
   ifelse :level == 0 
     [ fd :len ] 
     [ koch level-1 len/3
       lt 60  
       koch level-1 len/3  
       rt 120
       koch level-1 len/3 
       lt 60
       koch level-1 len/3 ]
 end

 koch 5 100
 rt 120
 koch 5 100
 rt 120
 koch 5 100

Verwenden Sie dann verschiedene "Grundformen". Kochs Schneeflocke ist _/\_ definiert durch "vorwärts, links 60, vorwärts, rechts 120, vorwärts, links 60, vorwärts. Andere zu versuchen:

    _|_ 
      _
    _| |_

    /\

    __|

    __|_

    |\

... daran denken, immer am Ende in die gleiche Richtung wie am Anfang zu drehen.

Später können Sie vorschlagen, einige kleine Abweichungen zu berücksichtigen, z. B. 59 Grad anstelle von 60 ...

Im Allgemeinen ist Logo eine großartige Sprache, um Rekursion zu lehren.

4
SF.

Verwenden Sie ein mathematisches Monster wie Julia oder Mandebrot in fraktaler Form. Dies gibt dem Kind etwas Greifbares zum Greifen. Jedes Mal, wenn Sie das Problem reduzieren, sieht es gleich aus, es ist nur kleiner. Das Beispiel nendliche Spiegel funktioniert genauso gut wie ein konkretes Beispiel.

2
World Engineer

Ich würde mit einem Beispiel aus der realen Welt beginnen. Verwenden Sie etwas, das nicht mit dem Code zu tun hat, wie beispielsweise Matroschka-Puppen, als Methaphor, um den grundlegenden Ansatz der Rekursion zu erklären. (Teilen und Erobern) Verwenden Sie dann ein einfaches visuelles Beispiel neben dem Code, um zu erklären, wie dies mit der Rekursion im Code zusammenhängt. Das von Mihai Maruseac erwähnte Sierpinski-Dreieck ist ein guter Anfang. Fibonacci ist eine gute Fortsetzung für etwas Abstraktes ohne passende Grafik. Wenn er keine Fibonacci bekommt, muss er die Mathematik verstehen, bevor er den Code erklärt. Er muss den Algorithmus verstehen, bevor er den Code verstehen kann, der ihn ausführen wird.

2
Onno

Geben Sie ihm (ihr?) Etwas, das er zeichnen kann, wie eine Koch-Schneeflocke oder eine ihrer Variationen.

Geben Sie ihm für Formeln etwas Konkretes, auf das er sich beziehen kann, und nicht nur Zahlen. Wie die Anzahl der Legos in einer Box nach dem Anwenden des nächsten Schritts im Algorithmus (was ich empfehlen würde, etwas weniger beängstigendes zu nennen, wie eine Drehung oder einen Schritt).

Oh, und vermeiden Sie es, die Unendlichkeit zu erwähnen. Bevorzugen: und immer wieder und immer wieder ... Schwenken Sie es heraus, damit er den Eindruck bekommt, ein Spiel zu spielen.

Der Punkt ist, stellen Sie sicher, dass Sie extrem konkret sind. 8-Jährige können klug sein, aber ihr Gehirn ist in diesem Alter nicht wirklich in der Lage, diese Abstraktionsebene zu erfassen.


Ein zusätzlicher Ansatz, der funktionieren könnte, besteht darin, mit ihm den Algorithmus zu erarbeiten, der einen Turm von Hanoi, einen Rubikwürfel oder sogar ein einfaches Puzzle löst (machen Sie ein einfaches Puzzle mit dem Bild zum Boden und Sie werden schnell enden wie ein Computer arbeiten und nacheinander Kombinationen ausprobieren).

2

Verwenden Sie wie vorgeschlagen Fraktale. Sierpinskis Dreieck ist für diesen Fall am besten geeignet.

Fahren Sie dann mit Fakultät, Länge der Liste, Summe der Liste und einfachen mathematischen Formeln in diesem Bereich fort.

Wechseln Sie später zu komplexeren Algorithmen wie Lee , aber lassen Sie ihn darauf kommen, machen Sie es wie ein Spiel.

1
Mihai Maruseac

episches Versagen.

Sie verwenden das Fibonacci-Beispiel nicht, um die Bedeutung der Rekursion zu erklären, sondern um die Macht der Verwendung der Rekursion zu erklären.

wenn Sie eine 8 Jahre alte Rekursion erklären möchten, verwenden Sie die lineare Reihe 1,2,3,4,5, ..

und sag ihm: Nehmen wir an, Sie kennen das k-Element und möchten das nächste Element kennen. Sie können die Dinge auf verschiedene Arten ausdrücken. Eine davon ist k1 = 1 k2 = k1 +1 k3 = k2 +1 k4 = k3 +1 k5 = k4 +1 k6 = k5 +1 17 = 16 + 1 k8 = k7 + 1

dann sagst du, nun, ich möchte nicht alle aufschreiben, also möchte ich es verallgemeinern, und eine Möglichkeit, dies zu tun, besteht darin, K = k + 1 Zielnummer zu sagen, die Zahl, die wir kennen, den Schritt zum nächsten Element.

dann mach es für die Serien -1, -2, -3, -4, ...

dann mach es für die Serie 2,4,6,8, ..

bitten Sie dann das Kind, eine Serie zu entwickeln.

lassen Sie ihn nun einen Tag lang darüber nachdenken und nach einem Tag etwas Bedeutenderes und Nützlicheres zeigen, wie die Verwendung von Rechenleistung, und sagen Sie, dass dies eine endliche Reihe ist, die bei Element Nummer 1 endet, und wir berechnen sie rückwärts: 2 ^ 5 = 2 ^ 4 * 2 2 ^ 4 = 2 ^ 3 * 2 2 ^ 3 = 2 ^ 2 * 2 2 ^ 2 = 2 ^ 1 * 2 = 2 * 2 = 4 2 ^ 3 = 4 * 2 = 8 2 ^ 4 = 8 * 2 = 16 2 ^ 5 = 16 * 2 = 32

jetzt können Sie Fibonacci erneut versuchen.

was auch immer Sie versuchen, es wird einige Tage dauern, da sich der Geist an die nächste Syntax der Rekursion anpassen muss, die für keinen Menschen normal ist, der nichts davon weiß.

1
Display Name