新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临漳县| 内乡县| 临潭县| 陇西县| 平乡县| 中牟县| 汨罗市| 年辖:市辖区| 蕲春县| 凤凰县| 绵阳市| 班玛县| 潢川县| 武夷山市| 肇源县| 东宁县| 大足县| 通化市| 衡南县| 山西省| 青海省| 玉山县| 黎平县| 天峻县| 泊头市| 涡阳县| 柯坪县| 家居| 霍山县| 正阳县| 旺苍县| 黑水县| 弥渡县| 贡山| 黄龙县| 吴忠市| 河池市| 淮阳县| 徐汇区| 淳化县| 湘潭县|