我目前正在开展测验计划。该计划有几个不同的问题导管。每个类别都有几个问题需要随机化,并且还应填写不应出现多次的标准。
每个类别都作为活动实现,数据在捆绑中的活动之间传递。
主要活动实现一个生成随机类别的类,该类跟踪所使用的问题类别的数量。用于生成问题的相同代码用于生成问题类别。
现在,有时会出现问题不止一次出现的情况。我想这可能有两个可能的原因导致这个问题。如何生成问题可能存在问题,或者数据在代码中的其他位置设置为零。
我生成一个问题的随机算法如下:
while (ProgrammingQuestionsIndexArray[ProgrammingQuestionsIndex] == 1) {
ProgrammingQuestionsIndex = randomGenerator.nextInt(MAX);
counter = 0;
for(int i=0; i<ProgrammingQuestionsIndexArray.length; i++) {
if(ProgrammingQuestionsIndexArray[i] == 1)
counter++;
}
if(counter == ProgrammingQuestionsIndexArray.length) {
for(int i=0; i<ProgrammingQuestionsIndexArray.length; i++)
ProgrammingQuestionsIndexArray[i] = 0;
break;
}
}
如果问题已经使用过,那么我会在那里存储ProgrammingQuestionsIndexArray。 ProgrammingQuestionsIndex是随机生成的问题的变量。 MAX是该类别中设置的最大问题数。
另外,我在这里问的原因是因为我怀疑还有另一个原因而不是算法为什么随机函数不起作用。
提前致谢!
答案 0 :(得分:0)
这样做的一种方法是将所有问题都放入一个数组中,然后将数组随机化(随机顺序)。然后,您开始从数组前面提出问题,您需要跟踪的是您要处理的问题(例如问题数组中的索引)
Java中有几个示例,其中有一些示例。一个简单的滚动方法是从你的问题数组中选择2个随机索引并交换内容。循环重复几百次。
我认为你会发现这比试图追踪已经提出的问题更可靠