s-p表分析

import numpy as np

s=16

p=12

A=np.array([[0,1,2,3,4,5,6,7,8,9,10,0],

           [1,0,1,1,0,1,1,0,1,1,0,-1],

           [2,0,1,1,1,1,0,0,0,0,0,-1],

           [3,1,1,1,1,1,0,1,1,0,1,-1],

           [4,1,1,1,1,1,1,1,0,0,1,-1],

           [5,0,1,1,0,0,0,0,1,0,0,-1],

           [6,1,1,1,1,1,1,1,1,0,1,-1],

           [7,1,0,0,1,1,1,1,1,0,1,-1],

           [8,1,1,1,1,1,1,1,1,1,1,-1],

           [9,1,1,1,0,1,1,0,0,0,0,-1],

           [10,0,1,0,1,1,1,1,0,0,1,-1],

           [11,0,1,1,0,1,1,1,1,1,0,-1],

           [12,0,1,1,1,1,1,1,0,1,1,-1],

           [13,0,1,1,0,1,0,1,0,0,0,-1],

           [14,0,1,1,1,1,1,1,1,1,0,-1],

           [0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]])

print("初始数据是:\n",A)

for i in range (1,s):  

    n=0

    for j in range(1,p-1):

        if A[i][j]==1:

            n+=1

    A[i][p-1]=n

for j in range(1,p):

    n=0

    for i in range(1,s):

        if A[i][j]==1:

            n+=1

    A[s-1][j]=n

for i in range(1,s-1):

    for k in range(1,s-1-i):

        if A[k][p-1]<A[k+1][p-1]:

            for j in range(p):

                n=A[k][j]

                A[k][j]=A[k+1][j]

                A[k+1][j]=n

for j in range(1,p-1):

    for k in range(1,p-1-j):

        if A[s-1][k]<A[s-1][k+1]:

            for i in range(s):

                n=A[i][k]

                A[i][k]=A[i][k+1]

                A[i][k+1]=n

print('s-p表为:\n',A)

z=0

for i in range(1,s-1):

    z += A[i][p-1]

print(f"问题的总正答数:{z}")

spi=z/(s-2)

ppi=z/(p-2)

print("学生的平均分数和问题平均正答数分别为:",spi,ppi)

fm=(s-2)*(p-2)

fz=18

c=fz/fm

print("差异量为:",c)

l=z/fm

print("正答率为:",l)

z=l*(1-l)

cy=0.7*c/z

print("差异系数为:",cy)

for i in range(1,s-1):

    zdf,zds,zdx=0,0,0  

    for j in range(1,A[i][p-1]+1):

        zdf += float(A[s-1][j])

        if(A[i][j]==0):

            zds += float(A[s-1][j])

    for k in range(A[i][p-1]+1,p-1):

        if(A[i][k]==1):

            zdx += float(A[s-1][k])

    sp=float(A[i][p-1])*ppi

    sx=zdf-sp

    sz=zds-zdx

    if sz==0:

        sy=0

    else:

        sy=sz/sx

    print(f"第{A[i][0]}个学生的注意系数为{sy}")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值