cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 2008
-
16 janv. 2003 à 16:45
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 2012
-
19 mars 2008 à 15:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 20121 19 mars 2008 à 15:51
Je me demande si on peut encore faire - rapide.
tit_toinou
Messages postés49Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention16 juillet 2008 18 déc. 2007 à 18:43
Salut,
La recursivité est tout à fait inutile ici !
L'opérateur & fera le travail beaucoup plus vite.
cs_dominion
Messages postés230Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention15 mai 2008 6 sept. 2004 à 22:25
GoldenEye : mets plutôt inline BOOL estPair pour gagner un peu de place mémoire (ben oui vu qu'il n'y a que 2 réponses...)
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 18 janv. 2003 à 23:52
Je n'ai pas dis non plus que la récursivité était à proscrire. J'ai aussi dis que ça permettait parfois de résoudre simplement des problèmes comme tu l'as signalé.
Voilà
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 16 janv. 2003 à 20:02
Trinitacs : attention, la récursivité est parfois optimale : ex : l'algorithme de tri QuickSort dont la complexité en Nlog(N) est inférieure à celle de toutes les méthodes itératives. Par ailleurs certains problèmes n'ont pas de solution connue en itératif ou très complexe (ce qui ne veut pas dire qu'elle n'existe pas) ex : parcours d'un arbre, algorithmes d'IA comme Alpha Beta etc...
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 16 janv. 2003 à 19:14
loraine9999 >> A part la récursivité tu fais quoi? Je te signale juste si tu ne le c'est pas mais c qqch de pas très rapide. Mais parfois ça permet de résoudre des problèmes très simplement. Donc il ne faut pas en faire d'overdose :)
J'en ai une autres c'est le modulo de 2 mais faire un modulo est une opération longue pour les pross. Mais bon la méthode avec l'utilisation de l'opérateur & est bien plus rapide.
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 16 janv. 2003 à 16:45
J'ai une autre méthode bien plus puissante qui est utilisée pour tout ce qui est temps réel (jeux par exemple):
inline int estPair(int nombre) /* 0 si le nombre est pair et 1 sinon */
return (nombre&1);
Cherchez pourquoi ! (pensez à la base 2 et à l'opération ET logique...)
On peut étendre le calcul à la détermination de l'existence d'un multiple de 2 puissance n
19 mars 2008 à 15:51
18 déc. 2007 à 18:43
La recursivité est tout à fait inutile ici !
L'opérateur & fera le travail beaucoup plus vite.
6 sept. 2004 à 22:25
18 janv. 2003 à 23:52
Voilà
16 janv. 2003 à 20:02
16 janv. 2003 à 19:14
J'en ai une autres c'est le modulo de 2 mais faire un modulo est une opération longue pour les pross. Mais bon la méthode avec l'utilisation de l'opérateur & est bien plus rapide.
16 janv. 2003 à 16:45
inline int estPair(int nombre) /* 0 si le nombre est pair et 1 sinon */
return (nombre&1);
Cherchez pourquoi ! (pensez à la base 2 et à l'opération ET logique...)
On peut étendre le calcul à la détermination de l'existence d'un multiple de 2 puissance n