公平的席位分配(MATLAB程序)
席位分配问题的MATLAB程序
说明:
本程序用三种方法,分别是惯例法、d’honht分配法和Q值法。
可以模拟出任意一种分配情况,即可以推广到N种情形。
三种分配方案供你选择,相互比较。
请务必阅读注意事项。
注意:
以下包含两个程序,下载完后把程序拷贝到matlab的M文件中,
第一个程序可以任意命名,只要符合规范就可以(本人以”xiweifenpei”命名,这样便于查看),第二个程序一定要命名为“xiwei”,因为程序中要用到函数。
下载完后先把程序拷贝到txt文件中,再从txt拷贝到M文件中,这样可以避免乱码。
程序一:
clear all
clc
disp('席位分配:')
P=1000
p=[235 333 432]
N=10
[x,y]=size(p);
zu=x*y;
disp('惯例分配方法:')
for i = 1:zu
n(i) =p(i)*N/P;
end
n;
m=n-fix(n);
for i=1:zu
if n(i)==max(m)+fix(n(i))
n(i)=fix(n(i))+1;
else
n(i)=fix(n(i));