Task1, X%
Task2, Y%
Task3, Z%
----
TaskN, N%
And X + Y + Z + . . . + N = 100%
问题:-上面的配置文件对不同的任务有某种类型的权重(执行 Task1 X% 的时间并在 Line1 上打印任何内容,执行 Task2 Y% 的时间并在 Line2 上打印任何内容并执行 Task3 Z% 的时间和在 Line3 等上打印任何内容。总重量加起来应为 100%。
我写的代码: -我写了一个程序,我在其中逐行读取文件并将所有行存储在字符串的 ArrayList 中,然后我生成了一些介于 1 和 100 之间的随机数。例如,有三个任务-
Task1 75%
Task2 15%
Task3 10%
获取 1-100 之间的随机数。如果数字是 1-75 do Task1 意味着在 line1 上打印任何东西,76-90 do Task2 意味着在 Line2 上打印任何东西,91-100 do Task3 意味着在 line3 上打印任何东西。但是我如何为任何具有 N 个任务且具有任何百分比数的配置文件扩展它。我被困在这部分。
private static Random r = new Random();
private final static int Low = 1;
private final static int High = 100;
String sCurrentLine;
ArrayList<Integer> percentageCalls = new ArrayList<Integer>();
br = new BufferedReader(new FileReader("S:\\config.txt"));
int R = r.nextInt(High-Low) + Low;
ArrayList<List<String>> allLines = new ArrayList<List<String>>();
while ((sCurrentLine = br.readLine()) != null) {
allLines.add(Arrays.asList(sCurrentLine.split("\\s+")));
Collections.shuffle(allLines);
}
for (List<String> s1 : allLines) {
percentageCalls.add(Integer.parseInt(s1.get(0)));
}
Collections.sort(percentageCalls, Collections.reverseOrder());