数模实验报告实验11.docx
- 文档编号:3357263
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:8
- 大小:39.41KB
数模实验报告实验11.docx
《数模实验报告实验11.docx》由会员分享,可在线阅读,更多相关《数模实验报告实验11.docx(8页珍藏版)》请在冰豆网上搜索。
数模实验报告实验11
实验11-1公平的席位分配(参照惯例的席位分配方法)
1、实验目的
1、理解比例加惯例分配方法。
2、熟悉使用Matlab软件编写比例加惯例的程序代码。
二、实验要求
1、在命令窗口分别调用以上函数求解(使用最佳定点或浮点格式(5位数字)控制命令formatshortg)。
2、两个结果比较,合理吗?
3、实验内容
参照惯例的席位分配方法:
(参考P278-279)
n为席位总数,p1,p2,„,pm为各单位人数。
步骤:
a.按比例各单位所得席位为n*pi/(p1+p2+,„,pm),i=1,2,„,m(结果可能含有小数)。
b.对各单位所得席位取整。
c.若对各单位所得席位取整数之和 将 (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) c=[temp;ni];%拼接 temp=temp-ni;%取小数部分 [d,k]=sort(temp,'descend');%按降序排序(缺省为升序) i=1; whilesum(ni) ni(k(i))=ni(k(i))+1; i=i+1; end c=[c;ni];%拼接 end 2、在命令窗口输入: 题1: formatshortg p=[1036334];n=20; [ni,c]=fapt1(p,n) 题2: formatshortg p=[1036334];n=21; [ni,c]=fapt1(p,n) 不合理,因为只多出了一个席位,而甲乙两个系分别多获得一个席位,丙系少一个席位 实验11-2公平的席位分配(Q值方法) 1、实验目的 1、理解Q值分配方法。 2、熟悉使用Matlab软件编写Q值分配方法的程序代码。 2、实验要求 1.在命令窗口分别调用以上函数求解(使用最佳定点或浮点格式(5位数字)控制命令formatshortg)。 2.两个结果比较,合理吗? 3、实验内容 Q值方法: (参考P280-281) 设第i方人数为pi,已占有ni个席位,i=1,2,„,m。 当总席位增加1席时,计算 应将这一席位分给Q值最大的一方。 某学校有甲乙丙三个系共有200名学生,其中甲系有103人,乙系有63人,丙系有34人。 1.有20个代表席位,采用Q值法分别求出甲乙丙系的“席位分配结果”和“求解过程”。 2.有21个代表席位,采用Q值法分别求出甲乙丙系的“席位分配结果”和“求解过程”。 四、实验结果及分析 1、m文件: function[ni,c]=fapt2(p,n) ni=floor(p*n/sum(p)); c=ni; whilesum(ni) Qi=(p.*p)./(ni.*(ni+1));%ni>0 [MAXQ,i]=max(Qi);%求最大值元素及下标 ni(i)=ni(i)+1; c=[c;Qi;ni];%拼接 end 2、在命令窗口输入: 题1: formatshortg p=[1036334];n=20; [ni,c]=fapt1(p,n) 题2: formatshortg p=[1036334];n=21; [ni,c]=fapt1(p,n) 实验11-3公平的席位分配(d’Hondt方法) 1、实验目的 1、理解d’Hondt分配方法。 2、熟悉使用Matlab软件编写d’Hondt分配方法的程序代码。 2、实验要求 1、用d’Hont方法分配名额。 2、分别用实验11-1的参照惯例的席位分配方法和实验11-2的Q值方法分配名额。 3、如果委员会从10人增至15人,用以上3种方法再分配名额。 4、结合对d’Hont方法的叙述和所给函数,理解d’Hont方法。 5、将3种方法两次分配的结果进行比较。 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个宿舍分配的席位。 四、实验内容及分析 1、m文件: function[ni,c]=fapt3(p,n) ni=zeros(size(p)); temp=p; whilesum(ni) [M,iM]=max(temp); ni(iM)=ni(iM)+1; temp(iM)=p(iM)/(ni(iM)+1); end c=p./ni; 2、命令窗口输入: formatshortg p=[235333432];n=10; [ni,c]=fapt3(p,n) -------------------------------------------------------- n=10 d’Hondt方法: 3、用实验11-1的调用语句: formatshortg p=[235333432];n=10; [ni,c]=fapt1(p,n) 4、用实验11-2的调用语句: formatshortg p=[235333432];n=10; [ni,c]=fapt2(p,n) 5、将委员会从10人增至15人的调用语句: 分别将2、3、4中的n=10改为n=15即可 n=15 d’Hondt方法: 实验11-1的参照惯例的席位分配方法: 实验11-2的Q值方法分配名额:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数模 实验 报告 11