Calcul du nombre Pi àl'infini

  Information

Cette fonction calcule le nombre de décimales que vous souhaitez de pi.

La masse de calculs peut augmenter rapidement si vous visez l'infini !! 

Utilise la librairie bcmath.

Auteur : Damien Seguy (Nexen)

  code source classé dans  Mathématiques

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    
 37    
 38    
 39    
 40    
 41    
 42    
 43    
 44    
 45    
 46    
 47    
 48    
 49    
 50    
 51    
 52    
 53    
 54    
 55    
 56    
 57    
                               
/*---------------------------------------------------------------*/
/*
Titre : Calcul du nombre Pi à l'infini

URL : https://phpsources.net/code_s.php?id=907
Date édition : 14 Fev 2019
Date mise a jour : 14 Aout 2019

Rapport de la maj:
- fonctionnement du code vérifié
- modification de la description
*/
/*---------------------------------------------------------------*/

function pi_calcul($nb){
// on utilise la methode Salamin/Brent
// un pur site sur pi : www.pi314.net

$nb += 5;
// $nb est augmente pour releguer les chiffres non
// significatif assez loin.
bcscale($nb);
// bien entendu, le temps de calcul augmente tres vite avec
// le nombre de decimales demandees

$a[0] = 1;
$b[0] = bcdiv(1, bcsqrt(2));
$da = $a[0];
$db = $b[0];

$somme = 0;
$exact = 2;
// exact contient le nombre de decimales exactes pour cette
// methode de calcul. En fait, l'estimation est rapidement
// sous evaluee, mais a dessin
$retour = 0;
for($i=1; $nb > $exact - 5 ; $i++){
$neob = bcsqrt(bcmul($da, $db));
$neoa = bcdiv(bcadd($db , $da), 2);
$b[] = $neob; $a[] = $neoa;
$da = $neoa; $db = $neob;

// la somme est calculee en paralelle
$somme = bcadd(bcmul(bcpow(2, $i), bcsub(bcmul($a[$i], $a[$i]), bcmul($b[
$i],
$b[$i]))), $somme);
$exact = 2*$exact - 1;
}
$i --;
$diviseur = bcsub(1, bcmul(2 , $somme));
$retour = bcdiv(bcmul(4, bcmul($a[$i], $a[$i])), $diviseur);
return substr($retour, 0, $nb - 4);
// on retourne le nombre trouve, avec un chiffre de plus que demande,
// a l'utilisateur de juger de son utilite.
// aucune arrondi autre que ceux de la machine
}
?>

Exemple :

 
 01    
 02    
 03    
 04    
                                
echo pi_calcul(70);
// Affiche
// 3.141592653589793238462643383279502884197169399375105820974944592307816
?>

      Fonctions du code - Doc officielle PHP

Détail    php.net  
Description
Versions PHP
   bcadd
Additionne deux nombres de grande taille
PHP 4, 5, 7 et 8
   bcdiv
Divise deux nombres de grande taille
PHP 4, 5, 7 et 8
   bcmul
Multiplie deux nombres de grande taille
PHP 4, 5, 7 et 8
   bcpow
Élève un nombre à une puissance donnée
PHP 4, 5, 7 et 8
   bcscale
Définit ou récupère la précision par défaut pour toutes les fonctions bc math
PHP 4, 5, 7 et 8
   bcsqrt
Récupère la racine carrée d'un nombre de grande taille
PHP 4, 5, 7 et 8
   bcsub
Soustrait un nombre de grande taille d'un autre
PHP 4, 5, 7 et 8
   echo
Affiche une chaîne de caractères
PHP 4, 5, 7 et 8
   return
Retourne le controle du programme au module appelant
PHP 4, 5, 7 et 8
   substr
Retourne un segment de chaîne
PHP 4, 5, 7 et 8

   Un petit merci aux éditeurs pour leur travail ne coûte rien et fait toujours plaisir wink

 Autres snippets qui pourraient vous intéresser

Calcul la puissance d'un nombre

Compatibilité : PHP 5, PHP 7, PHP 8

Fonction mathématique typique qui calcul la puissance d'un nombre.

Calcul le cube d'un nombre

Compatibilité : PHP 5, PHP 7, PHP 8

Fonction mathématique typique qui calcul le cube d'un nombre.

Calcul la racine carré d'un nombre

Compatibilité : PHP 5, PHP 7, PHP 8

Fonction mathématique typique qui calcul la racine carré d'un nombre avec la fonction sqrt ()

Calcul le carré d'un nombre entier ou décimal

Compatibilité : PHP 5, PHP 7, PHP 8

Fonction mathématique typique qui calcul le carré d'un nombre entier ou décimal.

Calcul le nombre de ligne de plusieurs fichiers

Compatibilité : PHP 5, PHP 7, PHP 8

Affiche le nombre de lignes de fichiers (php, html et txt) d'un dossier spécifié en le parcourant récursivement.

* Requêtes exécutées avec Recherche Contextuelle

  Les derniers scripts PHP / MySQL

Tiki 29.1

logo Tiki
Langue langue us
Date 05 Mars 2026
Taille 184 Mo
Catégorie CRM

Vtiger 8.4.0

Script PHP / MySQL
Langue langue fr
Date 03 Mars 2026
Taille 58 Mo
Catégorie CRM

MRBS 1.12.1

Script PHP / MySQL
Langue langue fr
Date 03 Mars 2026
Taille 9 Mo
Catégorie Administration

MantisBT 2.28.0

Script PHP / MySQL
Langue langue fr
Date 02 Mars 2026
Taille 17 Mo
Catégorie Administration

GestAssoPhp 7.8.1

Script PHP / MySQL
Langue langue fr
Date 01 Mars 2026
Taille 0.55 Mo
Catégorie Membres

Piwigo 16.3.0

logo Piwigo
Langue langue fr
Date 01 Mars 2026
Taille 19 Mo
Catégorie Galeries

  14 Fév 2019

Information sur les mises à jour

Dernière mise à jour :

    14 Aout 2019
    fonctionnement du code vérifié
    modification de la description

3 648 Vues
Compatibilité du code
PHP 5, PHP 7, PHP 8
46 codes

Catégorie :  Mathématiques

Affiche la série de Fibonacci
Affiche les nombres premiers compris entre 0 à $n
Affiche toute les racines carrés àpartir d'un entier
Améliore la fonction PHP Floor () avec Précision
Arrondi au multiple supérieur
Arrondi un nombre entier et décimal
Calcul de l'équation de la droite de régression linéaire
Calcul des modules et arguments d'un nombre complexe, saisi arithmétiquement
Calcul du nombre Pi àl'infini
Calcul du triangle de pascal
Calcul l'hypoténuse de 2 nombres
Calcul la distance entre 2 points en km
Calcul la factorielle de manière récursive
Calcul la liste des nombres premiers
Calcul la puissance d'un nombre
Calcul la racine carré d'un nombre
Calcul le carré d'un nombre entier ou décimal
Calcul le carré, cube et racine carrée via un formulaire
Calcul le cube d'un nombre
Calcul le PGCD de 2 entiers
Calcul le PPCM de 2 entiers
Calcul le sinus en radian
Calcul les diviseurs d'un entier
Calcul les pourcentages
Calcul les taux d'intéret en PHP
Calcul si deux nombres sont premiers entre eux
Calculs sur 1 Triangle avec le théorème de Pythagore
Conversion binaire <-> décimal ET hexadécimal <-> décimal
Conversion de coordonnées cartésiennes en polaire
Conversion de coordonnées polaires en cartésiennes
Distance en mètre entre deux points avec coordonnées GPS
Divise 2 nombres avec $a et $b en paramètre
Division avec calcul du reste
Division euclidienne avec Quotient et Reste dans un tableau
Elever $x à la puissance $y
Fonction récursive calculant la factorielle d'un nombre.
Fractionne en PHP 1 nombre en dividende et quotient
Liste des nombres parfaits
Max2scale ext PHP
Passe 1 entier base 10 en base 2
Régression Polynomiale de degré 3
Régression Polynomiale de degré 4
Trouve une distance euclidienne en PHP
Vérifie la parité d'un nombre
Vérifie si un entier est pair ou impair avec le modulo
Vérifie si un nombre est multiple d'un autre