雇佣问题(python)
雇佣问题即算法导论第四版中的第五章
思想如下
- 随机生成一个大小为50的数组peoples表示有50个人来面试,且数组的值都不相同代表各自的rank;
- 面试费用一个20,录用费用一个40,面试完后总费用cost;
- 实验50次,每次的费用使用cost_list.append(cost)存储到cost_list列表中;
- 最后做出图像看看是否有规律。
代码如下(python实现)
# _*_coding:utf-8_*_
import pylab as pl
import random
assist = 0
cost = 0
cost_list = []
for tr in range(50):
peoples = random.sample(range(50), 50)
for people in peoples:
cost += 20
if assist < people:
assist = people
cost += 40
print assist,
print
cost_list.append(cost)
cost = 0
assist = 0
min_cost = cost_list[0]
max_cost = cost_list[0]
list_y = range(1, 51)
print min(cost_list), max(cost_list)
pl.plot(list_y, cost_list, 'r')
pl.xlim(0.0, 50)
pl.show()
结果如图