我想生成随机问题文件。 我试过的是这个
public Set<Question> generateQuestionPaper(List<Question> list,
List<Criteria> template) {
// TODO Auto-generated method stub
Set<Question> s=new HashSet<Question>();
Random rand = new Random();
for(int i=0;i<template.size();i++)
{
int cnt=0;
for(int k=i;k<QuestionList.size();k++)
{
if(template.get(i).getComplexity()==QuestionList.get(k).getComplexity() && template.get(i).getCategory()==QuestionList.get(k).getCategory())
{
if(cnt<template.get(i).getNoOfQuestion())
{
s.add(QuestionList.get(k));
cnt++;
}
else
break;
}
}
}
return s;
}
当模板列表保存模板时,QuestionList保存问题,如
template.add(new Criteria(Category.GK,Complexity.Simple,2));
template.add(new Criteria(Category.GK,Complexity.Medium,1));
template.add(new Criteria(Category.GK,Complexity.Complex,1));
template.add(new Criteria(Category.Science,Complexity.Complex,1));
template.add(new Criteria(Category.History,Complexity.Medium,2));
template.add(new Criteria(Category.History,Complexity.Simple,2));
template.add(new Criteria(Category.Geography,Complexity.Medium,1));
我正在做的只是检查模板列表中给出的类别和复杂性是否也在questionList中。 它提供了完美的输出,即2 GK问题,这是简单的,1 GK问题是复杂的,如模板中给出的那样。但它不会产生随机纸张。
我知道要生成随机纸,我们必须使用随机函数,但我没有得到如何使用它。
数据库包含诸如淬火,问题,选项1,选项2,选项3,校正,复杂性,类别等的值。
有人告诉我如何每次使用随机功能生成独特的纸张。
谢谢
答案 0 :(得分:1)
如何使用Collections.shuffle
List list = new ArrayList();
long seed = System.nanoTime();
Collections.shuffle(list, new Random(seed));
这是做什么的?
假设我在列表中有{10, 20, 30}
,它只是根据种子值对列表进行洗牌。
这可以帮助我们从列表中获取不再重复的随机数据。