国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于改進(jìn)隨機(jī)抽取策略的智能組卷算法

2017-05-16 01:47
關(guān)鍵詞:數(shù)組數(shù)據(jù)結(jié)構(gòu)章節(jié)

王 東

(貴州師范學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,貴州 貴陽 550018)

基于改進(jìn)隨機(jī)抽取策略的智能組卷算法

王 東

(貴州師范學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,貴州 貴陽 550018)

針對(duì)隨機(jī)抽題過程中出現(xiàn)的重復(fù)抽選問題,設(shè)計(jì)了一種優(yōu)化的數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)了無回溯快速組卷.基于該方式,抽題前預(yù)先評(píng)估已抽取試題的分布情況,確定待抽取試題的章節(jié)范圍,再從其候選集合中隨機(jī)抽選試題,進(jìn)而有效解決組卷過程中試題分布不合理的問題.該算法已經(jīng)在試題庫考試系統(tǒng)中得到成功應(yīng)用.

自動(dòng)組卷;試題庫系統(tǒng);隨機(jī)組卷算法;組卷策略

自動(dòng)組卷就是根據(jù)組卷策略指定的約束條件,從題庫中隨機(jī)抽取出試題,從而取代人工選題的過程.自動(dòng)組卷的核心問題之一就是設(shè)計(jì)良好性能的組卷算法.由于組卷約束條件之間的相互牽制以及試題庫題量的限制,要生成一份符合要求的試卷不是一件容易的事件.目前,自動(dòng)組卷過程中使用的組卷算法大致分為三類:隨機(jī)組卷算法[1-2],回溯算法[3]和基于遺傳算法[4-7]的組卷方法.其中,隨機(jī)組卷算法易于理解,運(yùn)行速度快,在實(shí)際的試題庫管理軟件系統(tǒng)中應(yīng)用廣泛,并在實(shí)踐中得到不斷的改進(jìn),如金漢均等提出了分段隨機(jī)抽選法[2],該方法在錄入試題時(shí)生成一個(gè)隨機(jī)數(shù),在組卷時(shí)按順序從候選集合中抽取給定數(shù)量的試題.與傳統(tǒng)隨機(jī)算法相比,該方法效率有所提升,但隨機(jī)數(shù)的維護(hù)代價(jià)很大,對(duì)一條記錄的修改將導(dǎo)致與之相關(guān)記錄集的修改.王萌等提出集合隨機(jī)抽選法[8],該方法使用備選集合來避免回溯,當(dāng)從備選集合中抽取一個(gè)題后再重新生成一個(gè)不包含已選試題的備選集,再抽選試題時(shí)不會(huì)與已抽選試題產(chǎn)生重復(fù).但該方法的主要問題是每抽選一個(gè)題就要重新生成備選集,降低了組卷算法的執(zhí)行效率.本文將通過設(shè)計(jì)高效的數(shù)據(jù)結(jié)構(gòu)并對(duì)組卷算法進(jìn)行優(yōu)化,實(shí)現(xiàn)無重復(fù)、無回溯隨機(jī)抽題,在抽題時(shí)借助章節(jié)可分配數(shù)組動(dòng)態(tài)確定抽取試題的章節(jié)范圍,以期較好地解決試題分布不合理的問題,提高命題組卷的客觀性和科學(xué)性.

1 組卷算法數(shù)據(jù)結(jié)構(gòu)

1.1 設(shè)置組卷策略

設(shè)置組卷策略就是為自動(dòng)組卷設(shè)定組卷參數(shù),構(gòu)造試卷結(jié)構(gòu)的過程.設(shè)置的組卷策略存儲(chǔ)在數(shù)據(jù)庫表中,一組組卷策略由存儲(chǔ)在數(shù)據(jù)庫表中的多條記錄組成,每條記錄表示試卷中的一種題型,包括題型號(hào)、試題數(shù)、單題分值、總分值、各難度試題數(shù)等.設(shè)置組卷參數(shù)時(shí),部分參數(shù)由用戶明確設(shè)定,如每種題型的試題數(shù)、單題分值,部分參數(shù)可通過計(jì)算得到,如試題難度,文獻(xiàn)[9]中就提出了一種依據(jù)正態(tài)分布函數(shù)計(jì)算試卷中試題難度分布的方法,通過試卷平均難度推導(dǎo)出各難度題所占比例.文獻(xiàn)[10]提出了基于難度級(jí)別的分割遞歸算法.根據(jù)每類題型的難度級(jí)別和抽題總量,確定不同難度級(jí)別試題的抽題數(shù)量.

1.2 確定章節(jié)分值

組卷前設(shè)置試卷中各章節(jié)所占的分值是常見的約束條件之一.各章節(jié)所占的分值分配可根據(jù)命題者的經(jīng)驗(yàn)手動(dòng)設(shè)定,或者根據(jù)各章節(jié)在課程大綱中所占的學(xué)時(shí)比例自動(dòng)計(jì)算.對(duì)于后者,為提高組卷的成功率,各章節(jié)分配分值不宜設(shè)置為固定值,而采用浮動(dòng)分配方式,即允許在標(biāo)準(zhǔn)分配的基礎(chǔ)上左右浮動(dòng)一定比例.例如:某章按學(xué)時(shí)比例計(jì)算,若試卷滿分為100分,該章可分配標(biāo)準(zhǔn)分值為20分,按浮動(dòng)比例5%計(jì)算,則該章組卷時(shí)實(shí)際分配分值在15到25分之間都是符合組卷要求的.

具體實(shí)現(xiàn)時(shí),章節(jié)可分配分值用一個(gè)二維數(shù)組ChapterScore存儲(chǔ).數(shù)組元素ChapterScore(i, 0)的值Si表示可分配標(biāo)準(zhǔn)分值,ChapterScore(i, 1)中的值Ci表示章號(hào)(見表1).

表1 章節(jié)分值分配數(shù)組

組卷時(shí),首先計(jì)算每章的可分配分值,按分值大小降序排序存儲(chǔ)到ChapterScore數(shù)組中,下標(biāo)為0的存儲(chǔ)單元中存儲(chǔ)的章節(jié)號(hào)為優(yōu)先抽題的試題范圍,若該章節(jié)范圍內(nèi)沒有滿足條件的試題,則以下標(biāo)為1的存儲(chǔ)單元存儲(chǔ)的章節(jié)號(hào)為抽題范圍,依此類推.當(dāng)遍歷完ChapterScore數(shù)組中的所有單元后,仍沒有滿足條件的試題,則組卷失敗.當(dāng)每抽選一個(gè)題后,根據(jù)試題所屬章節(jié)號(hào)修改ChapterScore數(shù)組對(duì)應(yīng)元素的分值,再對(duì)ChapterScore進(jìn)行排序, 保持ChapterScore數(shù)組按分值大小降序排序.

1.3 隨機(jī)抽題算法數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

確定了組卷的具體要求,將這些要求轉(zhuǎn)化成試卷中每類或每個(gè)題目的難度、知識(shí)點(diǎn)、分值等量化參數(shù),然后根據(jù)一定的算法抽取試題.

抽題算法主要數(shù)據(jù)結(jié)構(gòu)包括兩個(gè)部分,第一部分為章節(jié)結(jié)構(gòu)向量,每個(gè)向量元素含3個(gè)信息,章節(jié)ID號(hào)、試題數(shù)、試題ID列表向量指針,第二部分為各章試題ID列表向量,每個(gè)元素存儲(chǔ)試題ID號(hào).圖1為抽題算法數(shù)據(jù)結(jié)構(gòu).章節(jié)結(jié)構(gòu)向量結(jié)點(diǎn)結(jié)構(gòu)定義如下:

PublicStructurenode

DimchapterIDAsInteger

DimnumAsInteger

DimrefAsObject

EndStructure

圖1 抽題算法數(shù)據(jù)結(jié)構(gòu)

2 隨機(jī)組卷算法描述

2.1 創(chuàng)建候選試題數(shù)據(jù)結(jié)構(gòu)

組卷時(shí),先將數(shù)據(jù)庫中的試題信息讀入內(nèi)存中,生成供隨機(jī)選題用的候選試題數(shù)據(jù)結(jié)構(gòu)(圖1),生成該數(shù)據(jù)結(jié)構(gòu)需完成以下步驟:(1)以題型、難度為參數(shù),生成章節(jié)結(jié)構(gòu)向量;(2)分別以題型、難度、章節(jié)ID為參數(shù),生成各章節(jié)的試題ID列表向量.

創(chuàng)建候選試題數(shù)據(jù)結(jié)構(gòu)的算法描述:

輸入:章節(jié)數(shù)row,題型qtypeID,難度系數(shù)diff

輸出:候選試題數(shù)據(jù)結(jié)構(gòu)M

FunctioncreateM(ByValrowAsInteger,ByValdiffAsString,ByValqtypeIDAsInteger)AsArray

DimM(row- 1)Asnode‘聲明包含row個(gè)結(jié)點(diǎn)的章節(jié)結(jié)構(gòu)向量

DimstrsqlAsString= ""

Dimdv,dv1AsDataView

DimdbAsDataBase=NewDataBase

‘給定難度和題型條件下獲取數(shù)據(jù)庫各章節(jié)試題數(shù)量

strsql= "selectchapterID,count(*)numfromquestionwheredifficult=@diffandquestiontypeID=@qtypeIDgroupbychapterID"

dv=db.RunSelectSQL(strsql)

DimiAsInteger

Fori= 0Todv.Count- 1

M(i).chapterID=dv(i)("chapterID")‘初始化章節(jié)ID

M(i).num=dv(i)("num") - 1‘試題數(shù)量

dv1 =db.RunSelectSQL("selectIDfromquestionwheredifficult=@diffandquestiontypeID=@qtypeIDandchapterID=@chapterID")‘給定難度、題型及章節(jié)條件下獲取數(shù)據(jù)庫試題ID

Dimqlist(dv1.Count- 1)AsInteger‘聲明試題向量

‘初始化試題向量

Forj= 0Todv1.Count- 1

qlist(j) =dv1(j)("ID")

Next

‘章節(jié)結(jié)點(diǎn)指針指向試題向量

M(i).ref=qlist

Next

ReturnM

EndFunction

2.2 無重復(fù)隨機(jī)抽題

抽題時(shí),根據(jù)章節(jié)ID在章節(jié)結(jié)構(gòu)向量中順序查找到對(duì)應(yīng)的元素M(i),取得試題數(shù)M(i).num,根據(jù)試題ID列表指針取得試題ID列表qlist.在qlist的下標(biāo)0到M(i).num-1范圍內(nèi)隨機(jī)產(chǎn)生一個(gè)下標(biāo),該下標(biāo)的數(shù)組元素值為抽取的試題ID,把這個(gè)元素值跟M(i).num-1下標(biāo)的元素值交換,把隨機(jī)產(chǎn)生過的位置替換為未被選中的值.并將M(i)的試題數(shù)域減1.使下一次隨機(jī)抽題在下標(biāo)0到M(i) .num-2范圍內(nèi)進(jìn)行,保證每次隨機(jī)抽取的試題不重復(fù).

無重復(fù)隨機(jī)抽題算法描述:

輸入:候選試題數(shù)據(jù)結(jié)構(gòu)M,章節(jié)ID

輸出:隨機(jī)抽取的試題ID

FunctionsearchM(ByValM()Asnode,ByValchapterIDAsInteger)AsInteger

DimiAsInteger

DimqIDAsInteger= -1

DimIndexAsInteger

竣工后高層建筑變形監(jiān)測(cè)中應(yīng)用GPS技術(shù)的價(jià)值探究……………………………………………………… 姚建東(6-30)

‘順序掃描候選試題數(shù)據(jù)結(jié)構(gòu)M

Fori= 0ToM.count- 1

‘若章節(jié)向量章節(jié)域與章節(jié)ID相等且該章節(jié)候選試題數(shù)大于0,從中隨機(jī)抽取試題

IfM(i).chapterID=chapterIDAndM(i).num> 0Then

Randomize()

'在0到dv1.count-1之間隨機(jī)取下標(biāo)

Index=CInt(Int((M(i).num) *Rnd()))

'在0到dv1.count-1之間隨機(jī)取下標(biāo)CInt(Int((upperbound-lowerbound+ 1) *Rnd() +lowerbound))

DimqlistAsObject=M(i).ref

qID=qlist(Index)‘取得選擇試題ID

‘把這個(gè)元素值跟m-1下標(biāo)的元素值交換,把隨機(jī)產(chǎn)生過的位置替換為未被選中的值

DimxxAsInteger=qlist(Index)

qlist(Index) =qlist(M(i).num)

qlist(M(i).num) =xx

M(i).num=M(i).num- 1‘將該章節(jié)候選試題數(shù)域減1

EndIf

Next

ReturnqID‘返回試題ID,未抽取成功返回-1

EndFunction

2.3 生成章節(jié)分配分值

ChapterScore數(shù)組用于存儲(chǔ)按課時(shí)比例生成的可分配分值,在執(zhí)行組卷算法前進(jìn)行初始化,從數(shù)據(jù)庫中獲取當(dāng)前題庫各章節(jié)的學(xué)時(shí)分布數(shù)據(jù),進(jìn)行統(tǒng)計(jì)后存儲(chǔ)到ChapterScore數(shù)組中,并對(duì)數(shù)組按可分配分值降序排序.

生成章節(jié)分配分值算法描述如下:

輸入:題庫ID,章節(jié)分配分值數(shù)組ChapterScore,章節(jié)數(shù)chapterCount

輸出:章節(jié)分配分值數(shù)組ChapterScore

SubCreateChapterScore(ByValquestionbankIDAsInteger,ByrefChapterScore(,)asinteger,byvalchapterCountasinteger)

'從數(shù)據(jù)庫中獲取課時(shí)分布

Dimksfb_dvAsDataView=db.RunSelectSQL("selectB.ks,A.chapterfromksfbAinnerjoinquestionbankoutlineBonA.questionbankID=B.questionbankIDandA.chapterID=B.IDwhereA.questionbankID=" &questionbankID)

DimiAsInteger

'累加各章課時(shí),統(tǒng)計(jì)總課時(shí)

Dimks_sumAsInteger= 0

Fori= 0Torow- 1

ks_sum=ks_sum+ksfb_dv(i)("ks")

Next

'按課時(shí)比例計(jì)算可分配分值存儲(chǔ)到ChapterScore數(shù)組,ChapterScore(i, 0)表示可分配標(biāo)準(zhǔn)分值,ChapterScore(i, 1)表示章號(hào),

Fori= 0Torow- 1

DimksAsDecimal=Convert.ToDecimal(ksfb_dv(i)("ks"))

ChapterScore(i, 0) =CInt(ks/ks_sum* 100)

ChapterScore(i, 1) =ksfb_dv(i)("chapterID")

Next

SelectSort(ChapterScore,chapterCount) '對(duì)可分配分值數(shù)組按可分配分值大小降序排序

Endsub

2.4 改進(jìn)的隨機(jī)組卷算法

自動(dòng)組卷按各種題型分別抽題的方式進(jìn)行.優(yōu)先處理單題分值大的題型,如分析題較單選題優(yōu)先處理,因?yàn)轭}型的單題分值大小反應(yīng)了知識(shí)點(diǎn)的教學(xué)要求和試卷平均難度系數(shù)的權(quán)重,按題型單題分值從大到小的順序進(jìn)行各種題型的抽題組卷,有利于滿足組卷約束條件.抽題時(shí)根據(jù)ChapterScore數(shù)組優(yōu)先在可分配分值大的章節(jié)中抽題.分值大的試題將優(yōu)先分布到可分配分值大的章節(jié)中.而且,由于可分配分值隨抽題過程而不斷動(dòng)態(tài)調(diào)整,抽取試題不斷跳躍分布到不同的章節(jié)中,從而使同一題型的試題均勻分布到各章節(jié)中.

隨機(jī)抽題組卷算法詳細(xì)描述如下:

'生成章節(jié)分配分值

CreateChapterScore(questionbankID,ChapterScore,chapterCount)

'從數(shù)據(jù)庫中查詢組卷策略明細(xì),返回記錄集

DimdvAsDataView=db.RunSelectSQL("selectB.*fromstrategyAinnerjoinstrategydetailBonA.ID=B.paperstrategyIDwhereA.ID=@strategyorderbyB.singscoredesc")

'若組卷策略明細(xì)不為空,則執(zhí)行

Ifdv.Count> 0Then

Dimj,h,r,kAsInteger

'依次對(duì)每個(gè)題型進(jìn)行抽題,優(yōu)先處理單題分值大的題型

Fori= 0Todv.Count- 1

'取得不同難度的試題數(shù)存儲(chǔ)到diff數(shù)組

DimdifficultpreAsString=dv(i)("difficultpre")

Dimdiff()AsString=difficultpre.Split(",")

DimdifstrAsString() = {"易", "中", "難"}

'聲明questionlist變量存儲(chǔ)已抽取的試題ID,試題ID之間用逗號(hào)分隔

DimquestionlistAsString= ""

'按“難”、“中”、“易”依次抽取試題

Forj= 0To2

'若當(dāng)前難度下要抽取的試題數(shù)大于0,則執(zhí)行

Ifdiff(j) > 0Then

'聲明arr數(shù)組存儲(chǔ)要抽取的試題ID

Dimarr(diff(j) - 1)Asinteger

'創(chuàng)建候選試題數(shù)據(jù)結(jié)構(gòu)

DimM()Asnode=createM(row,difstr(j),dv(i)("questiontypeID"))

'反復(fù)抽選試題

Forh= 0Todiff(j) - 1

' 根據(jù)ChapterScore數(shù)組依次檢測(cè)每章

Forr= 0Torow-1

' 隨機(jī)抽題,返回題號(hào)

DimIndexAsInteger=searchM(M,ChapterScore(r, 1))

DimkfpAsDecimal= (ChapterScore(r, 0) +ChapterScore(r, 0) *xs)

' 隨機(jī)抽題成功且可分配分值大于單題分值

IfIndex<> -1AndCInt(kfp) >=dv(i)("singscore")Then

' 更新ChapterScore數(shù)組

ChapterScore(r, 0) =ChapterScore(r, 0) -dv(i)("singscore")

' 對(duì)ChapterScore數(shù)組排序

SelectSort(ChapterScore,row)

arr(h) =Index

ExitFor

EndIf

Next

'結(jié)束本次循環(huán)

Ifr>row- 1Then

ExitFor

EndIf

Next

'形成試題號(hào)列表字符串

Fork= 0Toh

questionlist=questionlist+arr(k) + ","

Next

EndIf

Next

Ifquestionlist.Length> 0Then

questionlist=Left(questionlist,questionlist.Length- 1)

'將當(dāng)前題型抽選的試題列表保存到試卷明細(xì)表

insert(dv(i)("questiontypeID"),dv(i)("num"),dv(i)("singscore"),dv(i)("description"),questionlist)

EndIf

Next

EndIf

上面的程序主要執(zhí)行以下幾步操作:(1)調(diào)用CreateChapterScore函數(shù)生成章節(jié)分值分配數(shù)組ChapterScore;(2)執(zhí)行數(shù)據(jù)庫訪問方法RunSelectSQL返回組卷策略記錄集;(3) 依次對(duì)每個(gè)題型進(jìn)行抽題,優(yōu)先處理單題分值大的題型;(4)調(diào)用createM函數(shù)生成候選試題數(shù)據(jù)結(jié)構(gòu);(5)調(diào)用searchM函數(shù)生成不重復(fù)的試題;(6)生成試題號(hào)列表字符串questionlist;(7)調(diào)用insert方法將當(dāng)前題型抽選的試題列表保存到試卷明細(xì)表.

3 算法分析

應(yīng)用改進(jìn)的隨機(jī)組卷與傳統(tǒng)算法在生成試卷的執(zhí)行效率上進(jìn)行了比較, 其中試題科目為《數(shù)據(jù)庫原理與應(yīng)用》和《高級(jí)語言程序設(shè)計(jì)》,試題庫題量分別為400個(gè)、1 200個(gè), 試題庫試題構(gòu)成如表2所示.

測(cè)試環(huán)境:處理器為i5-4200M2.5GHz,內(nèi)存為4GB,操作系統(tǒng)為64位windows10.算法基于.NET框架,采用VB.NET語言實(shí)現(xiàn), 試題存儲(chǔ)數(shù)據(jù)庫選用SQLServer2008R2.不同算法執(zhí)行的比較結(jié)果如表3所示.

表2 試題庫試題構(gòu)成統(tǒng)計(jì)表 個(gè)

表3 兩種算法執(zhí)行效率的比較

測(cè)試結(jié)果中,當(dāng)題量為400時(shí),傳統(tǒng)算法抽取10套含30個(gè)題的試卷的平均用時(shí)為0.42s,改進(jìn)的組卷算法平均用時(shí)0.14s.當(dāng)題量為1 200時(shí),傳統(tǒng)算法抽取10套含90個(gè)題的試卷平均用時(shí)0.76s,改進(jìn)的組卷算法平均用時(shí)0.43s.可以看出,當(dāng)題量較小時(shí),由于抽題時(shí)發(fā)生重復(fù)而回溯降低了算法性能,對(duì)傳統(tǒng)算法的執(zhí)行效率影響較大,而改進(jìn)的組卷算法在抽題過程中不會(huì)產(chǎn)生重復(fù)抽題現(xiàn)象,執(zhí)行效率的穩(wěn)定性較好.同時(shí),兩組測(cè)試中,本文算法的組卷效率明顯優(yōu)于傳統(tǒng)算法.

此外,觀察每種題型的試題在各章節(jié)中的分布情況可知,傳統(tǒng)算法生成的20套試卷,其中有4套試卷出現(xiàn)試題分布不合理的情況,同類題型的試題過度集中到某個(gè)章節(jié)中.而使用改進(jìn)的組卷算法生成的試卷,均未出現(xiàn)試題堆積現(xiàn)象,試題分布合理性較好.

4 結(jié)束語

組卷是試題庫建設(shè)和無紙化考試系統(tǒng)的核心內(nèi)容.本文對(duì)組卷過程中的重復(fù)性抽題以及分布不合理的問題,提出了針對(duì)性的解決方案.

通過構(gòu)造高效的數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)了無重復(fù)隨機(jī)抽題.使用可分配分值數(shù)組提供的信息,避免了相同題型試題過度集中于部分章節(jié)中,從而提高了試題分布的合理性.使用本算法的試題庫管理系統(tǒng)在實(shí)際應(yīng)用中運(yùn)行穩(wěn)定,完全滿足大批量在線組卷需求.

[1]唐朝舜,董玉德,熊蓉.在線隨機(jī)組卷算法研究及實(shí)現(xiàn) [J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,29(3):296-299.

[2]金漢均,鄭世玨,吳明武.分段隨機(jī)抽取選法在智能組卷中的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2003,20(9):102-103.

[3]李大輝.基于廣度優(yōu)先回溯算法的試題搜索算法[J].大慶石油學(xué)院學(xué)報(bào),2006,30(3):100-101.

[4] 張琨,楊會(huì)菊.基于遺傳算法的自動(dòng)組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2012,34(5):178-183.

[5] 朱婧, 戴青云,王美林.自適應(yīng)遺傳算法在工程訓(xùn)練在線考試中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(14):227-230.

[6] 肖桂霞,趙武初,朱偉,等. 基于遺傳算法智能組卷的去重題方法[J].計(jì)算機(jī)工程, 2012, 38(11): 150-152.

[7]陳國彬,張廣朱. 基于改進(jìn)遺傳算法的快速自動(dòng)組卷算法研究[J].計(jì)算機(jī)應(yīng)用研究,2015,10(32):2 996-2 998.

[8]王萌, 金漢均,王曉榮. 集合隨機(jī)抽選法在智能組卷中的研究[J].計(jì)算機(jī)工程與設(shè)計(jì), 2006, 18(27): 3 583-3 585.

[9]毛秉毅. 一種計(jì)算試卷中試題難度分布的有效方法[J].計(jì)算機(jī)工程, 2002, 28(6): 280-281.

[10]曾一,冉忠,郭永林. 試題庫中自動(dòng)組卷的算法及試卷測(cè)評(píng)策略[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2006, 27(16): 3 024-3 027.

(編輯:郝秀清)

Intelligent test paper generating algorithm based on improved random selection strategy

WANG Dong

(Mathematics and Computer Science Institute, Guizhou Education University, Guiyang 550018, China)

Aiming at the repeated problems in the process of random extraction, an optimized data structure is designed, which can realize the rapid test paper generation without backtracking. Based on this method, the distribution of the test questions is pre evaluated in advance, so as to determine the scope of the section to be extracted. Then questions are randomly selected from the candidates, so as to effectively solve the problem of the irrational distribution in test questions. The algorithm has been successfully applied in the examination question system.

auto-generating test paper; the examination question system; random generating paper algorithms; paper-making strategy

2016-09-23

貴州省2014年本科教學(xué)質(zhì)量工程項(xiàng)目(黔教高發(fā)[2014]378號(hào))

王東,男,wd_gz@163.com

1672-6197(2017)04-0019-05

TP

A

猜你喜歡
數(shù)組數(shù)據(jù)結(jié)構(gòu)章節(jié)
JAVA稀疏矩陣算法
數(shù)據(jù)結(jié)構(gòu)線上線下混合教學(xué)模式探討
JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
高中數(shù)學(xué)章節(jié)易錯(cuò)點(diǎn)提前干預(yù)的策略研究
素養(yǎng)之下,美在引言——《“推理與證明”章節(jié)引言》一節(jié)比賽課的實(shí)錄
Excel數(shù)組公式在林業(yè)多條件求和中的應(yīng)用
“翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
黃廖本《現(xiàn)代漢語》詞匯章節(jié)中的幾個(gè)問題
尋找勾股數(shù)組的歷程