Q: quelle est la meilleure façon d’obtenir la somme de tous les nombres entiers compris entre 1 et 100 ?
A: tout d’abord obtenir la somme de tous les nombres entiers compris entre 1 et 99, puis ajouter 100.
Silly, droite ? Il s’agit d’un exemple d’une technique puissante de fracture régner en programmation informatique appelée « recursion ». Récursivité traite une tâche de calcul comme un ensemble de calculs plus petits, similaires, avec le prochain calcul plus petit étant calculée, puis l’autre et l’autre, jusqu'à ce que vous arrivez à un « scénario de référence » avec une réponse connue. Pour l’étape suivante de l’exemple ci-dessus, pour obtenir la somme des nombres entiers compris entre 1 et 99, vous simplement additionner les nombres entiers compris entre 1 et 98, puis ajouter 99. Si vous continuez vers le bas de la chaîne, vous obtiendrez au cas de base de la somme des nombres entiers compris entre 1 et 1, que nous connaissons est 1.
Une bonne utilisation de la récursivité est d’écrire un programme qui peut vous donner la solution de l’énigme de la tour de Hanoi. Ce puzzle est montré dans l’image sur cette page. L’objectif est de déplacer tous les disques depuis le premier poste au troisième poste. Les règles du puzzle sont :
- Vous ne pouvez déplacer un disque à la fois d’un poste à l’autre, c'est-à-dire à un moment donné, au plus un disque peut être sur un poteau.
- Vous pouvez déplacer n’importe quel disque vers le second poste comme une aire de repos.
- Les disques ne peuvent être déplacés sur le dessus un disque plus petit.
Comment peut ce puzzle être décomposé en parties plus petites ? Comme le montrent les images, cette version de 7-disque du puzzle tour de Hanoi peut être résolue comme :
- Résoudre la version 6 disques du puzzle de A de poste à poste B.
- Déplacez le disque 7 de post A poster C.
- Résoudre la version 6 disques du puzzle à nouveau, cette fois de poster B de poster C.
Pour cela instructable, je vais utiliser JavaScript comme langage de programmation afin de pouvoir exécuter ceci dans un navigateur web standard. Il est utile de se familiariser avec certains concepts de programmation base en informatique, mais même si vous n’êtes pas, j’espère que cette volonté instructable être intéressant.
Si vous aimez cette instructable, s’il vous plaît votez pour moi au concours de créations codé avant 18 mai 2015. Merci.
Nous allons commencer à coder !