Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CALCUL DE FACTORIEL (VITESSE)


Information sur la source

Description

après une approche de calcul juste de factoriel, je m'attaque à la vitesse. Le résultat n'est pas encore probant, il y a des internautes qui ont des algorithmes plus rapides, et je vais tenter d'aller au delà. le code met 9 secondes pour 1000! et 39 secondes pour 2000! avec ub CPU à 3 Ghz.
J'utilise un calcul matriciel tout bête, je vais m'attaquer à dispenser le code à traiter les tonnes de 0 qu'il créé.
 

Source

  • le source est commenté.
  • le code aligne chaque chiffre de n dans la ligne 0 d'une matrice appelée tablo(), et les chiffres de n-1 dans la colonne 0 de la même matrice.
  • A la croisée des lignes et colonnes, il place le produit ligne x colonne.
  • Il somme toutes les lignes de chaque colonne et reporte le total de chaque colonne dans la ligne 0.
  • il remplace ensuite n-1 par n-2 dans la colonne 0, et refait les calculs ligne x colonne. etc, jusqu'à ce que n-k =1.
  • A chaque fois qu'il fait le report des totaux dans la ligne 0, il réduit chaque cellule dépassant 9, les dizaines étant ajoutées à la cellule immédiatement supérieure (c'est la dessus que je voudrais aussi gagner du temps). ainsi , la ligne 0 n'a que des valeurs allant de 0 à 9.
le source est commenté.
le code aligne chaque chiffre de n dans la ligne 0 d'une matrice appelée tablo(), et les chiffres de n-1 dans la colonne 0 de la même matrice.
A la croisée des lignes et colonnes, il place le produit ligne x colonne.
Il somme toutes les lignes de chaque colonne et reporte le total de chaque colonne dans la ligne 0.
il remplace ensuite n-1 par n-2 dans la colonne 0, et refait les calculs ligne x colonne. etc, jusqu'à ce que n-k =1.
A chaque fois qu'il fait le report des totaux dans la ligne 0, il réduit chaque cellule dépassant 9, les dizaines étant ajoutées à la cellule immédiatement supérieure (c'est la dessus que je voudrais aussi gagner du temps). ainsi , la ligne 0 n'a que des valeurs allant de 0 à 9.

Conclusion

Pas génial, mais amusant, surtout quand il s'agit de la course au temps.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • nn2!.xlsTélécharger ce fichier [Réservé aux membres club]177 152 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de us_30 le 31/03/2008 22:27:10

Bonsoir,

"Pas génial, mais amusant, surtout quand il s'agit de la course au temps."

J'ai eu la même démarche, et on apprends par cette démarche... Tant sur le plan mathématique (malgré ce qu'on pourrait croire...), que sur le plan informatique ou que sur le plan de la recherche algorithmique... JE te laisse donc chercher, et je regarderai les progrès avec intérêt, pour détecter une bonne nouvelle idée d'optimisation en la matière... Par contre, il serait intéressant d'en expliquer les principes fondamentaux, le cas échéant.

Bonne continuation,

Amicalement,
Us.

PS : IL est préférable de remettre la source à jour, et non de reposter à chaque fois... C'est un principe à respecter... La multiplication d'une même source à toute les "chances" d'être considérée comme abusive...

signaler à un administrateur
Commentaire de danbo le 01/04/2008 19:28:25

merci,

j'ai bien compris le principe de la mise à jour, aussi.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

comment creer une image a partir d'une matrice en memoire [ par thebob ] je cherche un procede rapide qui permettrer de convertir la matrice d'une image en image(que je pourrais afficher a partir de la procedure paint pictu détection vitesse CPU et carte son [ par begi ] je cherche à connaitre la vitesse du processeur et le modéle de la carte sonmerci :-)begi Connaitre la vitesse de connexion [ par Jonef ] Bonjour,j'aimerlais savoir comment connaître la vitesse de connexion à laquelle un utilisateur est connecté, bien sûr ceci avec VB.Merci aux pro. qui Pitch (Vitesse) sur un WAV [ par Gabriel ] Comment augmenter ou réduire la vitesse sur un fichierWAVMERCI!nox-web@fr.st Initialiser une matrice avec des 0 [ par seb ] Salut,j'ai un tableau à 2 dimension et je veux le remplir de 0 sans passer par 2 boucles,y - a - t'il une fonction pour ca?merci d'avanceseb Vitesse de lecture d'une video [ par Ben ] Comment faire pour réduire la vitesse de lecture d'une video avi lorsque l'on utilise un control mci (mmconrol).Merci à tous d'avance. Transformer un fichier texte dans une matrice [ par Infirmiere ] Je cherche a traduire un fichier texte sans aucun sens (suite de carateres) dans une matrice ou dans la premiere ligne il soit indique 1/ le numero de PROBLEME DE VITESSE [ par harbat ] LE PROBLEME EST QUE SI j'UTILISE UN LISTVIEW POUR LE REMPLIR A PARTIR D'UNE TABLE ACCESS j'AI REMARQUE QU'il est trés lent par rapport au ACTIVEX (ADO regler la vitesse de transmission sur port serie? [ par squat9 ] je voudrais savoir comment regler la vitesse de transmission du controle MSCOMM pour une vitesse qui n'est pas standard( differente de 300,600,1200 ba regler la vitesse de transmission sur port serie? [ par squat9 ] je voudrais savoir comment regler la vitesse de transmission du controle MSCOMM pour une vitesse qui n'est pas standard( differente de 300,600,1200 ba


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.