考试抽题 算法
求一个考试抽题 算法.
本人正设计一个计算机上机考试程序.
基本情况: 1目前本程序的题库有n套题试题.学生登录考试时随机抽一套试题.
2.考生人数有1000人,而机房只有3个机房,每个机房有50台电脑.因此必须分批次参加考试.考试前已安排了学生考试的机房,及上机批次.反映在数据库中login表中,(该表有字段:准考证号,姓名,身份证号,机房号,批次,登录时间,试卷编号)
3. 当学生输入准考证号,点"开始考试"时开始抽题.
抽题的算法应满足:[b][/b]
1) 同一学生登录时抽取的是同一套题 (同一学生,无论在本机房任一台电脑上抽取的结果都是同一套题;同一学生反复登录都是抽取的同一套题)
2) 题库的试题量有n套,在同一机房\同一批次的考试中应尽量平均抽取. (如机房有50台电脑,即有50人参加考试,而题库中有25套题,因此每套题被抽到两次)
------解决方案--------------------
1,第一次登陆抽取时,记录抽取的题号,下次登录时候进行判断是否有这个字段,有就加载,没有就随机抽取。
2,随机方法
select 题 from table order by newid() //sql server 的写法
既然是随机,就不能完全保证每题抽取2次。要真正做到抽取2次,则,每次抽取记录下抽取的次数,每次加1,如果为2则不排除在外
本人正设计一个计算机上机考试程序.
基本情况: 1目前本程序的题库有n套题试题.学生登录考试时随机抽一套试题.
2.考生人数有1000人,而机房只有3个机房,每个机房有50台电脑.因此必须分批次参加考试.考试前已安排了学生考试的机房,及上机批次.反映在数据库中login表中,(该表有字段:准考证号,姓名,身份证号,机房号,批次,登录时间,试卷编号)
3. 当学生输入准考证号,点"开始考试"时开始抽题.
抽题的算法应满足:[b][/b]
1) 同一学生登录时抽取的是同一套题 (同一学生,无论在本机房任一台电脑上抽取的结果都是同一套题;同一学生反复登录都是抽取的同一套题)
2) 题库的试题量有n套,在同一机房\同一批次的考试中应尽量平均抽取. (如机房有50台电脑,即有50人参加考试,而题库中有25套题,因此每套题被抽到两次)
------解决方案--------------------
1,第一次登陆抽取时,记录抽取的题号,下次登录时候进行判断是否有这个字段,有就加载,没有就随机抽取。
2,随机方法
select 题 from table order by newid() //sql server 的写法
既然是随机,就不能完全保证每题抽取2次。要真正做到抽取2次,则,每次抽取记录下抽取的次数,每次加1,如果为2则不排除在外