it-swarm.asia

8 yaşındaki bir çocuğa "Özyineleme" yi nasıl açıklayabilirim?

Olası Kopya:
Sade İngilizce'de özyineleme nedir?

8 yaşındaki çocuğa " Özyineleme " açıklamanın en iyi yolu nedir?

Fibonacci Series ile denedim ama başarısız oldum.

24
Soner Gönül

Peki, özyineleme aslında çocuklar için kavramak oldukça basittir. Matematik ya da buradaki diğer insanlar ne önerirse onu denemeyin. Bunu anlayamayacak kadar gençler. Onlar için çok soyut ve sıkıcı.

Bunun yerine: Onlara resim çizen bir Ressamın resmini çizen bir Ressamın resmini göster ...

Bunun gibi bir şey: Recursive painting

Web'de bulunacak muhtemelen daha iyi örnekler vardır. Ve güven bana: Kısa sürede anlayacaklar.

Sorudan bağımsız olarak, herhangi bir çocuğun M.C. Escher'ın resimlerini içeren bir kitabı olması gerektiğini düşünüyorum. Onların gelişimi ve yaratıcılığı için iyi olacak.


Düzenleme:

Son zamanlarda, gıda kullanarak da çocuklara özyinelemeyi açıklayabileceğinizi fark ettim. Örneğin brokoli veya karnabahar alın:

Broccoli

Bunlar fraktal sebzeler. Onları parçalayın ve küçük parçaların bir zamanlar sahip olduğunuz büyük bütün gibi görüneceğini göreceksiniz, sadece daha küçük. Bunun avantajı, yemek yerken çocuğunuza özyinelemeyi öğretebilmenizdir. Gülme! Çocuklar bunu daha iyi hatırlayacaktır, çünkü yemekleriyle ilgilidir (ve böylece bilinçleri için önemlidir) ve anlayabilirler. "Anlamak" için Almanca bir terim "begreifen" dir, bu da kelimenin tam anlamıyla "onu anlamak için bir şeye dokunmak" anlamına gelir. Kendin dene. Bir zamanlar dokunduğunuz bir şeyi hatırlamak çok daha kolay.

61
Falcon

Bu cümleyi okuyun ve söylediklerini iki kez yapın.

Herhangi bir BrainStackOverflowExceptions için özür dileriz

23
Callum Rogers

Eğitmen Pokemon'u aradığında "normal" işlev çağrısıdır. Pokemon kendini Pokeball'dan arayabilseydi, bu yinelemeli bir çağrı olurdu (Pokemonları izledi mi?).

Şarkıcı olduğunda, ör. Eminem, Dr. Dre, 50 cent (normal çağrılar), Eminem (özyineleme) gibi isimleri aramaya başlar.

Baba arabayı sürdüğünde, "normal çağrı" dır. İnşaatçı Bob kendini sürdüğünde, özyineleme.

4
StupidOne

Logo.

Diğer önerilen fraktallar, bu iyi bir fikir. Ancak Logo, önemsiz fraktallar yapmanıza izin verir.

Koch'un kar tanesi:

 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

Sonra çeşitli "temel şekiller" kullanın. Koch'un Kar Tanesi _/\_ "ileri, sol 60, ileri, sağ 120, ileri, sol 60, ileri ile tanımlanır. Diğerleri denemek için:

    _|_ 
      _
    _| |_

    /\

    __|

    __|_

    |\

... her zaman başlangıçta olduğu gibi aynı yöne bakmayı unutmayın.

Daha sonra, 60 yerine 59 derece kullanmak gibi küçük tutarsızlıklar eklemeyi önerebilirsiniz ...

Genel olarak, Logo özyineleme öğretmek için harika bir dildir.

4
SF.

Fraktal formda set Julia veya Mandebrot gibi bir matematiksel canavar kullanın. Bu çocuğa kavraması somut bir şey verecektir. Sorunu her azalttığınızda, aynı görünüyor, sadece daha küçük. sonsuz aynalar örneği somut bir örnek kadar iyi çalışır.

2
World Engineer

Gerçek bir dünya örneği ile başlardım. Özyineleme arkasındaki temel yaklaşımı açıklamak için metafor olarak matryoshka bebekleri gibi kodla ilgili olmayan bir şey kullanın. (böl ve fethet), bunun koddaki özyineleme ile nasıl ilişkili olduğunu açıklamak için kodla yan yana basit bir görsel örnek kullanın. Mihai Maruseac'ın belirttiği gibi Sierpinski'nin Üçgeni güzel bir başlangıç. Fibonacci, görsellik içermeyen soyut bir şey için iyi bir takiptir. eğer fibonacci'yi almazsa, kodu açıklamadan önce matematiği anlamasını sağlayın. Bunu başaracak kodu anlamadan önce algoritmayı anlaması gerekir.

2
Onno

Ona çizebileceği bir şey verin, örneğin Koch Snowflake veya varyasyonlarından biri.

Formüller için, ona sadece sayılardan ziyade ilişki kurabileceği somut bir şey verin. Örneğin, algoritmada bir sonraki adımı uyguladıktan sonra bir kutudaki lego sayısı (bir dönüş veya adım gibi daha az korkutucu bir şey demenizi tavsiye ederim).

Ah, sonsuzluktan bahsetmekten kaçının. Tercih et: ve tekrar tekrar ve tekrar ve tekrar ... Pan oynatın, böylece oyun oynadığı izlenimini edinir.

Önemli olan, son derece somut olduğunuzdan emin olun. 8 yaşındakiler akıllı olabilir, ancak beyinleri bu yaşta bu soyutlama seviyesini kavramak için gerçekten donanımlı değildir.


İşe yarayabilecek ekstra bir yaklaşım, onunla birlikte, bir Hanoi kulesini, bir rubik küpünü veya hatta basit bir bulmacayı çözen algoritmayı çalışmaktır (resme zemine bakacak şekilde basit bir bulmaca yapın ve hızlı bir şekilde sona ereceksiniz. bilgisayar gibi çalışır, kombinasyonları birer birer dener).

2

Önerildiği gibi, fraktallar kullanın. Sierpinski'nin Üçgeni bu durum için en iyisidir.

Ardından, bu alandaki faktöryel, liste uzunluğu, liste toplamı, basit matematiksel formüllere geçin.

Daha sonra Lee gibi daha karmaşık algoritmalara geçin, ancak onunla gelmesine izin verin, bir oyun gibi yapın.

1
Mihai Maruseac

büyük hata.

Fibonacci örneğini özyinelemenin anlamını açıklamak için değil, özyinelemenin kullanım gücünü açıklamak için kullanın.

8 yaşındaki bir özyinelemeyi açıklamak istiyorsanız, 1,2,3,4,5,.

ve ona söyle: diyelim ki k elementini biliyorsun ve bir sonraki elementi bilmek istiyorsun, şeyleri birkaç şekilde ifade edebilirsin, bunlardan biri k1 = 1 k2 = k1 +1 k3 = k2 +1 k4 = k3 +1 k5 = k4 +1 k6 = k5 +1 l7 = l6 +1 k8 = k7 +1

sonra diyorsun ki, hepsini yazmak istemiyorum, bu yüzden genelleştirmek istiyorum ve bunu yapmanın bir yolu, K = k + 1 hedef numarasını bir sonraki elemana adım bildiğimiz sayıdır.

sonra -1, -2, -3, -4, ... için yapın.

sonra 2,4,6,8, serisi için yapın.

sonra çocuktan bir dizi bulmasını isteyin.

şimdi bir gün düşünmesine izin verin ve bir günden sonra, hesaplama gücü kullanımı gibi daha anlamlı ve kullanışlı bir şey gösterin ve bunun 1 numaralı öğede duran sonlu seriler olduğunu ve geriye doğru hesapladığımızı söyleyin: 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

şimdi Fibonacci'yi tekrar deneyebilirsiniz.

ne denerseniz, birkaç gün sürecektir, çünkü aklın, onu bilmeyen herhangi bir insan için normal olmayan bir sonraki tekrarlama sözdizimine ayarlaması gerekir.

1
Display Name