50分征求大家的思路!高手帮忙啊! 我现在做一个考试系统,题库里分为专用题和通用题,怎样随机出100道不重复的题,并且通用题和专用题 出题的比例为4:1。大家有没有好的解决思路? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 思路1:从题目的个数实现比如你定义整个试卷n个题目:那么在通用题抽出n*0.8个题目.在专用题中抽取n*0.2个题目.思路2:从分数上实现你在通用题中抽出的题目的总分数=80分,专用题中抽出的题目的总分数=20分! 1,专用题和通用题分开,如先取通用题(80)再取专用题(20)for (int i=0,i<80,i++){id=随机数;//用随机函数得出(规定它的范围不超出题库ID的大小)如果id不在前面出现过就到题库取出ID为id的题目如果id已在前面出现过就再产生随机数循环上面一行}for (int i=0,i<20,i++){id=随机数;//用随机函数得出(规定它的范围不超出题库ID的大小)如果id不在前面出现过就到题库取出ID为id的题目如果id已在前面出现过就再产生随机数循环上面一行}2,专用题和通用题混在一起int x=0;//通用题数目int y=0;//专用题数目for (int i=0,i<100,i++){id=随机数;//用随机函数得出(规定它的范围不超出题库ID的大小)如果id不在前面出现过就到题库取出ID为id的题目,如果该题是专用题则y=y+1;是通用题则x=x+1;如果y>=20了就只取通用题,如果x>=80了就只取专用题。如果id已在前面出现过就再产生随机数循环上面一行} 抽题算法不复杂的给你个思路吧1、把所有同类试题的ID放入一个List2、取随机数 i在 0 -- List.size()-1 之间3、用List.remove(i) 取出被选题号,并将它从List中移除4、取完了没有?没有的话回到第2步 如何取list中固定值记录的条数? <select>当前值赋给同页面变量。 关于web页面 多选框的问题... jsp中怎么生成falsh缩略图? 在JAVA里如何調用ORACLE的PL/SQL包 做个计数器,不知道怎样把多张图拼成一张 JSP高效分页组件或方法? doc 转换为html文件 高手救救,发邮件 请问:那里有java写的browse界面的mrp/erp系统的范例? ireport+jasperReport多笔数据打印的问题 JavaScript中显示数据问题
比如你定义整个试卷n个题目:
那么在通用题抽出n*0.8个题目.在专用题中抽取n*0.2个题目.
思路2:从分数上实现
你在通用题中抽出的题目的总分数=80分,专用题中抽出的题目的总分数=20分!
for (int i=0,i<80,i++)
{
id=随机数;//用随机函数得出(规定它的范围不超出题库ID的大小)
如果id不在前面出现过就到题库取出ID为id的题目
如果id已在前面出现过就再产生随机数循环上面一行
}for (int i=0,i<20,i++)
{
id=随机数;//用随机函数得出(规定它的范围不超出题库ID的大小)
如果id不在前面出现过就到题库取出ID为id的题目
如果id已在前面出现过就再产生随机数循环上面一行
}
2,专用题和通用题混在一起
int x=0;//通用题数目
int y=0;//专用题数目
for (int i=0,i<100,i++)
{
id=随机数;//用随机函数得出(规定它的范围不超出题库ID的大小)
如果id不在前面出现过就到题库取出ID为id的题目,如果该题是专用题则y=y+1;是通用题则x=x+1;如果y>=20了就只取通用题,如果x>=80了就只取专用题。
如果id已在前面出现过就再产生随机数循环上面一行
}
给你个思路吧
1、把所有同类试题的ID放入一个List
2、取随机数 i在 0 -- List.size()-1 之间
3、用List.remove(i) 取出被选题号,并将它从List中移除
4、取完了没有?没有的话回到第2步