web-dev-qa-db-fra.com

Comment expliquer «récursivité» à un enfant de 8 ans?

Duplicata possible:
En anglais, qu'est-ce que la récursivité?

Quelle est la meilleure façon d'expliquer " récursivité " à un enfant de 8 ans?

J'ai essayé avec le Fibonacci Series mais j'ai échoué.

24
Soner Gönül

Eh bien, la récursivité est en fait assez simple à comprendre pour les enfants. N'essayez pas avec les mathématiques ou ce que les autres personnes suggèrent ici. Ils sont trop jeunes pour le comprendre. C'est trop abstrait et ennuyeux pour eux.

Au lieu de cela: montrez-leur une image d'un peintre qui peint une image d'un peintre qui peint une image ...

Quelque chose comme ça: Recursive painting

Il existe probablement de meilleurs exemples sur le Web. Et croyez-moi: ils le comprendront en un rien de temps.

Quelle que soit la question, je pense que tout enfant devrait posséder un livre avec des peintures de M. C. Escher. Ce sera bon pour leur développement et leur créativité.


Modifier:

Dernièrement, j'ai réalisé que vous pouvez également expliquer la récursivité aux enfants en utilisant de la nourriture. Prenez le brocoli ou le chou-fleur par exemple:

Broccoli

Ce sont des légumes fractals. Déchirez-les et vous constaterez que les plus petites parties ressembleront au grand ensemble que vous aviez autrefois, juste plus petit. Cela a l'avantage que vous pouvez apprendre à votre enfant la récursivité en mangeant. Ne riez pas! Les enfants s'en souviendront mieux, car il est lié à leur repas (et donc important pour leur conscience) et ils peuvent le comprendre. Un terme allemand pour "comprendre" est "begreifen", qui signifie littéralement "toucher quelque chose pour le comprendre". Essayez-le vous-même. Il est beaucoup plus facile de se souvenir de quelque chose que vous avez déjà touché.

61
Falcon

Lisez cette phrase et faites ce qu'elle dit deux fois.

Toutes mes excuses pour toute exception BrainStackOverflowExceptions

23
Callum Rogers

Lorsque le formateur appelle Pokémon, c'est un appel de fonction "normal". Si Pokémon pouvait s'appeler de Pokeball, ce serait un appel récursif (A-t-il regardé Pokémons?).

Quand chanteur, par ex. Eminem, commence à appeler des noms comme - Dr. Dre, 50 centimes (appels normaux), Eminem (récursivité).

Quand papa conduit la voiture, c'est "un appel normal". Quand Bob le constructeur se conduit, c'est la récursivité.

4
StupidOne

Logo.

Autres fractales suggérées, c'est une bonne idée. Mais Logo vous permet de faire trivialement des fractales soignées.

Le flocon de neige du Koch:

 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

Utilisez ensuite différentes "formes de base". Le flocon de neige de Koch est _/\_ défini par "avant, gauche 60, avant, droite 120, avant, gauche 60, avant. Autres à essayer:

    _|_ 
      _
    _| |_

    /\

    __|

    __|_

    |\

... en pensant à toujours tourner à la fin pour faire face à la même direction qu'au début.

Plus tard, vous pouvez suggérer d'inclure quelques petites différences, comme utiliser 59 degrés au lieu de 60 ...

Généralement, Logo est un langage génial pour enseigner la récursivité.

4
SF.

Utilisez un monstre mathématique comme l'ensemble Julia ou Mandebrot sous forme fractale. Cela donnera à l'enfant quelque chose de tangible à saisir. Chaque fois que vous réduisez le problème, il a la même apparence, il est juste plus petit. L'exemple miroirs infinis fonctionne aussi bien qu'un exemple tangible.

2
World Engineer

Je commencerais par un exemple du monde réel. Utilisez quelque chose qui n'est pas lié au code, comme les poupées matriochka comme méthaphore pour expliquer l'approche de base derrière la récursivité. (diviser pour mieux régner) puis utiliser un exemple visuel simple côte à côte avec le code pour expliquer comment cela se rapporte à la récursivité dans le code. Le Triangle de Sierpinski tel que mentionné par Mihai Maruseac est un bon début. Fibonacci est un bon suivi pour quelque chose d'abstrait sans visuels assortis. s'il ne reçoit pas de fibonacci, faites-lui comprendre les mathématiques avant d'expliquer le code. Il doit comprendre l'algorithme avant de pouvoir comprendre le code qui l'accomplira.

2
Onno

Donnez-lui (elle?) Quelque chose qu'il peut dessiner, comme un Koch Snowflake ou l'une de ses variantes.

Pour les formules, donnez-lui quelque chose de concret auquel il peut se rapporter, plutôt que de simples chiffres. Comme, le nombre de legos dans une boîte après avoir appliqué l'étape suivante de l'algorithme (que je conseillerais d'appeler quelque chose de moins effrayant, comme un virage ou une étape).

Oh, et évitez de mentionner l'infini. Préférez: et encore, et encore, et encore ... Faites le panoramique pour qu'il ait l'impression de jouer à un jeu.

Le point est, assurez-vous que vous êtes extrêmement concret. Les enfants de 8 ans peuvent être intelligents, mais leur cerveau n'est pas vraiment équipé à cet âge pour saisir ce niveau d'abstraction.


Une approche supplémentaire qui pourrait fonctionner est d'élaborer, avec lui, l'algorithme qui résout une tour de Hanoi, un cube de rubis ou même un simple puzzle (faites un puzzle simple avec l'image face au sol, et vous finirez rapidement travailler comme un ordinateur, essayer des combinaisons une à la fois).

2
Denis de Bernardy

Comme suggéré, utilisez des fractales. Triangle de Sierpinski est le meilleur pour ce cas.

Ensuite, passez à factorielle, longueur de liste, somme de liste, formules mathématiques simples dans ce domaine.

Plus tard, passez à des algorithmes plus complexes comme Lee mais laissez-le le faire, faites-le comme un jeu.

1
Mihai Maruseac

échec épique.

Vous n'utilisez pas l'exemple de Fibonacci pour expliquer la signification de la récursivité, mais vous l'utilisez pour expliquer le pouvoir d'utilisation de la récursivité.

si vous voulez expliquer une récursion de 8 ans, utilisez la série linéaire 1,2,3,4,5, ..

et dites-lui: disons que vous connaissez l'élément k et que vous voulez connaître l'élément suivant, vous pouvez exprimer les choses de plusieurs façons, l'une d'entre elles est k1 = 1 k2 = k1 +1 k3 = k2 +1 k4 = k3 +1 k5 = k4 +1 k6 = k5 +1 l7 = l6 +1 k8 = k7 +1

alors vous dites, eh bien je ne veux pas tous les écrire, donc je veux le généraliser, et une façon de le faire est de dire K = k + 1 numéro cible le nombre dont nous connaissons le pas vers l'élément suivant.

alors faites-le pour les séries -1, -2, -3, -4, ...

alors faites-le pour les séries 2,4,6,8, ..

puis demandez à l'enfant de créer une série.

maintenant laissez-le y penser pendant une journée, et après une journée, montrez quelque chose de plus significatif et utile, comme l'utilisation du calcul de la puissance, et dites que c'est une série finie qui s'arrête à l'élément numéro 1, et nous la calculons à l'envers: 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

vous pouvez maintenant réessayer Fibonacci.

quoi que vous essayiez, cela prendra quelques jours, car l'esprit doit s'adapter à la prochaine syntaxe de récursivité qui n'est pas normale à tout être humain qui ne le sait pas.

1
Display Name