1、一道题有可能有多个知识点
2、按不同的知识点抽题组卷,要求去重,即同一道题有两个知识点的话,不能在一套试卷里出现两次
例如:题号有 1,2,3,4,5,6 知识点A包含1,2,3,4 四道题,知识点B包含3,4,5,6四道题,现在要在知识点A下抽取2道题,知识点B下抽取3道题,算法如何实现?题量有100道题,知识点有6个的时候,六个知识点中一共抽取45道题,运算量级如何?
谢谢作答。
1、一道题有可能有多个知识点
2、按不同的知识点抽题组卷,要求去重,即同一道题有两个知识点的话,不能在一套试卷里出现两次
例如:题号有 1,2,3,4,5,6 知识点A包含1,2,3,4 四道题,知识点B包含3,4,5,6四道题,现在要在知识点A下抽取2道题,知识点B下抽取3道题,算法如何实现?题量有100道题,知识点有6个的时候,六个知识点中一共抽取45道题,运算量级如何?
谢谢作答。
你看下这个方案能否满足你的需求:
1. 将题目整理成Key:Value键值对(questionMap),key:某个知识点 value:包含某个知识点的题目集合
2. 遍历需要抽取的知识点(k1),和知识点对应的题目个数,从 questionMap 中按照获取k1对应的所有题目(如果题目太多可以先获取一部分),将获取的题目放入去重集合中(resultSet),resultSet 内部具有去重功能,计算成功放入的个数 k1Count,直到 k1Count 等于知识点(k1)要求的题目个数
3. 遍历完所有的知识点之后,resultSet 就是你需要的问卷了