Les Snippets

Connexion

Avoir le factoriel d'un nombre

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 19/10/2006 20:10:22 et initié par KiNdErMaXi [Liste]
Date de mise à jour : 22/03/2008 18:29:29
Vue : 28891
Catégorie(s) : Maths
Langages dispo pour ce code :
- VBA
- mIRC
- VB 2005, VB.NET 1.x
- C# 1.x, C# 2.x
- C# 1.x, C# 2.x
- VB6, VBA
- Python
- Javascript
- Delphi 5
- ActionScript Flash
- ObjectiveCaml
- C++
- Java
- C++
- VB 2005, VB 2008, VB.NET 1.x
- Scripts fu
- Tcl
- Voir tous les langages pour ce code snippet



Langage : VB.NET 1.x , VB 2005 , VB 2008
Date ajout : 02/07/2008
Posté par FREMYCOMPANY [Liste]
    ' Methode iterative (performante)
    Public Function Fact1(ByVal I As Integer) As UInt64
        Fact1 = 1
        For X = 2 To I : Fact1 *= X : Next
    End Function
    ' Methode récursive (moins performante)
    Public Function Fact2(ByVal I As Integer) As UInt64
        If I < 1 Then Return 1
        Return I * Fact2(I - 1)
    End Function
    ' Methode à cache de données (hyper performante)
    Public Function Fact3(ByVal I As Integer) As UInt64
        Static Cache As UInt64() = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, 20922789888000, 355687428096000, 6402373705728000, 121645100408832000, 2432902008176640000}
        If I < 0 Then Return 1
        If I < 21 Then Return Cache(I)
        Fact3 = Cache(20)
        For X As Integer = 21 To I
            Fact3 *= X
        Next
    End Function


Remarque :
Proposition de trois méthodes de calculs de la factorielle
La troisième est celle qui doit être utilisée si les performances sont recherchées.

Snippets en rapport avec : Maths, Nombre, Fact, Factoriel



Codes sources en rapport avec : Maths, Nombre, Fact, Factoriel

{Python} RACINE N-IÈME D'UN RÉEL A, PAR LA METHODE DE NEWTON-RAPHSON
Ce programme permet de determiner la racine n-ième (n>0) d'un nombre avec une précision remarquable....

{Python} NOMBRES DE KAPREKAR
Bonjour, J'ai trouvé un sujet intéressant en fesant les exercices du concours Prologin qui s'appe...

{Visual Basic, VB6, VB.NET, VB 2005} UN PETIT PROGRAMME DE CALCUL DES NOMBRE PREMIERS
qu'on vous appuiez sur calculer il va mettre les nombre dans un fichier texte dans C: appeler premie...

{Visual Basic, VB6, VB.NET, VB 2005} CHIFFRE EN LETTRE FONCTION
Une petite fonction simlpe pour transformer un chiffre en lettre. Exemple: "15193" >> dix ...

{C / C++ / C++.NET} TRANSFORMER UN ENTIER EN DEUX NOMBRES COMPOSÉ DES MEMES CHIFFRES ORDONNÉS PAR ORDRE CROISSANT ET DÉCROISSANT
Programme permettant de transformer un nombre en deux nombres composés des mêmes chiffres ordonnés d...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERSION D'UN NOMBRE EN "PACKED NUMBER", ET INVERSEMENT
Fonction permettant de convertir un nombre (entier ou décimal, positif ou négatif) en nombre packé (...

{C / C++ / C++.NET} FACTORISATION D'UN ENTIER EN PRODUIT DE NOMBRES PREMIERS AVEC UNE FONCTION RÉCURSIVE
Ce programme affiche les facteurs premiers composant le nombre entré en paramètre, grâce à un algori...

{C / C++ / C++.NET} [DEV-C++] CALCUL DE LA RACINE CARRÉE D'UN RÉEL
Cette source permet de calculer une racine carrée par la méthode de Newton avec une approximation pa...

{C / C++ / C++.NET} CONVERTISSEUR NOMBRE ARABE => NOMBRE ROMAIN (1 À 4999)
Convertisseur de nombre arabe en nombre romain (de 1 à 4999). Aucune bibliothèque mathématique ut...

{C / C++ / C++.NET} MULTIPLICATIONS: PETIT EXERCICE DE MATHS
Ce programme très simple vous demande de trouver le produit d'une multiplication au hasard, compte l...