fid=fopen('tt.txt','wt');
fprintf(fid,'%f',0);
fclose(fid);
for SY=1:1000 %-----------------试验1000次-------------------------
clear;clc
%生成正态分布的绝对分数
%JDF=round(75+sqrt(100)*randn(1,100));
JDF=xlsread('jueduifen.xls');
JDF=[JDF,0,0,0,0];
%求打分误差的均值、方差
%wuchaJZ=randi([-5,5],1,8);
wuchaJZ=[0,-1,-4,0,4,4,-3,-3;];
%求误差方差,随评阅试卷数量的变化而变化,调用函数 wuchafangcha
%--------------------------------------------------------------------------
%分离三个最好的,三个最差的
[JDF0,index0]=sort(JDF,'descend');
JDF0=[JDF0;index0];
W(1,1)=JDF0(1,1);W(1,2)=JDF0(1,2);W(1,3)=JDF0(1,3);W(2,1)=JDF0(2,1);W(2,2)=JDF0(2,2);W(2,3)=JDF0(2,3);
W(1,4)=JDF0(1,4);W(1,5)=JDF0(1,5);W(1,6)=JDF0(1,6);W(2,4)=JDF0(2,4);W(2,5)=JDF0(2,5);W(2,6)=JDF0(2,6);
Q(1,1)=JDF0(1,95);Q(1,2)=JDF0(1,96);Q(1,3)=JDF0(1,97);Q(2,1)=JDF0(2,95);Q(2,2)=JDF0(2,96);Q(2,3)=JDF0(2,97);
Q(1,4)=JDF0(1,98);Q(1,5)=JDF0(1,99);Q(1,6)=JDF0(1,100);Q(2,4)=JDF0(2,98);Q(2,5)=JDF0(2,99);Q(2,6)=JDF0(2,100);
%--------------------------------------------------------------------------
%第一轮筛选
%8位老师打分
k=1;
for i=1:8
for j=1:13
JDF1(k)=JDF(k)+normrnd(wuchaJZ(i),wuchafangcha(j));%JDF1表示老师的第一轮打分
k=k+1;
end
end
%-------------------------------------------------------------
%记录第一轮每位老师评阅过的试卷代号
JiLu{1}=1:13; JiLu{2}=14:26;JiLu{3}=27:39;JiLu{4}=40:52;
JiLu{5}=53:65;JiLu{6}=66:78;JiLu{7}=79:91;JiLu{8}=92:100;
%--------------------------------------------------------------
PJ1=mean2(JDF1);%取第一轮全部打分后的均值
[JDF1P,index1]=sort(JDF1,'descend');%降序排序
JDF1P=[JDF1P;index1];
%淘汰分数在均值以下的试卷
for i=1:104
if JDF1P(1,i)>=PJ1
YouXiu1(1,i)=JDF1P(1,i);
YouXiu1(2,i)=JDF1P(2,i);
elseif JDF1P(1,i)<PJ1
TaoTai1(1,i)=JDF1P(1,i);
TaoTai1(2,i)=JDF1P(2,i);
end
end
%---------------------------------------------------------
%如果最后得到的优秀试卷数大于2W份即6份时,重复上述过程,否则进入另一过程
if length(YouXiu1)>6
T=int8(length(YouXiu1)/8);
%--------------------------------------
t=randperm(length(YouXiu1));
for i=1:length(YouXiu1)
DaLuanFen(1,i)=YouXiu1(1,t(i)); %第一轮的打分
DaLuanFen(2,i)=JDF(YouXiu1(2,t(i))); % 绝对分数 打乱数据
DaLuanFen(3,i)=YouXiu1(2,t(i)); %对应的试卷代号
end
%--------------------------------------
%第二轮打分
%前七个老师打分
k=1;
for i=1:7
p=1;
for j=1:T
%----------------------------------------------------------------
for m=1:1:length(JiLu{i})
if DaLuanFen(3,k)==JiLu{1,i}(1,m)
O=1;
break; %判断该老师是否已经在第一轮评阅过该试卷
elseif DaLuanFen(3,k)~=JiLu{1,i}(1,m)
O=0;
end
end
%----------------------------------------------------------------
if O==1
JDF2(1,k)=DaLuanFen(1,k);
JDF2(2,k)=DaLuanFen(3,k); %JDF2表示老师的第二轮打分
k=k+1;
elseif O==0
JDF2(1,k)=DaLuanFen(2,k)+normrnd(wuchaJZ(i),wuchafangcha(13+p));
JDF2(2,k)=DaLuanFen(3,k);
p=p+1;
JiLu{1,i}=[JiLu{1,i},DaLuanFen(3,k)];
k=k+1;
end
end
end
%----------------------------------------------------------------------
%第八个老师打分
p=1;n81=length(YouXiu1)-k;
for i=k:1:length(YouXiu1)
%----------------------------------------------------------------
for m=1:1:length(JiLu{8})
if DaLuanFen(3,k)==JiLu{1,8}(1,m)
O=1;
break; %判断该老师是否已经在第一轮评阅过该试卷
elseif DaLuanFen(3,k)~=JiLu{1,8}(1,m)
O=0;
end
end
%----------------------------------------------------------------
if O==1
JDF2(1,k)=DaLuanFen(1,k);
JDF2(2,k)=DaLuanFen(3,k);
k=k+1;
elseif O==0
JDF2(1,k)=DaLuanFen(2,k)+normrnd(wuchaJZ(8),wuchafangcha(9+p));
JDF2(2,k)=DaLuanFen(3,k);
p=p+1;
JiLu{1,8}=[JiLu{1,8},DaLuanFen(3,k)];
k=k+1;
end
%--------------------------------------------------------------
end
DaLuanFen=[DaLuanFen(1,:);JDF2(1,:);JDF2(2,:)];
%------------------------------------------------------------------------
%求两轮打分后的平均分
for i=1:length(DaLuanFen)
JDF2PJ(1,i)=(DaLuanFen(1,i)+DaLuanFen(2,i))/2;
JDF2PJ(2,i)=DaLuanFen(3,i);
end
%------------------------------------------------------------------------
PJ2=mean(JDF2PJ,2);%取两轮全部打分后的均值
[JDF2P,index2]=sort(JDF2PJ(1,:),'descend');%降序排序
%---------------------------------------------------------------------
for i=1:length(DaLuanFen)
JDF2P(2,i)=JDF2PJ(2,index2(i));
end
%----------------------------------------------------------------------
%淘汰分数在均值以下的试卷
YouXiu1=[]; TaoTai1=[];
for i=1:length(JDF2P)
if JDF2P(1,i)>=PJ2(1,1)
YouXiu1(1,i)=JDF2P(1,i);
YouXiu1(2,i)=JDF2P(2,i);
elseif JDF2P(1,i)<PJ2(1,1)
TaoTai1(1,i)=JDF2P(1,i);
TaoTai1(2,i)=JDF2P(2,i);
end
end
end
%第三轮打分
if length(YouXiu1)>6
T1=T;T=[];t=[];DaLuanFen=[];
T=floor(length(YouXiu1)/8);
%--------------------------------------
t=randperm(length(YouXiu1));
for i=1:length(YouXiu1)
DaLuanFen(1,i)=JDF1P(1,t(i)); %第一轮的打分
DaLuanFen(2,i)=YouXiu1(1,t(i)); %第二轮的打分 打乱数据
DaLuanFen(3,i)=JDF(YouXiu1(2,t(i))); % 绝对分数
DaLuanFen(4,i)=YouXiu1(2,t(i)); %对应的试卷代号
end
%--------------------------------------
%前七个老师打分
k=1;
for i=1:7
p=1;
for j=1:T
%----------------------------------------------------------------
for m=1:1:length(JiLu{i})
if DaLuanFen(4,k)==JiLu{1,i}(1,m)
O=1;
break; %判断该老师是否已经在第一轮评阅过该试卷
elseif DaLuanFen(4,k)~=JiLu{1,i}(1,m)
O=0;
end
end
%----------------------------------------------------------------
if O==1
JDF3(1,k)=double(vpa(DaLuanFen(2,k),6));
JDF3(2,k)=double(vpa(DaLuanFen(4,k),6)); %JDF3表示老师的第三轮打分
k=k+1;
elseif O==0
JDF3(1,k)=double(vpa(DaLuanFen(3,k),6)+normrnd(wuchaJZ(i),wuchafangcha(13+T1+p)));
JDF3(2,k)=double(vpa(DaLuanFen(4,k),6));
p=p+1;
JiLu{1,i}=[JiLu{1,i},DaLuanFen(4,k)];
k=k+1;
end
end
end
%------------------------------------------------
%第八个老师打分
p=1;
for i=k:1:length(YouXiu1)
%----------------------------------------------------------------
for m=1:1:length(JiLu{8})
if DaLuanFen(4,k)==JiLu{1,8}(1,m)
O=1;
break; %判断该老师是否已经在前两轮轮评阅过该试卷
elseif DaLuanFen(4,k)~=JiLu{1,8}(1,m)
O=0;
end
end
%------------------------------------------------
wu-lun.rar_圆桌评卷模型
版权申诉
183 浏览量
2022-07-13
19:51:01
上传
评论
收藏 3KB RAR 举报
局外狗
- 粉丝: 64
- 资源: 1万+
最新资源
- 基于matlab实现车牌识别程序,和论文,自己做的,做毕业设计的可以看看 .rar
- Windows系统下安装与配置Neo4j的步骤
- 基于matlab实现潮流计算和最优潮流计算的程序1,对毕业设计有一定用处.rar
- 基于大数据学习资源推荐系统的设计与实现(部署视频)-kaic.mp4
- 哈工大形式语言和自动机2022期末含答案
- Windows系统下安装与配置Neo4j的步骤
- 哈希算法(Hash Algorithm)是一种将任意长度的二进制数据映射为较短的、固定长度的二进制值的函数.txt
- Windows系统下安装与配置Neo4j的步骤
- 在二叉树或更复杂的树形结构中,先序输出叶结点.txt
- 列出所有祖先结点的概念通常与树形结构或图论中的节点相关.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈