資源描述:
《公平的席位分配(MATLAB程序)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、席位分配問題的MATLAB程序說明:1.本程序用三種方法,分別是慣例法、d’honht分配法和Q值法。2.可以模擬出任意一種分配情況,即可以推廣到N種情形。3.三種分配方案供你選擇,相互比較。4.請務(wù)必閱讀注意事項。注意:1.以下包含兩個程序,下載完后把程序拷貝到matlab的M文件中,2.第一個程序可以任意命名,只要符合規(guī)范就可以(本人以”xiweifenpei”命名,這樣便于查看),第二個程序一定要命名為“xiwei”,因為程序中要用到函數(shù)。3.下載完后先把程序拷貝到txt文件中,再從txt拷貝到M文件中,這樣可以避免亂碼。程序一:clearallclcdis
2、p('席位分配:')P=1000p=[235333432]N=10[x,y]=size(p);zu=x*y;disp('慣例分配方法:')fori=1:zun(i)=p(i)*N/P;endn;m=n-fix(n);fori=1:zuifn(i)==max(m)+fix(n(i))n(i)=fix(n(i))+1;elsen(i)=fix(n(i));endenddisp('慣例分配人數(shù):')ndisp('d’honht方法:')pp=[];fori=1:Npi=p/i;pp=[pp;pi];endppm=zeros(1,zu);fori=1:N[x,y]=fin
3、d(pp==max(pp(:)));pp(x,y)=0;m(y)=m(y)+1;endppdisp('d’honht分配人數(shù):')mdisp('Q值法分配方法:')q=ones(1,zu);Q=[];p;fori=1:zuQ(i)=p(i)*p(i)/(q(i)*(q(i)+1));endQ;xiwei(p,q,Q,N,zu)程序二:再次提醒,以“xiwei”為文件名保存,functionxiwei(p,q,Q,N,zu)ifsum(q)==Ndisp('Q值法分配人數(shù):')qreturn;elsefori=1:zuifQ(i)==max(Q)q(i)=q(i)+
4、1;Q(i)=p(i)*p(i)/(q(i)*(q(i)+1));break;endendendxiwei(p,q,Q,N,zu)