我是一名学生,正在编写一个测试概率的程序。它叫做TestLuck,旨在生成用户确定数量的填充有随机值的IntArrayLogs(ADT's)。该程序应计算在匹配第一个值之前生成了多少个值。
实际问题: "创建应用程序TestLuck; 要求用户输入随机整数范围的上限(书上说是10,000,但您还应使用365进行测试),以及要运行测试的次数。 计算并输出平均值。"
这是我想出来的,但出现了错误的结果,我测试过我使用的方法似乎没问题,我认为这与我如何跟踪计数器有关。
实际问题: "创建应用程序TestLuck; 要求用户输入随机整数范围的上限(书上说是10,000,但您还应使用365进行测试),以及要运行测试的次数。 计算并输出平均值。"
这是我想出来的,但出现了错误的结果,我测试过我使用的方法似乎没问题,我认为这与我如何跟踪计数器有关。
for(int k=0; k<numTests; k++) {
for(int i=0; i<upperLimit; i++) {
arrLog.insert(n);
n = rand.nextInt(upperLimit);
if(arrLog.contains(arrLog.getElement(0))) {
totalCount += i;
break;
}
if(i == upperLimit-1)
totalCount +=i;
}
System.out.println("Total Count: " + totalCount);
arrLog.clear();
}
testAverage = totalCount/numTests;
System.out.println("Average tests before match: " + testAverage);
包含方法:
// Returns true if element is in this IntLog,
// otherwise returns false.
public boolean contains(int element) {
int location = 0;
int counter = 0;
while (location <= lastIndex) {
if (element == log[location]) { // if they match
counter++;
location++;
if(counter == 2)
return true;
} else
location++;
}
return false;
}