本篇博文为追忆以前写过的算法系列第四篇

温故知新



本篇于2009年发表于百度博客,当时还没接触CSDN。所以是文学和技术博客混淆,只是这个程序博文訪问量突破2000,有不少网友评论互动。应该对非常多人有一定的帮助。

程序介绍了数学建模中经典问题的两种解法,即席位分配问题!

%适用于全部情况 BY Gu
clear all
clc %惯例Q值法分配席位,wy为席位数。ps为人数总和,R为分配方案
wy=19;
P=[103 63 34]
%菜单选项
MENUN=menu('选择方法','惯例Q值法','dhondt法','都用');
%惯例Q值法
if (MENUN==1||MENUN==3)==1
n=size(P,2);
ps=sum(P);
RS=0;
for i=1:n
R(i)=fix(P(i)/ps*wy);
RS=RS+R(i);
end
wy1=wy-RS;
for i=1:wy1
for j=1:n
Q(j,i)=P(j).^2/(R(j)*(R(j)+1));
end
t=Q(1,i);
a=1;
for m=2:n
if Q(m,i)>t
t=Q(m,i);
a=m;
end
end
R(a)=R(a)+1;
end
disp('惯例Q值法席位分配为:')
R
end
%d'hondt法………………………………………………………………………………$$
if (MENUN==2||MENUN==3)==1
zs=P;
n=size(zs,2);
for i=1:n
for j=1:wy
r(i,j)=zs(i)/j;
end
end
t=r(:)';
T=sort(t,'descend');
min=T(wy);
R1=zeros(1,n);
for i=1:n
for j=1:wy
if r(i,j)>min
R1(i)=R1(i)+1;
end
end
end
rest=wy-sum(R1);%剩余席位
%对剩余席位的分配处理
k=0;
for i=1:n
if k>=rest%席位分配完成,结束循环
break;
end
for j=1:wy
if r(i,j)==min
R1(i)=R1(i)+1;
k=k+1;%对剩余席位分配计数
break;
end
end
end
disp ('dhondt法席位分配:')
R1
end

原博文地址:http://hi.baidu.com/gujinjin2008/item/659fdb8a33c37354e73d1931

席位分配问题——惯例Q值法和d'hondt法的MATLAB程序的更多相关文章

  1. 1.1python解决数学建模之席位分配问题

    一:上代码 #比例法def rate_method(p,n):    lst =[] #保存各组席位数    sum_ =sum(p)    #人数和    k =0#临时变量    for i in ...

  2. ARIMA模型识别、计算p、q值

    #-*- coding: utf-8 -*- #确定最佳p.d.q值 import pandas as pd #参数初始化 discfile = '../data/discdata_processed ...

  3. Q值, 电感Q因素, 电感品质因素, Inductor Q, Quality Factor

    Q值基本概念 Q值, 品质因素, Quality Factor 是广泛使用于物理和工程领域的一个参数, 这指的是一个机械或非机械的组件里, 共振(谐振)的能量损失比例, 是衡量一个元件或谐振回路性能的 ...

  4. 电感的Q值

    电感的Q值又称为品质因数,即在通过一定频率信号时,感抗与等效损耗之比.品质因数越高即系统损耗越小效率越高,一般为50`100,最高500左右,再大就会烧毁.一般Q值与很多因素有关:绕线粗细,长度与直径 ...

  5. 关于电容与Q值

    1, 电容模型 电容阻抗可以表示为: 可算得自谐振频率点为: 在该点,容抗与感抗差为0,电容表现出纯电阻性. 2, 阻抗曲线 自谐点是区分电容器呈容性还是感性的分界点.从阻抗曲线看,在自谐点附近阻抗较 ...

  6. 二值法方法综述及matlab程序

    在某些图像处理当中一个关键步是二值法,二值化一方面能够去除冗余信息,另一方面也会使有效信息丢失.所以有效的二值化算法是后续的处理的基础.比如对于想要最大限度的保留下面图的中文字,以便后续的定位处理. ...

  7. Pycharm下运行程序查看每个变量的值的方法(类似于Spyder和MATLAB)

    昨天,用了大量篇幅讲了Spyder的各种问题,之所以要用Spyder,最重要的一个原因就是能够非常方便的查看中间变量的值.类似MATLAB的工作空间,非常方便.如下图所示: 但是Spyder的代码自动 ...

  8. 002.MVC开发方法和步骤--用一个简单的加法程序来演示

    MVC的工作原理: 注:ASP.NET MVC中的url 特殊:构成 http//....../控制器名/方法名 默认: 1.Url请求直接来到Controller中 2.Controller从Mod ...

  9. 强化学习(十)Double DQN (DDQN)

    在强化学习(九)Deep Q-Learning进阶之Nature DQN中,我们讨论了Nature DQN的算法流程,它通过使用两个相同的神经网络,以解决数据样本和网络训练之前的相关性.但是还是有其他 ...

随机推荐

  1. 【bzoj1146】[CTSC2008]网络管理Network 倍增LCA+dfs序+树状数组+主席树

    题目描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构由N个路由器和N-1条高 ...

  2. 利用jQuery无缝滚动插件liMarquee实现图片(链接)和文字(链接)向右无缝滚动(兼容ie7+)

    像新闻类的版块经常要求一条条的新闻滚动出现,要实现这种效果,可以使用jQuery无缝滚动插件liMarquee. 注意: 1. 它的兼容性是IE7+,及现代浏览器. 2. 引用的jquery的版本最好 ...

  3. python 小爬虫

    import reimport urllibdef getHtml(url): page=urllib.urlopen(url); html=page.read() return htmldef ge ...

  4. redux使用需要注意的地方

    1. react和redux没有直接联系,当react需要结合redux使用的时候,需要引入 react-redux ,该插件提供了connet等方法使得react可以注入redux属性. 2. re ...

  5. pat 1074. 宇宙无敌加法器(20)

    1074. 宇宙无敌加法器(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 地球人习惯使用十进制数,并且默 ...

  6. 【CF1015F】Bracket Substring(字符串DP)

    题意:给定一个只由左右括号组成的字符串s,问长度为2*n的包含它的合法括号序列方案数,答案对1e9+7取模 1≤n≤100,1≤|s|≤200 思路:暴力预处理出s的每个前缀[0..i]后加左右括号分 ...

  7. 用dataset做数据源时,让gridview显示的列名与数据库表中的字段名不同

    原文发布时间为:2008-10-27 -- 来源于本人的百度文章 [由搬家工具导入] 确定GridView的AutoGenerateColumns设置为False;使用GridView的“编辑列”,添 ...

  8. 从头实现一个koa框架

    koajs是最流行的nodejs后端框架之一,有很多网站都使用koa进行开发,同时社区也涌现出了一大批基于koa封装的企业级框架.然而,在这些亮眼的成绩背后,作为核心引擎的koa代码库本身,却非常的精 ...

  9. Python 文本(txt) 转换成 EXCEL(xls)

    #!/bin/env python # -*- encoding: utf-8 -*- #------------------------------------------------------- ...

  10. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom-强连通分量(Tarjan)

    本来分好组之后,就确定好了每个人要学什么,我去学数据结构啊. 因为前一段时间遇到一道题是用Lca写的,不会,就去学. 然后发现Lca分为在线算法和离线算法,在线算法有含RMQ的ST算法,前面的博客也写 ...