问题陈述:通过匹配其百分比随机执行各种命令。比如执行 CommandA 50% 的时间和 commandB 25% 的时间和 commandC 15% 的时间等等,总百分比应该是 100%。
我的问题是 - 执行 CommandA A% 的时间,CommandB B% 的时间,CommandC C% 的时间 ----- CommandZ Z% 的时间。总百分比应该是 100%,最后我可以看到在总执行完成后每个命令执行了多少次以及每个命令的百分比是多少(表示每个命令执行的百分比) .
想法:- 生成一个介于 1 到 100 之间的随机数,看看是否有任何百分比属于该类别
List<Double> comamndDistribution = new ArrayList<Double>();
/* Commands to execute. Here I have Z command
* and total percentage should be 100% (A+B+C+D+...+Z=100%)
*/
comamndDistribution.add(A%); // command A
comamndDistribution.add(B%); // command B
comamndDistribution.add(C%); // command C
comamndDistribution.add(D%); // command D
comamndDistribution.add(E%); // command E
-----------
-----------
comamndDistribution.add(Z%); // command Z
private Command getNextCommandToExecute() {
for (int i=0; i < 10000; i++) {
// generating a random number between 1 and 100
int random = r.nextInt(100-1) + 1;
/* My Question is- Execute CommandA A% of time, CommandB B%
of time, CommandC C% of time ----- Command Z Z% of time.
And total percentage should be 100% and at the end I can see
how much times each command is being executed and what is
the percentage of each command(means how many times each command is
being executed in terms of percentage) after total execution is complete.
*/
}
}
/* Get the next command to execute by maintaining the Percentage of
each command randomly*/
Command nextCommand = getNextCommandToExecute();
让我说得更清楚 - 我的问题是 - 使用随机数执行 CommandA A% 的时间,CommandB B% 的时间,CommandC C% 的时间 ----- 命令 NN% 的时间。总百分比应为 100%。
PS:我认为这个问题已经被问过几次了,但这不是我想要的方式。所以我想通过发布我到目前为止所做的代码来再次提出问题。
更新:-我通过删除我用另一种逻辑编写的先前代码来更新问题,以便人们可以更多地理解它。