|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--EPA
Entier naturel (positif) de Précision Arbitraire.
Cette classe fournit des méthodes analogues à la plupart des opérateurs primitifs sur les
entiers, ainsi que des méthodes telles que la division euclidienne, la puissance et l'inversion
modulaire, le calcul de PGCD, le test de primalité probabilistique, ...
En interne, la valeur est représentée sous sa décomposition dans la base BASE
, soit
une séquence d'entiers n tels que 0 ≤ n < BASE, avec les nombres de poids faibles en
premier. Par exemple, en base 100, 78953 serait représenté par la séquence (53,89,7).
Une fois créés, les EPA sont immutables.
Field Summary | |
private static int |
BASE
La base dans laquelle la valeur est décomposée; est égal à 10 NBR_DIGIT_BASE . |
static EPA |
DEUX
L'EPA constant de valeur 2. |
private static int |
NBR_DIGIT_BASE
Nombre de fois que BASE peut être divisée par 10 :
BASE =10NBR_DIGIT_BASE. |
static EPA |
UN
L'EPA constant de valeur 1. |
private int[] |
val
Décomposition, en base BASE de la valeur de cet EPA. |
static EPA |
ZÉRO
L'EPA constant de valeur 0. |
Constructor Summary | |
private |
EPA()
Construit un EPA vide. |
|
EPA(byte[] tByte)
Construit l'EPA correspondant à la série de byte s spécifiée. |
|
EPA(EPA n)
Construit un EPA à partir de l'EPA spécifié (constructeur de copie). |
|
EPA(int n)
Construit l'EPA correspondant à l'entier naturel spécifié. |
private |
EPA(int[] valeurs)
Construit l'EPA correspondant à la décomposition spécifiée. |
|
EPA(String chaîne)
Construit l'EPA correspondant à la chaîne de caractères spécifiée. |
Method Summary | |
int |
compareTo(EPA n)
Compare cet EPA avec un autre. |
static EPA |
créerAléatoirement(int nbdigits)
Retourne un EPA de nbdigits chiffres (en base 10) engendré aléatoirement. |
static EPA |
créerAléatoirementPremier(int nbdigits,
int marge)
Retourne un EPA premier de nbdigits digits (en base 10) engendré aléatoirement. |
EPA |
décale(int décalage)
Retourne le produit par BASE décalage, par exemple 78953 décalé
de 2 si la BASE est 100 devient 78953*100*100=789530000. |
EPA |
diviséPar(int diviseur)
Retourne le résultat de la division de cet EPA par par un int . |
boolean |
estDifférentDeDeux()
Indique si cet EPA est différent de 2. |
boolean |
estDifférentDeUn()
Indique si cet EPA est différent de 1. |
boolean |
estÉgalÀ1()
Indique si cet EPA est égal à 1. |
boolean |
estÉgalÀDeux()
Indique si cet EPA est égal à 2. |
boolean |
estImpair()
Indique si cet EPA est impair. |
boolean |
estNonNul()
Indique si cet EPA est non-nul. |
boolean |
estNul()
Indique si cet EPA est nul. |
boolean |
estPair()
Indique si cet EPA est pair |
boolean |
estProbablementPremier(int marge)
Indique si cet EPA est premier selon l'algorithme de Miller/Rabin, soit avec certain taux de confiance (algorithme de type "Monte-Carlo" positif). |
int |
getNbrCoefficients()
Renvoie le nombre de chiffres de l'EPA, en base BASE . |
int |
getNbrDigit()
Renvoie le nombre de chiffres de cet EPA, en base 10. |
(package private) EPA |
inverseModulo(EPA module)
Renvoie l'inverse de cet EPA modulo module, selon l'algo d'Euclide étendu. |
EPA |
modulo(EPA diviseur)
Retourne le modulo (reste) de cet EPA par diviseur. |
int |
modulo(int diviseur)
Calcule le modulo de cet EPA par un int |
EPA |
moins(EPA terme)
Renvoie le résultat de la soustraction du terme spécifié à cet EPA. |
EPA |
multipliéPar(EPA facteur)
Renvoie le résultat de la multiplication de cet EPA par facteur. |
EPA |
multipliéPar(int facteur)
Renvoie le résultat de la multiplication de cet EPA par un int . |
EPA |
pgcd(EPA n)
Renvoie le Plus Grand Commun Diviseur de cet EPA et n. |
EPA |
plus(EPA terme)
Renvoie le résultat de l'addition de cet EPA et du terme spécifié. |
EPA |
puissance(EPA exposant)
Renvoie le résultat de l'élevation de cet EPA à la puissance exposant (un EPA). |
EPA |
puissance(int exposant)
Renvoie le résultat de l'élevation de cet EPA à la puissance exposant (un int ). |
EPA |
puissanceModulo(EPA exposant,
EPA mod)
Renvoie l'élevation de cet EPA à la puissance exposant modulo mod. |
EPA |
quotient(EPA diviseur)
Retourne le quotient de la division entière de cet EPA par diviseur. |
EPA[] |
quotientReste(EPA diviseur)
Retourne un tableau de deux EPA, respectivement le quotient et le reste de la division entière de cet EPA et de diviseur. |
EPA |
reste(EPA diviseur)
Retourne le reste de la division entière de cet EPA par diviseur. |
byte[] |
toByteArray()
Convertit cet EPA en un tableau de byte s. |
String |
toString()
Renvoie la chaîne de caractères correspondant à la représentation de sa valeur en base 10. |
Methods inherited from class java.lang.Object |
|
Field Detail |
public static final EPA ZÉRO
public static final EPA UN
public static final EPA DEUX
private static final int NBR_DIGIT_BASE
BASE
peut être divisée par 10 :
BASE
=10NBR_DIGIT_BASE.private static final int BASE
NBR_DIGIT_BASE
.private int[] val
BASE
de la valeur de cet EPA.Constructor Detail |
private EPA()
private EPA(int[] valeurs) throws IllegalArgumentException
valeurs
- Tableau d'int codant un EPA en base BASE
.IllegalArgumentException
- Lorsqu'un des coefficients est négatif.public EPA(String chaîne) throws NumberFormatException
chaîne
- La représentation en base 10 de la valeur de l'EPA à construire.NumberFormatException
- Si la chaîne n'est pas exclusivent composée de chiffres de 0
à 9.public EPA(int n) throws IllegalArgumentException
n
- L'int
dont on veut l'EPA correspondant.IllegalArgumentException
- Lorsque n < 0.public EPA(EPA n)
n
- L'EPA dont on veut la copie conforme.public EPA(byte[] tByte)
byte
s spécifiée. Byte.MIN_VALUE
.tByte
- Valeurs des coefficients.Method Detail |
public int getNbrDigit()
public int getNbrCoefficients()
BASE
.public boolean estPair()
public boolean estImpair()
public boolean estNonNul()
public boolean estNul()
public boolean estÉgalÀ1()
public boolean estDifférentDeUn()
public boolean estÉgalÀDeux()
public boolean estDifférentDeDeux()
public EPA plus(EPA terme)
terme
- EPA avec lequel on souhaite effectuer l'additionpublic EPA moins(EPA terme) throws IllegalArgumentException
terme
- EPA que l'on souhaite soustraire à cet EPAIllegalArgumentException
- Si terme est supérieur à cet EPA.public EPA décale(int décalage)
BASE
décalage, par exemple 78953 décalé
de 2 si la BASE
est 100 devient 78953*100*100=789530000.décalage
- Le décalage souhaité.public int compareTo(EPA n)
public byte[] toByteArray()
byte
s. byte[]
ne redonne pas la même valeur.Byte.MIN_VALUE
puis transtypés en
byte
.public String toString()
toString
in class Object
public EPA multipliéPar(int facteur) throws IllegalArgumentException
int
.IllegalArgumentException
- Si facteur < 0public EPA multipliéPar(EPA facteur)
public EPA diviséPar(int diviseur) throws IllegalArgumentException
int
.IllegalArgumentException
- Si diviseur ≤ 0public int modulo(int diviseur) throws IllegalArgumentException
int
IllegalArgumentException
- Si diviseur ≤ 0public EPA quotient(EPA diviseur)
public EPA reste(EPA diviseur)
public EPA modulo(EPA diviseur)
public EPA[] quotientReste(EPA diviseur)
public EPA puissance(int exposant) throws IllegalArgumentException
int
).IllegalArgumentException
- Si exposant < 0public EPA puissance(EPA exposant)
public EPA puissanceModulo(EPA exposant, EPA mod)
public EPA pgcd(EPA n)
public boolean estProbablementPremier(int marge)
marge
- Le degré de sûreté souhaité.final EPA inverseModulo(EPA module) throws ArithmeticException
ArithmeticException
- Si l'EPA n'est pas inversible.public static EPA créerAléatoirement(int nbdigits)
nbdigits
- Le nombre de digits voulus.public static EPA créerAléatoirementPremier(int nbdigits, int marge)
nbdigits
- Le nombre de digits de l'EPA à créer (en base 10).marge
- La marge d'erreur du test de primalité (cf. estProbablementPremier
)
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |