公平的席位分配(Q值方法)

        设第 i 方人数为 pi,已占有 ni 个席位,i=1,2,…,m。当总席位增加 1 席时,计算

\large Q_i=\frac{p_i^2}{n_i(n_i+1)},i=1,2,...,m

        应将这一席位分给 Q 值最大的一方。 某学校有甲乙丙三个系共有 200 名学生,其中甲系有 103 人,乙系有 63 人,丙系有 34 人。

        1. 有 20 个代表席位,采用 Q 值法分别求出甲乙丙系的“席位分配结果”和“求解过 程”。

         2. 有 21 个代表席位,采用 Q 值法分别求出甲乙丙系的“席位分配结果”和“求解过程”。 下面是 Q 值法的求解函数:

%输入:p 为各单位人数(行向量),n 为总席位(标量)。
%输出:ni 为各单位所得席位(行向量),c 为求解过程(矩阵)。
%文件名:fapt2.m
function [ni,c]=fapt2(p,n)
ni=floor(p*n/sum(p));
c=ni;
while sum(ni)<n
    Qi=(p.*p)./(ni.*(ni+1)); %ni>0
    [MAXQ,i]=max(Qi); %求最大值元素及下标
    ni(i)=ni(i)+1;
    c=[c;Qi;ni]; %拼接
end

1. 在命令窗口分别调用以上函数求解(使用最佳定点或浮点格式(5 位数字)控制命 令 format short g)。

2. 两个结果比较,合理吗?

看起来挺合理的

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值