La classe java.util.Random
peut générer des nombres pseudo-aléatoires ayant une distribution raisonnablement uniforme. Etant donné une List
de votre type de service :
List<String> services = new ArrayList<String>(
Arrays.asList("COMPUTER", "DATA", "PRINTER"));
il est facile d'en sélectionner un au hasard :
String s = services.get(rnd.nextInt(services.size()));
De même, l'une d'une liste de valeurs de rétroaction peut être choisie :
List<String> feedbacks = new ArrayList<String>(
Arrays.asList("1", "0", "-1"));
String s = feedbacks.get(rnd.nextInt(feedbacks.size()));
Un expédient simple pour obtenir une distribution différente consiste à "empiler le paquet". Par exemple,
Arrays.asList("1", "1", "1", "0", "0", "-1"));
produirait 1, 0 et -1 avec probabilité /2 , /3 , et /6 , respectivement. Vous pouvez organiser des partitions plus élaborées en utilisant nextGaussian()
et un intervalle de confiance
.
Cette approche ne doit être utilisée que pour générer des données de test.
Addendum :Le guide mathématique d'Apache Commons inclut un chapitre sur la Génération de données , avec des liens informatifs et de la documentation concernant d'autres distributions de probabilité.