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}")