Calcul de pi selon une série d'euler

Contenu du snippet

Voici l'implémentation VB.NET de l'algorithme permettant de calculer pi grâce à la série d'Euler suivante :

http://scalion.free.fr/formpi.gif

Source / Exemple :


Sub Main()

        ' Algorithme basé sur une série d'Euler
        Console.Out.WriteLine("Approximation de pi basée sur une série d'Euler")
        Dim cApproximation As Decimal, cPrecision As UShort, cProduits() As Decimal
        Console.Out.WriteLine("Précision requise ?") : cPrecision = Console.In.ReadLine
        ReDim cProduits(0 To cPrecision) ' Tableau de produits
        For i As UInteger = 1 To cPrecision ' Balayage des produits
            Dim cA As Decimal = 1, cB As Decimal = 1 ' Initialisation des facteurs du produit courrant
            For a As UInteger = 1 To i
                cA *= a ' Calcul du premier facteur (numérateur)
            Next a
            For b As UInteger = 3 To (i * 2) + 1 Step 2
                cB *= b ' Calcul du second factuer (dénominateur)
            Next b
            cProduits(i) = cA / cB ' Calcul du produit (division des facteurs)
        Next i
        For j As UInteger = 1 To cPrecision
            cApproximation += cProduits(j) ' Somme cumulée de tous les produits
        Next
        cApproximation *= 2 ' Facteur commun (constant : 2)
        Dim cChaine As String = cApproximation.ToString
        cChaine = "3" & Mid(cChaine, 2, cChaine.Length - 1) ' Transformation du premier digit (constant : 3)
        Console.Out.WriteLine("Approximation de pi sur " & cPrecision & " facteurs : " & cChaine)
        Console.In.ReadLine()

    End Sub

Conclusion :


Le code est commenté mais voici une courte explication :
1) On déclare les variables et on demande à l'utilisateur la précision qu'il souhaite (le nombre de produits).
2) La boucle i balaye les produits un à un.
3) Les boucles a et b calculent respectivement le numérateur et le dénominateur de chaque produit (les facteurs).
4) La boucle j additionne le tout.
5) On multiplie par le facteur commun constant (2).
6) On remplace le premier digit par le 3 entier.

Remarque : Entrez une précision d'environ 15 pour obtenir une valeur "reconnaissable" de pi. Notons également que cet algorithme n'est pas du tout optimisé pour le calcul de pi et que je le poste à simple titre de curiosité mathématique !

En espérant vous intéresser,
Cordialement, Léo.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.