POO : Test Partie C
En licence pro MI AW
Par Olivier Bailleux, Maître de conférences HDR, Université de bourgogne
On considère l’interface suivante :
public interface RandGen
{
public void setMin(double min);
public void setMax(double max);
public double getMin();
public double getMax();
public String getLaw();
public double draws();
}
Les classes qui implémentent cette interface ont vocation à produire des nombres aléatoires de type double
compris entre deux valeurs pouvant être déterminées par les méthodes setMin
et setMax
et pouvant être consultées à l’aide des méthodes getMin
et getMax
. Ces classes doivent aussi disposer d’une méthode getLaws
qui retourne une chaîne de caractères décrivant la loi de probabilité utilisée et d’une méthode draws
dont le rôle est de produire une valeur aléatoire dans l’intervalle getMin()
.. getMax()
.
La classe abstraite GenericRandGen
implémente l’interface RandGen
.
public abstract class GenericRandGen implements RandGen
{
private double min;
private double max;
public GenericRandGen()
{
this.min = 0.0; this.max = 1.0;
}
public void setMin(double min) {this.min = min;}
public void setMax(double max) {this.max = max;}
public double getMin() {return this.min;}
public double getMax() {return this.max;}
public abstract String getLaw();
public abstract double draws();
public String toString()
{
return "Générator " + getLaw() + " in [" + min + "," + max + "]";
}
public double[] sample(int n)
{
// À compléter
}
}
La méthode sample
produit un tableau de longueur n
rempli de valeurs alétoires produites par la méthode draws
.
Q1 (1.5 point)
Complétez la méthode sample
de la classeGenericRandGen
.
public double[] sample(int n)
{
// À compléter
}
Merci d’envoyer votre réponse à Olivier Bailleux via teams.
Q2 (1.5 points)
Complétez la classe UniformGen
qui représente un générateur aléatoire permettant de produire des valeurs selon une loi de probabilité uniforme. Ces valeurs peuvent être obtenues à partir de la méthode Math.random()
qui produit une valeur comprise entre 0.0 et 1.0 selon une loi uniforme.
public class UniformGen extends GenericRandGen
{
// À compléter
}
Merci d’envoyer votre réponse à Olivier Bailleux via teams.
Q3 (2 points)
Réalisez une méthode main
, situé dans une classe Main
, qui :
- Crée un générateur de type
UniformGen
. - Initialise à 1.0 et 3.0 les bornes minimum et maximum de l’intervalle des valeurs pouvant être produites par ce générateur.
- Utilise la méthode
sample
pour produire une tableau de 10 nombres aléatoires. - Affiche à l’écran les valeurs récupérées dans ce tableau.
public class Main
{
public static void main(String[] args)
{
// À compléter
}
}
Merci d’envoyer votre réponse à Olivier Bailleux via teams.