1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| package javaapplication2;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Param {
public String name;
public long value;
public long min;
public long max;
public long inc;
public static int nbr = 0;
public static final String biasFile = ProcessRunnable.getContent(new File("C:/combinaison/schematicBIAS.net"));
public static final String thdFile = ProcessRunnable.getContent(new File("C:/combinaison/schematicTHD.net"));
public static ExecutorService exec = Executors.newFixedThreadPool(8);
public Param(String name, int min, int max, int inc) {
this.name = name;
this.value = min;
this.min = min;
this.max = max;
this.inc = inc;
}
private static void traitement(List<Param> listeParam) {
String combinaison = "";
for (int i = 0; i < listeParam.size(); i++) {
Param param = listeParam.get(i);
combinaison = combinaison + param.value;
if (i < listeParam.size() - 1) {
combinaison = combinaison + ";";
}
}
System.out.println(combinaison);
}
public static void combinaison() {
List<Param> listeParam = Arrays.asList(
new Param("PARAM_ID", 2, 15, 1),
new Param("PARAM_RA", 0, 25, 5),
new Param("PARAM_RB", 0, 100, 10),
new Param("PARAM_RC", 40, 500, 20),
new Param("PARAM_RD", 20, 300, 20)
);
long nbrCombinaison = 1;
for (Param param : listeParam) {
long diff = (param.max - param.min);
long inc = diff / param.inc + 1;
nbrCombinaison = nbrCombinaison * inc;
}
System.out.println("Nombre de combinaison : "+nbrCombinaison);
recur(listeParam, 0);
}
private static void recur(List<Param> listeParam, int index) {
Param param = listeParam.get(index);
while (param.value <= param.max) {
if (index < listeParam.size() - 1) {
recur(listeParam, index + 1);
param.value = param.value + param.inc;
} else {
// traitement(listeParam);
exec.execute(new ProcessRunnable(nbr,listeParam));
nbr++;
param.value = param.value + param.inc;
}
}
param.value = param.min;
}
} |
Partager