Aller au contenu

Nombres exacts

tilttek/dice-probability

Natural

Un nombre naturel de toute taille, zéro ou plus : le nombre de façons de lancer trente dés ne tient pas dans un entier PHP. Il est gardé en tranches de neuf chiffres décimaux et réécrit en décimal.

MembreCe qu'il fait
Natural::of($int), Natural::parse($digits), zero(), one()Construit un nombre ; un entier négatif ou un texte autre que des chiffres est refusé
add(), subtract(), multiply(), power()Arithmétique ; une soustraction sous zéro et un exposant négatif sont refusés
divide($divisor)Le quotient et le reste ; une division par zéro est refusée
gcd()Le plus grand commun diviseur
compare(), equals(), isZero()Comparaisons
toInt()Le nombre en entier quand il y tient, null sinon
Natural::ratio($a, $b)a / b en nombre à virgule flottante, avec la précision d'un flottant, quelle que soit la taille des deux nombres

Fraction

Un nombre rationnel exact, signé, sur le dénominateur qui a servi à le calculer : 16/36 reste 16/36, pour qu'une probabilité se lise sur le nombre de façons de lancer. reduced() donne 4/9, et over($denominator) l'écrit sur un multiple de son plus petit dénominateur.

MembreCe qu'il fait
numerator, denominator, negativeSes parties ; zéro n'est jamais négatif
Fraction::of($numerator, $denominator), zero(), one()Construit une fraction ; un dénominateur nul est refusé
add(), subtract(), multiply(), negate(), power()Arithmétique exacte
complement()Un moins la fraction, sur le même dénominateur quand c'est possible : 20/36 à partir de 16/36
compare(), equals(), isZero()Comparaisons par valeur : 16/36 est égal à 4/9
toFloat()Un nombre à virgule flottante, pour un pourcentage
(string)16/36, -7/2, 3/1

Les arguments invalides de la bibliothèque lèvent l'InvalidArgumentException de PHP.