数模笔记之“Q值分配法、比例加惯例(D‘Hondt)” matlab代码
例:某学校有3个系,共200名学生,甲系103人,乙系63人,丙系34人,使用Q值法分配法、“Q值分配法+D’Hondt” 分配21个席位。
%Q值分配法
clc
clear
all=200;
all_des=21;
peo=[103 53 43];
p=floor(peo./all*all_des);
rest=all_des-sum(p);
for i=1:restQ=peo.^2./(p.*(p+1));[M,I]=max(Q);p(I)=p(I)+1;
end
p
但是Q值分配法在名额较少或者参与分配部门比较多的时候,可能存在较大不公平,故提出来用"D‘Hondt +Q值分配法“,代码如下。具体讲解见参考资料。
%D'Hondt +Q值分配法
clc
clear
all=200;
all_des=21;
peo=[103 53 43];[m,n]=size(peo);
p1=zeros(m,n); %每部门分配的名额
[M1,I1]=max(peo);
p1(I1)=p1(I1)+1; %先把名额分配给人数最多的一组
while sum(p1)<all_des %先用D'Hondt法,逐一分配名额,直至每个系都有至少一个分配名额或分配名额数达到要求值if ismember(0,p1)[M2,I2]=max(peo./(p1+1));p1(I2)=p1(I2)+1;elsebreakend
end
if sum(p1)==all_desdisp(['使用D\''Hondt方法,且分配名额为',num2str(p1)]);return
else %使用Q值分配方法p=floor(peo./all*all_des);rest=all_des-sum(p);for i=1:restQ=peo.^2./(p.*(p+1));[M,I]=max(Q);p(I)=p(I)+1;enddisp(['使用q值方法,且分配名额为',num2str(p)]);
end
参考资料:
https://wenku.baidu.com/view/efe0e5b702d276a201292e0c.html
数模笔记之“Q值分配法、比例加惯例(D‘Hondt)” matlab代码相关推荐
- 数模笔记(五):变异系数法
数模笔记(一):线性规划.整数规划及非线性规划 数模笔记(二):层次分析法 数模笔记(三):灰色系统分析方法 数模笔记(四):插值与拟合 一.原理 若某项指标的数值差异较大,能明确区分开各被评价对象, ...
- Python数模笔记-Sklearn(2)聚类分析
1.分类的分类 分类的分类?没错,分类也有不同的种类,而且在数学建模.机器学习领域常常被混淆. 首先我们谈谈有监督学习(Supervised learning)和无监督学习(Unsupervised ...
- Python数模笔记-NetworkX(4)最小生成树
1.生成树和最小生成树 1.1 生成树 连通的无圈图称为树,就是不包含循环的回路的连通图. 对于无向连通图,生成树(Spanning tree)是原图的极小连通子图,它包含原图中的所有 n 个顶点,并 ...
- Python数模笔记-NetworkX(2)最短路径
1.最短路径问题的常用算法 最短路径问题是图论研究中的经典算法问题,用于计算图中一个顶点到另一个顶点的最短路径. 欢迎关注 Youcans 原创系列,每周更新数模笔记 Python数模笔记-PuLP库 ...
- Python数模笔记-Sklearn(4)线性回归
1.什么是线性回归? 回归分析(Regression analysis)是一种统计分析方法,研究自变量和因变量之间的定量关系.回归分析不仅包括建立数学模型并估计模型参数,检验数学模型的可信度,也包括利 ...
- Python数模笔记-NetworkX(3)条件最短路径
1.带有条件约束的最短路径问题 最短路径问题是图论中求两个顶点之间的最短路径问题,通常是求最短加权路径. 条件最短路径,指带有约束条件.限制条件的最短路径.例如,顶点约束,包括必经点或禁止点的限制:边 ...
- Python数模笔记-NetworkX(1)图的操作
1.NetworkX 图论与网络工具包 NetworkX 是基于 Python 语言的图论与复杂网络工具包,用于创建.操作和研究复杂网络的结构.动力学和功能. NetworkX 可以以标准和非标准的数 ...
- Python数模笔记-Sklearn (1)介绍
1.SKlearn 是什么 Sklearn(全称 SciKit-Learn),是基于 Python 语言的机器学习工具包. Sklearn 主要用Python编写,建立在 Numpy.Scipy.Pa ...
- Python数模笔记-StatsModels 统计回归(3)模型数据的准备
1.读取数据文件 回归分析问题所用的数据都是保存在数据文件中的,首先就要从数据文件读取数据. 数据文件的格式很多,最常用的是 .csv,.xls 和 .txt 文件,以及 sql 数据库文件的读取 . ...
- Python数模笔记-StatsModels 统计回归(2)线性回归
1.背景知识 1.1 插值.拟合.回归和预测 插值.拟合.回归和预测,都是数学建模中经常提到的概念,而且经常会被混为一谈. 插值,是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数 ...
最新文章
- 容斥 + 爆搜打表 ---- 2020年南京icpc H.Harmonious Rectangle
- Spring 2.5:Spring MVC中的新特性
- hdu2100(大数加)
- WCF 第五章 并发和实例(服务行为)
- mysql什么时候用in,什么时候用exists
- 混合APP开发框架资料汇总
- EDGE X Kubernetes Meetup·杭州站:云原生在边缘的实践与应用
- 出让执行权:Task.Yield, Dispatcher.Yield
- Nginx利用nginx_upstream_check_module检查后端健康情况
- 搜索引擎特征码(转)
- Nginx应用场景之HTTP服务器
- 练打字-测试看图说话(AD安装)
- 程序员——神圣的职业
- Linux下Qt使用QAudio相关类进行音频采集,使用Windows下的Matlab软件播放
- 服务器拷贝数据库文件,服务器怎么拷贝数据库文件
- 破解压缩包密码-两行命令
- 关于买鸡的问题,5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡.现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?
- 如何购买华为服务器+云计算特点
- 电商干货!手淘宝贝关键词排名查询
- 单片机 STM32 HAL IO扩展 PCA9555