《数模实验报告实验11.doc》由会员分享,可在线阅读,更多相关《数模实验报告实验11.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验11-1 公平的席位分配 参照惯例的席位分配方法一、 实验目的1、 理解比例加惯例分配方法。2、熟悉使用Matlab软件编写比例加惯例的程序代码。二、实验要求 1、在命令窗口分别调用以上函数求解使用最正确定点或浮点格式5 位数字控制命令 format short g。2、 两个结果比拟,合理吗?三、 实验内容 参照惯例的席位分配方法:(参考P278-279) n为席位总数,p1,p2,pm为各单位人数。 步骤: a. 按比例各单位所得席位为 n*pi/(p1+p2+,pm),i=1,2,m结果可能含有小数。 b. 对各单位所得席位取整。 c. 假设对各单位所得席位取整数之和n,说明席位未分
2、完。将(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;if sum(ni)
3、n %席位没分完,temp中存在小数局部不为0c=temp;ni; %拼接temp=temp-ni; %取小数局部d,k=sort(temp,descend);%按降序排序缺省为升序i=1;while sum(ni)nni(k(i)=ni(k(i)+1;i=i+1;endc=c;ni; %拼接end2、 在命令窗口输入:题1:format short g p=103 63 34;n=20; ni,c=fapt1(p,n)题2:format short g p=103 63 34;n=21; ni,c=fapt1(p,n) 不合理,因为只多出了一个席位,而甲乙两个系分别多获得一个席位,丙系少一个
4、席位实验11- 2 公平的席位分配Q值方法 一、 实验目的1、理解Q值分配方法。2、熟悉使用Matlab软件编写Q值分配方法的程序代码。二、 实验要求1. 在命令窗口分别调用以上函数求解使用最正确定点或浮点格式5 位数字控制命令 format short g 。2. 两个结果比拟,合理吗?三、 实验内容Q 值方法:(参考P280-281) 设第i 方人数为pi,已占有ni 个席位,i=1,2,m。当总席位增加1 席时,计算应将这一席位分给Q 值最大的一方。 某学校有甲乙丙三个系共有200 名学生,其中甲系有103 人,乙系有63 人,丙系有34 人。 1. 有20 个代表席位,采用Q 值法分别
5、求出甲乙丙系的“席位分配结果和“求解过程。 2. 有21 个代表席位,采用Q 值法分别求出甲乙丙系的“席位分配结果和“求解过程。四、实验结果及分析1、m文件:function ni,c=fapt2(p,n)ni=floor(p*n/sum(p);c=ni;while sum(ni)0MAXQ,i=max(Qi); %求最大值元素及下标ni(i)=ni(i)+1;c=c;Qi;ni; %拼接end2、在命令窗口输入:题1:format short g p=103 63 34;n=20; ni,c=fapt1(p,n)题2:format short g p=103 63 34;n=21; ni,c
6、=fapt1(p,n)实验11- 3 公平的席位分配dHondt 方法 一、 实验目的1、理解dHondt 分配方法。2、熟悉使用Matlab软件编写dHondt 分配方法的程序代码。二、 实验要求1、用 dHont 方法分配名额。2、分别用实验 11-1 的参照惯例的席位分配方法和实验 11-2 的 Q 值方法分配名额。3、如果委员会从 10 人增至 15 人,用以上 3 种方法再分配名额。4、结合对 dHont 方法的表达和所给函数,理解 dHont 方法。5、将 3 种方法两次分配的结果进展比拟。三、 实验内容学校共1000名学生,235人住在A宿舍,333人住在B宿舍,432人住在C宿
7、舍。学生们要组织一个10人的委员会,如何分配各宿舍的委员数。 dHondt方法: 将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;while sum(ni)nM,iM=max(temp);ni(iM)=ni(iM)+1;temp(iM)=p(iM)/(ni(iM)+1);endc=p./ni;2、 命令窗口输入: format short g p=235 333 432;n=10; ni,c=fapt3(p,n)n=10dHondt 方法:3、 用实验11-1的调用语句: format short g p=235 333 432;n=10; ni,c=fapt1(p,n)4、 用实验11-2的调用语句: format short g p=235 333 432;n=10; ni,c=fapt2(p,n)5、 将委员会从 10人增至15人的调用语句: 分别将2、3、4中的n=10改为n=15即可n=15dHondt 方法:实验 11-1 的参照惯例的席位分配方法:实验 11-2 的 Q 值方法分配名额: