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

温故知新



本篇于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. Python的高阶函数小结

    一. 高阶函数定义 简而言之,Python的高阶函数就是指一个函数作为参数传递给另外一个函数的用法. 举一个最简单的高阶函数来说明: >>> def add(x,y,f): retu ...

  2. Ubuntu下建立Pycharm快捷方式

    修改 Exec, Icon 路径,将文件保存 pycharm.desktop,拖到unity侧边栏 [Desktop Entry]Categories=Development;Comment[zh_C ...

  3. TOJ 4105 Lines Counting(离线树状数组)

    4105.   Lines Counting Time Limit: 2.0 Seconds   Memory Limit: 150000K Total Runs: 152   Accepted Ru ...

  4. 几种API接口

    实用号码归属地查询(IP 地址,手机号码): 默认格式: http://api.liqwei.com/location/ (使用来访者的 IP 地址) 指定 IP 地址格式: http://api.l ...

  5. 【HDU 1686 Oulipo】

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  6. 【转】手摸手,带你用vue撸后台 系列一

    前言 说好的教程终于来了,第一篇文章主要来说一说在开始写业务代码前的一些准备工作吧,但这里不会教你webpack的基础配置,热更新怎么做,webpack速度优化等等,有需求的请自行google. 目录 ...

  7. HTML 对空行和空格进行控制

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. 负载平衡(cogs 741)

    «问题描述:G 公司有n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使n 个仓库的库存数量相同.搬运货物时,只能在相邻的仓库之间搬运.«编程任务:对于给定的n 个环 ...

  9. pat 团体天梯 L1-046. 整除光棍

    L1-046. 整除光棍 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 翁恺 这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1 ...

  10. c++基础(一)

    c++中静态内存分配与动态内存分配:1.静态对象是有名字的变量, 我们直接对其进行操作 ,而动态对象是没有名字的变量我们通过指针间接地对它进行操作.(静态内存分配是因为在源码编译的时候,编译器就为变量 ...