Une bonne banque de solutions de récursion en C / C ++ / Java / C #
J'ai vu cette questionmais les réponses ne sont pas très pertinents.
Un ami a besoin d'une banque de résoudre les problèmes de la récursivité pour l'aider à étudier pour un test demain.
Il a appris la question théorique, mais qui est d'avoir des problèmes de saisir comment le résoudre effectivement les problèmes de la récursivité. Connaissez-vous une bonne source de résoudre les problèmes de la récursivité (de préférence en C, mais peut être dans un C-langage de style ainsi disponibles sur le net?
Remarque - les exemples dans les langages fonctionnels ne va pas aider beaucoup ici. Mon ami est dans une étude de la course à passer son test demain, et je suis sûr que la commutation de langues sera juste le confondre à ce point (il pourrait être l'éducation sur les autres, moins stressé fois).
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Cet article explique la récursivité et a quelques simple C exemples pour traverser liste, et arbre binaire
L'une des meilleures façons d'apprendre la récursivité est d'obtenir de l'expérience dans un langage de programmation fonctionnel comme Haskell ou Lisp ou Scheme.
Afin de trouver récursive des problèmes peut être réduit à trouver certains des problèmes et des réponses liées aux langages de programmation fonctionnelle. Voici un exemple 99 lisp problèmes.
Il ne prend vraiment 5 minutes pour apprendre Régime ou Lisp sorte que vous pouvez commencer avec des exemples tout de suite pour le test de demain, vous l'avez mentionné.
Une autre excellente façon d'apprendre la récursivité est d'obtenir un peu de pratique preuves mathématiques impliquant l'induction.
Les principaux concepts relatifs à la récursivité:
Avec la récursivité vous n'avez pas besoin de savoir comment résoudre le problème. Vous avez juste besoin de savoir 2 choses. 1) comment faire pour résoudre la plus petite instance du problème, et 2) comment décomposer en parties plus petites.
De manière équivalente, vous avez juste à garder à l'esprit que vous avez besoin de: 1) un cas de base et 2) récursive cas.
Le cas de base poignées 1 seule instance de ce que vous voulez faire avec la plus petite entrée.
Le récursive cas divise le problème en un subproblem. Finalement, cette subproblem permettra de réduire les cas de base.
Exemple:
Il est important de comprendre que le cas de base n'est pas difficile à comprendre. Il suffit qu'elle existe. Voici une solution équivalente pour x> 0:
Cela va sembler comme une lame de réponse, mais la récursivité est un paradigme qui est souvent très difficile de saisir la première pour les débutants. Il faudra plus d'une journée de méditation sur le sujet de votre ami à tenir fermement le concept.
Vous voudrez peut-être lui parcourir Projet Euler pour un potentiel de direction à l'étude.
Je pense que Haskell syntaxe est idéal pour penser de manière récursive, car le filtrage de construire fait le cas de base et la récursivité cas si évident. La traduction de cette dans une autre langue est alors assez simple.
Pour comprendre cela, vous avez vraiment besoin de savoir que
Vous n'avez pas besoin d'apprendre Haskell (qui est, avouons-le, dur), mais cela a certains principes de base, certainement vous aide à penser à une récursivité.
En langage c /c++ une fonction peut s'appeler elle-même et ce cas est appelé la Récursivité. Principalement la récursivité deux cas:
et nous avons quelques récursive catégories comme...
Ici prendre un exemple pour discuter de la récursivité ...
Lire SICP(Structure et l'Interprétation des Programmes d'Ordinateur)