数模实验报告实验11Word文档下载推荐.docx
《数模实验报告实验11Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数模实验报告实验11Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
n为席位总数,p1,p2,„,pm为各单位人数。
步骤:
a.按比例各单位所得席位为n*pi/(p1+p2+,„,pm),i=1,2,„,m(结果可能含有小数)。
b.对各单位所得席位取整。
c.若对各单位所得席位取整数之和<
n,说明席位未分完。
将
(1)中各数的小数部分按从大到小排序,把剩余的席位顺序分出去(每个单位至多分1个席位)。
某学校有甲乙丙三个系共有200名学生,其中甲系有103人,乙系有63人,丙系有34人。
1.有20个代表席位,采用参照惯例的席位分配方法,分别求出甲乙丙系的“席位分配结果”和“求解过程”。
2.有21个代表席位,采用参照惯例的席位分配方法,分别求出甲乙丙系的“席位分配结果”和“求解过程”。
四、实验结果及分析
1、m文件:
function[ni,c]=fapt1(p,n)
temp=p*n/sum(p);
%按比例各单位所得席位(可能含小数)
ni=fix(temp);
%各单位所得席位取整
c=ni;
ifsum(ni)<
n%席位没分完,temp中存在小数部分不为0
c=[temp;
ni];
%拼接
temp=temp-ni;
%取小数部分
[d,k]=sort(temp,'
descend'
);
%按降序排序(缺省为升序)
i=1;
whilesum(ni)<
n
ni(k(i))=ni(k(i))+1;
i=i+1;
end
c=[c;
2、在命令窗口输入:
题1:
formatshortg
p=[1036334];
n=20;
[ni,c]=fapt1(p,n)
题2:
n=21;
不合理,因为只多出了一个席位,而甲乙两个系分别多获得一个席位,丙系少一个席位
实验11-2公平的席位分配(Q值方法)
1、理解Q值分配方法。
2、熟悉使用Matlab软件编写Q值分配方法的程序代码。
2、实验要求
1.在命令窗口分别调用以上函数求解(使用最佳定点或浮点格式(5位数字)控制命令formatshortg)。
2.两个结果比较,合理吗?
Q值方法:
(参考P280-281)
设第i方人数为pi,已占有ni个席位,i=1,2,„,m。
当总席位增加1席时,计算
应将这一席位分给Q值最大的一方。
某学校有甲乙丙三个系共有200名学生,其中甲系有103人,乙系有63人,丙系有34人。
1.有20个代表席位,采用Q值法分别求出甲乙丙系的“席位分配结果”和“求解过程”。
2.有21个代表席位,采用Q值法分别求出甲乙丙系的“席位分配结果”和“求解过程”。
function[ni,c]=fapt2(p,n)
ni=floor(p*n/sum(p));
Qi=(p.*p)./(ni.*(ni+1));
%ni>
[MAXQ,i]=max(Qi);
%求最大值元素及下标
ni(i)=ni(i)+1;
Qi;
实验11-3公平的席位分配(d’Hondt方法)
1、理解d’Hondt分配方法。
2、熟悉使用Matlab软件编写d’Hondt分配方法的程序代码。
1、用d’Hont方法分配名额。
2、分别用实验11-1的参照惯例的席位分配方法和实验11-2的Q值方法分配名额。
3、如果委员会从10人增至15人,用以上3种方法再分配名额。
4、结合对d’Hont方法的叙述和所给函数,理解d’Hont方法。
5、将3种方法两次分配的结果进行比较。
学校共1000名学生,235人住在A宿舍,333人住在B宿舍,432人住在C宿舍。
学生们要组织一个10人的委员会,如何分配各宿舍的委员数。
d’Hondt方法:
将A,B,C各宿舍的人数用正整数n=1,2,3,„相除,其商数如下表:
将所得商数从大到小取前10个(10为席位数),在数字下标以横线。
表中A,B,C行有横线的数分别为2,3,5,这就是3个宿舍分配的席位。
四、实验内容及分析
function[ni,c]=fapt3(p,n)
ni=zeros(size(p));
temp=p;
[M,iM]=max(temp);
ni(iM)=ni(iM)+1;
temp(iM)=p(iM)/(ni(iM)+1);
c=p./ni;
2、命令窗口输入:
formatshortg
p=[235333432];
n=10;
[ni,c]=fapt3(p,n)
--------------------------------------------------------
n=10
d’Hondt方法:
3、用实验11-1的调用语句:
4、用实验11-2的调用语句:
[ni,c]=fapt2(p,n)
5、将委员会从10人增至15人的调用语句:
分别将2、3、4中的n=10改为n=15即可
n=15
实验11-1的参照惯例的席位分配方法:
实验11-2的Q值方法分配名额: