新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 計(jì)算機(jī)自適應(yīng)題庫(kù)實(shí)現(xiàn)

計(jì)算機(jī)自適應(yīng)題庫(kù)實(shí)現(xiàn)

作者: 時(shí)間:2011-07-13 來(lái)源:網(wǎng)絡(luò) 收藏

  (1) 計(jì)算一階導(dǎo)數(shù)的函數(shù)

  yijiedaoshu(parameters para[ ],integer j, integer n),返回 double 類型的值。其中parameters{ double a,double b,double c,double ability,double u}是一個(gè)結(jié)構(gòu)體,由某試題的三質(zhì)量參數(shù)a、b、c、應(yīng)試者當(dāng)前能力值 ability和做題情況u 組成。

  該函數(shù)的功能是計(jì)算對(duì)某試題的第j次迭代的一階導(dǎo)數(shù),用于計(jì)算具備初始能力值ability的受測(cè)者的真實(shí)能力值。代碼如下:

  double result;

  int i;

  for i=1 to n

  result += para[i].a * (para[i].u - calculate(para[i]. a,para[i].b,para[i].c,para[i].ability)) * (calculate

 ?。╬ara[i].a,para[i].b,para[i].c,para[i].ability) - para [i].c)

  next i

  if (calculate(para[j].a,para[j].b,para[j].c,para[j].ability))

  * (1 - para[j].c) > 0 then result = (1.702 *

  result) / (calculate(para[j].a,para[j].b,para[j].c,para [j].ability)) *(1 - para[j].c);

  else

  MessageBox(“錯(cuò)誤提示”,“錯(cuò)誤編號(hào):005~r~n計(jì)算錯(cuò)誤!程序終止!”);

  halt;

  end if

  // 第j次迭代一階導(dǎo)

  return result

  (2) 計(jì)算概率的函數(shù)

  calculate(double a ,double b, double c,double ability),返回double 類型的值。

  該函數(shù)的功能是計(jì)算某試題被答對(duì)的概率。代碼如下:

  double resultnum,mid;

  mid= - 1.702*a*(ability - b);

  if (1+exp(mid)) > 0 then

  resultnum=(1 - c)/(1+exp(mid))+c;

  else

  MessageBox(“錯(cuò)誤提示”,“錯(cuò)誤編號(hào):

  006~r~n計(jì)算 錯(cuò)誤!程序終止

 ??!”);

  halt;

  end if

  return resultnum;

 ?。?) 計(jì)算信息函數(shù)

  information(parameters para[],integer j, double ability),返回double類型的值。

  該函數(shù)的功能是用來(lái)計(jì)算某試題的信息量,用來(lái)為具備ability初始能力值的應(yīng)試者選擇合適的下一道試題。代碼如下:

  double result=0

  result = (1.702 * 1.702 * para[j].a * para[j].a) * (1 -

  para[j].c);

  if ((para[j].c + exp(1.702 * para[j].a * ((1 - (calculate

  (para[j].a,para[j].b,para[j].c,ability)) -para[j].b))))* (1 + exp(- 1.702 * para[j].a * (1 -

 ?。╟alculate(para[j].a,para[j].b,para[j].c,ability)) - para[j].b))) * (1 + exp(- 1.702 * para[j].a * (1 -

 ?。╟alculate(para[j].a,para[j].b,para[j].c,ability)) - para[j].b)))) > 0 then

  result=result/((para[j].c+exp(1.702*para[j].a*((1-(calcu- late(para[j].a,para[j].b,para[j].c,

  ability))-para[j].b))))*(1+exp(-1.702*para[j].a*(1 - (calculate(para[j].a,para[j].b,para[j].c,

  ability))-para[j].b)))*(1+exp(-1.702*para[j].a * (1 - (calculate(para[j].a,para[j].b,para[j].c,

  ability)) - para[j].b))))

  else

  MessageBox(“錯(cuò)誤提示”,“錯(cuò)誤編號(hào):007~r~n計(jì)算錯(cuò)誤!程序終止!”);

  halt;

  end if

  return result

  本以經(jīng)典測(cè)量理論和項(xiàng)目反應(yīng)理論為基礎(chǔ),采用Newton-Raphson迭代法,解決了基于IRT的考試系統(tǒng)建設(shè)中出現(xiàn)的系統(tǒng)建設(shè)的最大難題。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉