Opérations mathématiques en PHP

Opérations mathématiques en PHP.

 

Effectuer une addition

5 + 2 =
<?PHP
print(5+2);
?>

5 + 2 = 7

 

Vérifier une égalité

<?
$a=2;
$b=2;
if ($a==$b)
echo "L'égalité est vérifiée.";
?>

L'égalité est vérifiée.

 

Afficher une valeur aléatoire

<?php
echo rand()."<br/>";     
echo rand();    
rand(5, 15);
?>

1327977648
1636593428

 

Afficher la plus grande valeur aléatoire de mt_rand()

De nombreux générateurs de nombres aléatoires provenant de vieilles bibliothèques libcs ont des comportements douteux et sont très lents. Par défaut, PHP utilise le générateur de nombres aléatoires de libc avec la fonction rand().

La fonction mt_rand() est plus performante que la fonction rand(). Elle utilise un générateur de nombres aléatoires de caractéristique connue, le Mersenne Twister qui est quatre fois plus rapide que la fonction standard libc rand().

Appelée sans les arguments optionnels min et max, la fonction mt_rand() retourne un nombre aléatoire entre 0 et rand_max.

<?php
echo mt_getrandmax();   
?>

2147483647

 

Initialiser une meilleure valeur aléatoire avec seed

<?php
// Initialisation avec des microsecondes.
function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
echo ("$randval");
?>

1010942948

 

Détermine si la variable donnée est de type nombre entier

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
    echo "is_int(";
    var_export($value);
    echo ") = ";
    var_dump(is_int($value));
    echo ("<br/>");
}
?>

is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false)

 

Résoudre une équation du second degré

Une équation du second degré est de la forme ax²+bx+c=0
La valeur a doit être non nulle.

<?php
#Lecture des variables
$A= isset($_POST["var1"])?htmlspecialchars($_POST["var1"]):0;
$B= isset($_POST["var2"])?htmlspecialchars($_POST["var2"]):0;
$C= isset($_POST["var3"])?htmlspecialchars($_POST["var3"]):0;
?>
<p>Indiquer les valeurs a b c correspondantes au polynôme de forme ax<sup>2</sup>+bx+c</p>
<p align=center><form name="saisie" action="https://www.visionduweb.fr/blog/13-programmation/40-operations-mathematiques-en-php" method='POST'>
<table border=1><tr><td>&nbsp;a&nbsp;</td><td>
<input type="text" name="var1" value="<?PHP echo $A; ?>">
<tr><td>&nbsp;b&nbsp;</td>
<td><input type="text" name="var2" value="<?PHP echo $B; ?>">
<tr><td>&nbsp;c&nbsp;</td>
<td><input type="text" name="var3" value="<?PHP echo $C; ?>">
</table>
<input type=submit name="change_dep" value="Valider">
&nbsp;&nbsp;&nbsp;
<input type=reset value="Annuler"></form></p>
<?PHP
if ($A!=0) {
$D=$B*$B-4*$A*$C;
echo 'Le déterminant vaut '.$D.'.<br/>';

if($D<0)
{
echo 'Aucune solution !';
}
elseif($D==0)
{
echo 'Solution unique :<br/>-> X = ';
$X=-$B/(2*$A);
echo $X;
}
elseif($D>=0)
{
echo 'Solution double :<br/>';
$X1=(-$B-sqrt($D))/2*$A;
$X2=(-$B+sqrt($D))/2*$A;
echo '-> X1 = '.$X1;
echo ('<br/>');
echo '-> X2 = '.$X2;
}
}
?>

Indiquer les valeurs a b c correspondantes au polynôme de forme ax2+bx+c

 a 
 b 
 c 
   

 

Source complémentaire
Wikipédia - Discriminant : https://fr.wikipedia.org/wiki/Discriminant
Vérifier son équation du second degré : https://calculis.net/resoudre-equation-second-degre
Résoudre une équation : https://www.solumaths.com/fr/calculatrice-en-ligne/calculer/resoudre
Résolution algébrique : https://www.capte-les-maths.com/equations/equation-second-degre-resolution-algebrique.php

L'enseignement devrait être ainsi : celui qui le reçoit le recueille comme un don inestimable mais jamais comme une contrainte pénible.
[Albert Einstein]

Visionduweb - La Réponse Collaborative - 2002 / 2019

Condition d'utilisation du site Visionduweb

Vous êtes soumis au règlement suivant et à ce titre ni l'administrateur ni l'hébergeur ne pourraient ni ne seraient tenu pour responsable de vos actes.
Vous ne devez en aucun cas utiliser les informations présentes sur Visionduweb pour nuire à autrui ou à un système informatique.

La licence CC BY-NC-ND 4.0 est attribuée au contenu rédigé par Visionduweb sur les domaines suivants :
www.visionduweb.com www.visionduweb.eu www.visionduweb.fr www.visionduweb.info

Les profils utilisés par Visionduweb : Anonymous, Visionduweb, Zer00CooL

Soutenir le travail de recherche de Visionduweb :
Le wiki a besoin de vous !

------------

Chercher dans ce site

Menu de connexion