本文转自:https://blog.codingnow.com/2012/12/share_rent.html

今天读到策划同学的周报中提到的一个关于合租房子的分摊房租问题。

引用周报中的一节如下:

周在搬家,和喵、刘阳一起租房子住,遇到一个问题,就是分摊房租。中式的解决方法一般都是商量一下,但具体怎么商量,没有手段,总之就是大家估摸一下,觉得大略上说的过去就OK了。很少有拉下面子认真谈价格的,即使心里其实觉得并不认可。

在这方面,美国人还真能想一些办法,这是一个旅美的留学生在博客上写的,他和老美同学的商议方式: 两个人A,B合租一个二居的房子,比如每个月是1500美元,因为主卧和次卧有大有小,价格肯定是不均的,那么两个人分别写两个价格,也就是对主卧和次卧的心理价格。可以很极端,比如1400:100,但总额必须是1500,因为这是A,B必须接受的大条件,然后公开,除掉开价完全相当的情况,两间卧室必然各有一个出价最高的人,价高者入住,而月租则是A,B对这个卧室开价的均值。例如A出价是900:600,B出价是1000:500,那么A住次卧,价格为550,B住主卧,价格为950。两个人都得到了自己认可的房子,而价格还低于自己的预期。

这一方案还有一个优势,就是双方都无法通过恶意的叫价来损害对方,获得利益。相信很多同学会提出一个更直接的解决方案:一个人提价格方案,另一个人选择。但是这一方案也有点问题,提价格的人相对是吃亏的,对吧?

遗憾的是,这种做法,似乎无法推广到三个人的情况。


我觉得这个问题很有趣,晚上想了一下,其实是可以推广到三人甚至更多人的。

先说这个原始策略为什么让双方都感觉合理:

从经济学角度看,每个人都希望别人多分摊一些房租。你对一个房间了价值有一个评估,如果别人高于这个价格租下这个房间,对你就是有利的。原始方案正是如此,让双方都觉得最终方案对自己有利。我们基于这个基础来推广这个方案就可以了。

首先, 两个人对两间房间的分配策略,原始策略已经做的很好了。我们要做的仅仅是把三个人分三间房划简到两个人分两间房的问题。(其中不考虑竞价相同的问题。原始方案也没给出解决方案,可以重新来一次,也可以投骰子等。)

对三人策略,我的方案是: 三个人分别写下自己想要哪一间房间,并想对这个房间出多少价。

结果有三种 :

  1. 三个人对同一个房间竞价。这种情况比较好解决,我们直接让出价最少的人出局。然后出价最高的人得到这间房间,其价格是前两个价位的平均值。 接下来的问题就回到了两个人选两个房间的问题了。

  2. 有两个人对同一个房间竞价,另一个人选了别的房间。这种情况也好解决,直接让选相同房间的两人中价高者得,价格是两者平均值。

  3. 三个人各选了不同的房间。这种情况不太好处理,下面仔细分析。

假设 甲 选了 1 号房间,给出了价格 A ;乙选了 2 号房间,给出了价格 B ; 丙选了 3 号房间,给出了价格 C 。

我们先去掉 A B C 中绝对值最小值, 比如是 C 。 保留 1 号房间的 A 报价和 2 号房间的 B 报价。

其实可以这样看:甲和乙一起倾向于用 A+B 的价格租 1 2 号房间。那么他们集体对 3 号房间的估价是总价 - A - B 。

有很少的情况, 这个估价会变成负数。如果碰到了, 我认为可以简单的认为是甲和乙对 3 号房间的估价为 0 。

之后,就可以按均价原则定出 3 号房间的价格为 C 与 (总价 - A -B) 的平均值,并以这个价格租给 C 。

剩下的又变成了两个人分配两间房的问题了。 :)


补充:有同学认为,如果 A+B+C 低于总价的时候,case 3 会使得 C 最终价格超过他的预期,不太合理。

我认为这是合理的。因为大家可能都想用高价得到好的房间;也可能由于经济原因,希望尽量少分摊房租而倾向住不那么好的房间。

当 A+B+C 低于总价的情况发生时,往往是后一种情形。(否则,多数人会出高于均价的价格)

当所有人都出低价的时,出最低价的人应该承担略高的价位,这是你在出很低价格的时候要考虑的后果。也就是恶意出不合理的价格,伤害的是自己而不是别人。

<转>房租分配问题的更多相关文章

  1. 分配问题与Hungarian算法

    分配问题与Hungarian算法 分配问题 指派问题 匈牙利算法 匈牙利方法是一种能够在多项式时间内解决分配问题(assignment problem)的组合优化算法.它由Harold Kuhn 与1 ...

  2. 关于const和define的内存分配问题的总结

    关于const和define的内存分配问题 const与#define宏定义的区别----C语言深度剖析 1,  const定义的只读变量在程序运行过程中只有一份拷贝(因为它是全局的只读变量,存放在静 ...

  3. 【Uvalive 2531】 The K-League (最大流-类似公平分配问题)

    [题意] 有n个队伍进行比赛,每场比赛,恰好有一支队伍取胜.一支队伍败.每个队伍需要打的比赛场数相同,给你每个队伍目前已经赢得场数和输得场数,再给你一个矩阵,第 i 行第 j 列 表示队伍 i 和队伍 ...

  4. mmc生产任务分配问题

    mmc生产任务分配问题,本题目简单.

  5. dp资源分配问题

    noip考试中dp中的资源分配问题是一大重点(不定时更新) 以下是一些例题 1.乘积最大 //Gang #include<iostream> #include<cstring> ...

  6. 洛谷P4014 分配问题【最小/大费用流】题解+AC代码

    洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...

  7. [20181229]关于字符串的分配问题.txt

    [20181229]关于字符串的分配问题.txt --//链接:http://www.itpub.net/thread-2107534-1-1.html提到的问题,里面一段英文读起来很绕口:--//百 ...

  8. 记一次ElasticSearch重启之后shard未分配问题的解决

    记一次ElasticSearch重启之后shard未分配问题的解决 环境 ElasticSearch6.3.2,三节点集群 Ubuntu16.04 一个名为user的索引,索引配置为:3 primar ...

  9. Libre 6012 「网络流 24 题」分配问题 (网络流,费用流)

    Libre 6012 「网络流 24 题」分配问题 (网络流,费用流) Description 有n件工作要分配给n个人做.第i个人做第j件工作产生的效益为\(c_{ij}\).试设计一个将n件工作分 ...

随机推荐

  1. 小丸工具箱FAQ

    下载地址:https://maruko.appinn.me/index.html 本文章是把一些使用小丸工具箱中常见的操作失误或出错的问题集中写出并提出解决方法,以便大家寻找解决并避免重复提问. 文章 ...

  2. js获取精确的元素宽高(普通获取高度会有误差)

    当js获取元素宽高时, 并不是一个精确的数字,如果想获取真正的宽高大致方法如下 var oStyle = obj.currentStyle ? obj.currentStyle : window.ge ...

  3. Oracle分区表删除分区数据时导致索引失效解决

    https://blog.csdn.net/e_wsq/article/details/80896258

  4. python全栈开发day24-__new__、__del__、item系列、异常处理

    一.昨日内容回顾 1.反射 用字符串类型的名字,操作命名空间的变量. 反射使用场景:明显的简化代码,能拿到的变量名本来就是一个字符串类型的时候, 用户输入的,文件读入的,网上传输的 2.__call_ ...

  5. ubuntu16.04下搜狗输入法异常

    问题描述: 搜狗输入法出现异常, 提示: 删除 .config/Sougou-PY 文件后重启 解决方案: google后发现,搜狗拼音输入法使用 fcitx 框架. 发现系统同时安装了ibus框架 ...

  6. Maven启动代理访问

    1.说明 如果你的公司正在建立一个防火墙,并使用HTTP代理服务器来阻止用户直接连接到互联网.如果您使用代理,Maven将无法下载任何依赖. 为了使它工作,你必须声明在 Maven 的配置文件中设置代 ...

  7. 神舟战神 HotKey 主面板无法打开? Fn+Esc失效?

    战神笔记本的 Fn+Esc快捷键是打开 HotKey 主面板的, 其实就是  Control Center Windows更新可能导致 Control Center 无法打开,解决办法就是   更新驱 ...

  8. ubuntu18.04 lts重装VMware Tools实现主机文件共享等功能

    ubuntu18.04 lts重装VMware Tools实现主机文件共享等功能 在VMWare 14.x上安装ubunuu18.04 lts后发现,可以实现全屏显示,但是没有与主机共享文件的功能,然 ...

  9. 使用js生成二维码和条形码

    1.生成二维码 使用github开源项目qrcode. 1.引入方式一(js cdn引入): ①.引入qrcode cdn: 自行下载..没有合适的cdn,地址 <script src=&quo ...

  10. 如何成为java高手

    成为Java高手是每个Java学习者的梦想,但目前Java知识分支众多,我们该如何学习?本文介绍成为Java高手需要注意的25个学习目标,希望对正在成为Java高手的您有所帮助. 1.你需要精通面向对 ...