学生宿舍分配方案优化
2016-04-22 16:34
211 查看
#Student Dorm Optimization import random import math dorms = ['Zeus','Athena','Hercules','Bacchus','Pluto'] prefs = [('Toby',('Bacchus','Hercules')),('Steve',('Zeus','Pluto')),('Andrea',('Andrea','Zeus')), ('Sarah',('Zeus','Pluto')),('Dave',('Athena','Bacchus')),('Jeff',('Hercules','Pluto')), ('Fred',('Pluto','Athena')),('Suzie',('Bacchus','Hercules')),('Laura',('Bacchus','Hercules')), ('Neil',('Hercules','Athena'))] domain = [(0,(len(dorms)*2)-i-1) for i in range(0,len(dorms)*2)] def printsolution(vec): slots = [] for i in range(len(dorms)):slots+=[i,i] for i in range(len(vec)): x=int(vec[i]) dorm=dorms[slots[x]] print prefs[i][0],dorm del slots[x] def dormcost(vec): cost=0 slots=[0,0,1,1,2,2,3,3,4,4] for i in range(len(vec)): x=int(vec[i]) dorm=dorms[slots[x]] pref=prefs[i][1] if pref[0]==dorm:cost+=0 elif pref[1]==dorm:cost+=1 else:cost+=3 del slots[x] return cost
相关文章推荐
- 2016/04/22 ①文件概述 ② 文件操作
- 首页调取二级、三级栏目
- PopupWindow
- 爬楼梯 js算法
- JQuery前端操作JSON
- apr和aprutil的安装
- codeforces 655D (构造)
- C++004进阶
- CSS,font-family,好看的中文字体
- ASP.NET MVC模板
- vc++调试问题
- python #coding:utf-8和setdefaultencoding有什么区别?
- 解决 repo sync error: Exited sync due to fetch errors
- 关于事务
- 代理传值
- POJ 3220 Jessica's Reading Problem(Two pointers)
- Java 中的堆内存
- JavaScript标准: ES6和ES5
- c#实验7.2:阶乘的异常处理
- Spark使用小结:Java版Join操作