在线考系统中随机抽题算法研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在线考系统中随机抽题算法研究

在线考试系统中随机抽题算法研究   摘要:本文讨论了在线考试系统中优化使用随机函数的方法,深入研究了在特殊要求下随机抽题的应对策略,改进了试题重新排列的算法。 中国论文网 /4/viewhtm  关键词:在线考试 随机函数 随机抽题      0 引言   随机抽题是在线考试系统中的核心部分,目前大部分的在线考试系统或无纸化考试系统大都采用了随机函数实现随机抽题,但大部分在线考试系统在随机抽题时存在抽题速度慢、试题覆盖面不稳定、重点不突出、灵活性差等问题。本文讨论了优化随机抽题的方法,给出了具体的抽题公式和查询语句。   1 优化使用随机函数方法研究   原始在线考试系统中,使用随机函数从题库中抽取试题,抽题公式为Int(Rnd*M)公式11。在抽取第一题时,直接将题号存放在指定的空数组中,表示抽取成功,以后每抽取一题,将题号和数组中已存在元素进行比较,若存在则抽取失败,若不存在则抽取成功,并将题号依次存储在该数组中,直到抽取结束。这种抽题方法的缺陷是时间浪费。这种时间浪费在单机的时候并不明显,但在B/S模式或C/S模式下,机器越多速度越慢。为了解决重复抽题,避免试题抽取过慢,可采用分段法、分类法和分类分段结合法。   1.1 分段法 分段法是解决重复抽题最简单的方法,其原理是将题库中的试题M分成N段,然后从每段中抽取一题,抽取公式为Int(Rnd*(M\N))+i*(M\N)(0≤i≤N-1)公式2。分段法的优点显而易见,可以完全杜绝试题重复抽取,但对题库中试题的数量有要求,即M2N,且题库越大、试题数量越多,抽取效果就越好。在公式2中将M等分成N段,M并不一定能被N整除,也就是说采用公式2试题库最后M MOD N条试题永远不会被抽取,为了解决这个问题,可将公式2进行改进,设L=M MOD N,则抽取公式为Int(Rnd*(M\N+1))+i*(M\N+1)(0≤i≤L-1)公式3和Int(Rnd*(M\N))+i*(M\N)+L(L≤i≤N-1)公式4。分段法避免了重复抽取,但无法控制试题的覆盖面及难易程度。   1.2 分类法 分类法是在试题库的结构上添加相应分类字段,字段可以是章节、内容等,将所有试题按章节或内容分类,从每一类中抽取一题,不仅可以解决试题的重复抽取还可以控制试题的覆盖面。通常将分类字段的类型设置为整形,采用一组连续的整数作为分类字段的取值范围,这样方便在试题库中对分类进行循环查询,查询语句为select*from试题库where分类字段名=i查询1,设查询记录数为Mi,则抽题公式为Int(Rnd*Mi)公式5。分类法可以保证试卷的覆盖面,但没有侧重点。   1.3 分类分段结合法 分类分段结合法在抽取试题时先分类,然后根据设定给类分段,每类的分段数可以不同,从每个分段中抽取一题。这种方法要求在数据库中另建分类分段表,存贮每个分类中的抽题数量,数量可以是零,表示该类中不抽取,可以是大于零并小于该类题量的任何一个数Ni,表示将该类分成Ni段,每段抽取一题。从实现角度上看,分段法和分类法使用的是一维循环,分类分段法使用的是二维循环;从访问数据库角度看,分段法和分类法仅访问试题库,分类分段法除了访问试题库外还要访问分类分段表。   2 特殊要求下随机抽题的应对策略   在实际应用中,会对试题的抽取有一些特殊的要求。如何合理利用随机函数,在同一个试题库中抽取出适合不同系别、专业使用的试卷?随机函数并不是万能的,不可能独立处理以上问题,但是可以创造一个环境,随机函数在这个环境中通过简单的计算公式和相应的算法为不同系别、专业抽取需求不同的试卷。为了营造这种环境,通常会通过两方面来实现:一方面是修改表结构;另一方面是提供一个界面可以针对不同系别、专业设计不同的抽题条件。   2.1 修改表结构 修改表结构通常会在试题库中添加章、节、难度系数、出题日期、出题教师等字段。添加章、节字段既可以精确抽题范围,也可以避免抽到未学习的章节。在抽取试题时针对完全学习的章和学习过部分小节的章可以采用不同的查询方法,对完全学习的章,可以仅对章字段进行查询:select*from试题库where章=k查询2,其中k为章数,对学习过部分小节的章,除了对章字段查询外还要对节进行查询,可以针对某一节进行查询:select*from试题库where章=k and节=j查询3,j为节数,也可以针对与所有学习过的小节:select*from试题库where章=k and节in(j1,j2,…jn) 查询4,其中j1,j2,…jn为该章中所有学习过的节数。难度系数字段可以根据系、专业学习的难易程度,抽取对应试题的字段,针对不同的章、节的学习程度不同可以有不同的难度系数,以查询3为例查询可改为:select*from试题库where

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档