背景故事
事情就是这样。我住在三口之家,我们中的老大已经厌倦了一个人做所有的家务。我们尝试为任务制定不同的时间表,但总是会出现问题,因为我们中的一个人不在家,家务活没有完成,或者有人觉得他们比其他人做的工作更多,导致怨恨和不愿意完成家务活。
问题
人类会犯错,但计算机程序是万无一失的,对吧?这个想法是,可以使用计算机程序公平地分配要完成的家务,这样没有人会觉得他或她正在做更多的工作。我正在尝试提出一种算法来分配符合这些标准的家务:
- 从长远来看,它应该以大约 1/3 的概率平均分配家务。
- 它应该返回一个有序的人员列表,所以如果第一个不可用,第二个可以完成它。
- 它应该避免在同一天为每个人安排多项家务。
- 它应该避免连续多次将相同的家务安排给同一个人。
- 它应该是容忍偏差的。如果安排的人没有做家务,只要反馈实际做家务的人,它应该仍然是公平的。
- 它应该以不同的频率处理不同的家务(你需要每天洗碗,但每周只打扫一次浴室,......)
我的问题是:实现此算法的最佳/最酷/最公平的方法是什么? (非常可笑的过于复杂的解决方案受到赞赏:D)
我尝试了什么?
我认为实现这种算法的一种简单方法是为不同的标准定义一个成本表,然后只使用加权随机数来选择这个人,但我认为这从长远来看是不公平的(它确实必须限制每人 1/3,否则将不被接受:))。