¿Cómo le explico "Recursión" a un niño de 8 años? [duplicar]

21

¿Cuál es la mejor manera de explicar " Recursion " a un niño de 8 años?

Lo intenté con Fibonacci Series pero fallé.

    
pregunta Soner Gönül 18.07.2011 - 09:23

9 respuestas

58

Bueno, la recursión es en realidad bastante simple de entender para los niños. No lo intentes con las matemáticas o lo que sugieran las otras personas aquí. Son demasiado jóvenes para entenderlo. Es demasiado abstracto y aburrido para ellos.

En su lugar: Muéstreles una imagen de un pintor que está pintando una imagen de un pintor que está pintando una imagen ...

Algo como esto:

Probablementehaymejoresejemplosquesepuedenencontrarenlaweb.Yconfíaenmí:loentenderánenpocotiempo.

Independientementedelapregunta,creoquecualquierniñodebeposeerunlibroconpinturasdeM.C.Escher.Serábuenoparasudesarrolloycreatividad.

Editar:

Últimamentemehedadocuentadequetambiénsepuedeexplicarlarecursiónalosniñosusandoalimentos.Tomarbrócoliocoliflorporejemplo:

Estos son vegetales fractales. Sepáralos y verás que las partes más pequeñas se verán como el gran conjunto que alguna vez tuviste, pero más pequeño. Esto tiene la ventaja de que puede enseñarle a su hijo recursión mientras come. ¡No te rías! Los niños lo recordarán mejor, porque está relacionado con su comida (y, por lo tanto, es importante para su conciencia) y pueden comprenderlo. Un término alemán para "comprender" es "begreifen", que literalmente significa "tocar algo para poder entenderlo". Inténtalo tú mismo. Es mucho más fácil recordar algo que una vez tocaste.

    
respondido por el Falcon 18.07.2011 - 12:04
22

Lee esta oración y haz lo que dice dos veces.

Disculpas por cualquier BrainStackOverflowExceptions

    
respondido por el Callum Rogers 18.07.2011 - 12:34
4

Cuando el entrenador llama a Pokémon, es una llamada de función "normal". Si Pokemon pudiera llamarse a sí mismo desde Pokeball, sería una llamada recursiva (¿Vio Pokémon?).

Cuando el cantante, por ejemplo, Eminem, comienza a llamar a nombres como: Dr. Dre, 50 centavos (llamadas normales), Eminem (recursión).

Cuando papá conduce el auto, es "llamada normal". Cuando Bob el Constructor se maneja solo, es recursivo.

    
respondido por el StupidOne 18.07.2011 - 12:17
4

Logotipo.

Otros fractales sugeridos, esa es una buena idea. Pero Logo te permite hacer trivialmente buenos fractales.

El copo de nieve de 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

Luego usa varias "formas básicas". El copo de nieve de Koch es _/\_ definido por "adelante, izquierda 60, adelante, derecha 120, adelante, izquierda 60, adelante. Otros para probar:

    _|_ 
      _
    _| |_

    /\

    __|

    __|_

    |\

... recordando que siempre debes girar al final para mirar en la misma dirección que al principio.

Más adelante puede sugerir que se incluyan algunas pequeñas discrepancias, como usar 59 grados en lugar de 60 ...

En general, Logo es un lenguaje impresionante para enseñar recursión.

    
respondido por el SF. 18.07.2011 - 12:27
2

Usa un monstruo matemático como el conjunto de Julia o Mandebrot en forma fractal. Esto le dará al niño algo tangible para agarrar. Cada vez que reduce el problema, se ve igual, es más pequeño. El ejemplo infinite funciona también. Como ejemplo tangible.

    
respondido por el World Engineer 18.07.2011 - 09:33
2

Empezaría con un ejemplo del mundo real. Use algo que no esté relacionado con el código, como las muñecas matryoshka como una metáfora para explicar el enfoque básico detrás de la recursión. (divide y vencerás) luego usa un ejemplo visual simple al lado del código para explicar cómo se relaciona esto con la recursión en el código. El Triángulo de Sierpinski como lo menciona Mihai Maruseac es un buen comienzo. Fibonacci es un buen seguimiento de algo abstracto sin imágenes que coincidan. Si no tiene fibonacci, haz que entienda las matemáticas antes de explicar el código. Necesita entender el algoritmo antes de que pueda entender el código que lo logrará.

    
respondido por el Onno 18.07.2011 - 11:34
2

Dale (¿ella?) algo que pueda dibujar, como un Koch Snowflake o una de sus variaciones.

Para las fórmulas, dale algo concreto con lo que pueda relacionarse, en lugar de solo números. Como, número de legos en un cuadro después de aplicar el siguiente paso en el algoritmo (que aconsejaría llamar a algo menos aterrador, como un giro o un paso).

Ah, y evita mencionar el infinito. Prefiere: y otra vez, y otra vez, y otra vez ... Pásalo para que tenga la impresión de que está jugando un juego.

El punto es, asegúrate de que eres extremadamente concreto. Los niños de 8 años pueden ser inteligentes, pero su cerebro no está realmente equipado a esa edad para captar este nivel de abstracción.

Un enfoque adicional que podría funcionar es trabajar con él, el algoritmo que resuelve una torre de Hanoi, un cubo de rubics o incluso un simple rompecabezas (haz un simple rompecabezas con la imagen mirando hacia el piso y tú » Terminaré rápidamente trabajando como una computadora, probando combinaciones una a la vez.

    
respondido por el Denis de Bernardy 18.07.2011 - 11:39
1

Como se sugiere, use fractales. Triángulo de Sierpinski es el mejor para este caso.

Luego, pase a factorial, longitud de lista, suma de lista, fórmulas matemáticas simples en esta área.

Más tarde, cambie a algoritmos más complejos como Lee , pero deje que lo proponga, hágalo como un juego.

    
respondido por el Mihai Maruseac 18.07.2011 - 09:47
1

falla épica.

No utiliza el ejemplo de Fibonacci para explicar el significado de recursión, pero lo utiliza para explicar el poder de uso de la recursión.

si desea explicar a una recursión de 8 años, use la serie lineal 1,2,3,4,5, ..

y dile: digamos que conoces el elemento k, y quieres saber el siguiente elemento, puedes expresar las cosas de varias maneras, una de ellas es k1 = 1 k2 = k1 +1 k3 = k2 +1 k4 = k3 +1 k5 = k4 +1 k6 = k5 +1 l7 = l6 +1 k8 = k7 +1

luego dices, bueno, no quiero escribirlos todos, así que quiero generalizarlo, y una forma de hacerlo es decir K = k + 1 número de destino el número que conocemos, el paso al siguiente elemento.

entonces hazlo para las series -1, -2, -3, -4, ...

entonces hazlo para la serie 2,4,6,8, ..

luego pídele al niño que cree una serie.

ahora déjelo que lo piense por un día, y después de un día, muestre algo más significativo y útil, como el uso del poder de cálculo, y diga que esta es una serie finita que se detiene en el elemento número 1, y la calculamos hacia atrás: 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

ahora puedes probar Fibonacci de nuevo.

Lo que sea que intentes, tomará unos días, ya que la mente necesita ajustarse a la siguiente sintaxis de recursión que no es normal a cualquier ser humano que no sepa de ello.

    
respondido por el Display Name 18.07.2011 - 12:52

Lea otras preguntas en las etiquetas