cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
10 août 2006 à 08:40
vbPink
Messages postés23Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention30 août 2006
-
10 août 2006 à 14:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
vbPink
Messages postés23Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention30 août 2006 10 août 2006 à 14:35
Merci à vous deux, ce code n'est pas ma priorité mais je vais voir ce que je peux faire pour l'optimiser.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 10 août 2006 à 11:27
Bonjour,
Le code est bien présenté, mais il est très optimisable. Les remarques de Darksidious sont justes...
IL y a beaucoup de code de ce type sur les nombres premiers, je pense qu'il faudrait un peu plus innover. Par exemple, essayer de programmer le crible de Sundaram, n'est pas plus difficile pour un débutant et permetterai de justement de ne pas avoir un algorithme glouton !
... de plus, bien programmé, il devrait être au moins aussi rapide que le plus rapide...
Amicalement,
Us.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 10 août 2006 à 08:40
Il existe quand même un algorithme bien plus efficace (bien que lui aussi glouton) : n'essayer de diviser les nombres que par des nombres premiers inférieur à la racine des nombres :
Pas la peine de tester si 17 est divisible par 4, 6, 8, 10, 12, 14 et 16 s'il est pas divisible par 2 par exemple... Ca évite énormément de divisions !
=> Stocker les nombres premiers déjà trouvés dans un tableau, et n'essayer de diviser le prochain nombre à tester par les éléments du tableau. Ca augmentera déjà pas mal les performances, bien qu'il ne s'agisse sûrement pas de l'algorithme optimal connu à ce jour !
10 août 2006 à 14:35
10 août 2006 à 11:27
Le code est bien présenté, mais il est très optimisable. Les remarques de Darksidious sont justes...
IL y a beaucoup de code de ce type sur les nombres premiers, je pense qu'il faudrait un peu plus innover. Par exemple, essayer de programmer le crible de Sundaram, n'est pas plus difficile pour un débutant et permetterai de justement de ne pas avoir un algorithme glouton !
... de plus, bien programmé, il devrait être au moins aussi rapide que le plus rapide...
Amicalement,
Us.
10 août 2006 à 08:40
Pas la peine de tester si 17 est divisible par 4, 6, 8, 10, 12, 14 et 16 s'il est pas divisible par 2 par exemple... Ca évite énormément de divisions !
=> Stocker les nombres premiers déjà trouvés dans un tableau, et n'essayer de diviser le prochain nombre à tester par les éléments du tableau. Ca augmentera déjà pas mal les performances, bien qu'il ne s'agisse sûrement pas de l'algorithme optimal connu à ce jour !
DarK Sidious