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

本文介绍了Q值法在分配有限资源,如学校代表席位问题中的应用。给定甲乙丙三个系的人数,通过Q值法计算在20个和21个席位情况下的分配结果。Q值法确保了席位的公平分配,具体过程涉及计算每个单位的Q值并按最大Q值分配额外席位。在实际计算中,使用了MATLAB函数fapt2.m进行求解,结果显示分配结果合理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        设第 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. 两个结果比较,合理吗?

看起来挺合理的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值