FUNCTION RNDN(q,p,a,b) ! a: 優秀度(1〜10) b: 難易度(1〜10) → 正解1 負正解0 LET X=RND IF X=<(a-1)/10+0.05+(1.05-a/10)*((5-b)/5) THEN LET RNDN=1 ELSE LET RNDN=0 END IF END FUNCTION RANDOMIZE CALL SetColor(0,0,0) PRINT PRINT " 比較的滑らかに分布した能力の解答者と、" PRINT " 比較的滑らかに分布した難易度の問題における、" PRINT "SP表による滑らか分布度の判定 のシミュレーション" PRINT PRINT PRINT "(1) 1回目のシミュレーション" PRINT DIM T(10,10),TT(10,10),Q(10),QQ(10),R(10),RR(10),WS(10),W(10),WW(10) LET L1=0 LET L2=0 FOR XX=1 TO 1000 FOR i=1 TO 10 FOR j=1 TO 10 LET T(11-i,j)=RNDN(i,j,i,j) NEXT j NEXT i MAT TT=TRN(T) IF XX=1 THEN PRINT "元の行列: 行は事前評価で能力の高い順の解答者、列は事前評価で容易な順の問題。" PRINT END IF FOR i=1 TO 10 LET KEI1=O LET KEI2=O FOR j=1 TO 10 IF XX=1 THEN PRINT USING "#####":T(i,j); END IF LET KEI1=KEI1+T(i,j) LET KEI2=KEI2+T(i,j)*10^(10-j) IF j=10 THEN LET Q(i)=KEI1 LET R(i)=KEI2 IF XX=1 THEN CALL SetColor(0,0,250) PRINT USING "#######":Q(i) PRINT END IF END IF NEXT j NEXT i IF XX=1 THEN FOR i=1 TO 10 LET WS(i)=0 FOR j=1 TO 10 LET WS(i)=WS(i)+T(j,i) NEXT j NEXT i CALL SetColor(0,0,250) FOR i=1 TO 10 PRINT USING "#####":WS(i); NEXT i PRINT PRINT END IF CALL SORT(Q,R,T) FOR i=1 TO 9 FOR j=i+1 TO 10 IF Q(i)=Q(j) THEN IF R(i)