新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 计算机自适应题库实现

计算机自适应题库实现

作者:时间:2011-07-13来源:网络收藏

  (1) 计算一阶导数的函数

  yijiedaoshu(parameters para[ ],integer j, integer n),返回 double 类型的值。其中parameters{ double a,double b,double c,double ability,double u}是一个结构体,由某试题的三质量参数a、b、c、应试者当前能力值 ability和做题情况u 组成。

  该函数的功能是计算对某试题的第j次迭代的一阶导数,用于计算具备初始能力值ability的受测者的真实能力值。代码如下:

  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

  (para[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(“错误提示”,“错误编号:005~r~n计算错误!程序终止!”);

  halt;

  end if

  // 第j次迭代一阶导

  return result

  (2) 计算概率的函数

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

  该函数的功能是计算某试题被答对的概率。代码如下:

  double resultnum,mid;

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

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

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

  else

  MessageBox(“错误提示”,“错误编号:

  006~r~n计算 错误!程序终止

  !”);

  halt;

  end if

  return resultnum;

  (3) 计算信息函数

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

  该函数的功能是用来计算某试题的信息量,用来为具备ability初始能力值的应试者选择合适的下一道试题。代码如下:

  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 -

  (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)))) > 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(“错误提示”,“错误编号:007~r~n计算错误!程序终止!”);

  halt;

  end if

  return result

  本以经典测量理论和项目反应理论为基础,采用Newton-Raphson迭代法,解决了基于IRT的考试系统建设中出现的系统建设的最大难题。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭