begin process at 2012 02 11 11:39:42
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths

 > CALCUL DE FACTORIEL (VITESSE)

CALCUL DE FACTORIEL (VITESSE)


 Information sur la source

Note :
Aucune note
Catégorie :Maths Classé sous :factoriel, grand nombre, matrice, sgnificatifs, vitesse Niveau :Débutant Date de création :31/03/2008 Vu / téléchargé :6 635 / 190

Auteur : danbo

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 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

Les Membres Club peuvent 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


 Sources du même auteur

Source avec Zip CALCUL ENTHALPIQUE DE L'AIR HUMIDE
Source avec Zip CALCUL DÉTAILLÉ DE FACTORIEL

 Sources de la même categorie

Source avec Zip Source avec une capture CONVERTISSEUR HEXAVIGÉSIMAL par shaeks
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTOGRAPHIE AFFINE par Tigrou66
Source avec Zip Source avec une capture SCANNER FLEX par lajouad
Source avec Zip EQUATIONSECONDDEGRÉ,MATH,DEGRÉ par shadkitenge
Source avec Zip Source .NET (Dotnet) SOMME DE CHIFFRES CONTENUE DANS UN NOMBRE par alpha5

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) MATRICE DE ROTATION, QUATERNION ET 3D par CGSI3
Source .NET (Dotnet) DATATABLE EN MATRICE 2D par CGSI3
Source avec Zip Source avec une capture NMULOC V2.06 par Softmama
Source avec Zip Source avec une capture SIMULATEUR DE VITESSE. par artgile
Source avec Zip SIMULATEUR PHYSIQUE FINALZ par Neron2005

Commentaires et avis

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...

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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales