看书有这样一个问题,某互联网公司今天需要加班,需要编写一个500行的程序代码,产品经理找了三个程序员来完成。按照完成量发奖金:1号普通程序员独立能写100行,2号大神程序员独立能写125行,3号美女程序员能写50行。但如果程序员两两合作,会产生不同的编码效率:1号和2号合作能写270行,2号与3号合作能写350行,1号与3号合作能写375行。当然,三名程序员共同合作能完成500行。若共有1000元项目奖金,该如何给这三名程序员分配呢?

下面,我们尝试用Shapley值经行计算。首先,计算可能的联盟数量。显然,三个人的联盟形成方法一共有6种:

(1)1号邀请2号加入组成S联盟,3号加入S联盟;

(2)1号邀请3号加入组成S联盟,2号加入S联盟;

(3)2号邀请1号加入组成S联盟,3号加入S联盟;

(4)2号邀请3号加入组成S联盟,1号加入S联盟;

(5)3号邀请1号加入组成S联盟,2号加入S联盟;

(6)3号邀请2号加入组成S联盟,1号加入S联盟;

按照Shapley值的计算过程,下一步需要计算每位程序员的边际贡献,

1号普通程序员的Shapley值为:(100 + 100 + 145 + 150 + 325 + 150 )/ 6 = 970 / 6

2号大神程序员的Shapley值为:(170 + 125 + 125 + 125 + 125 + 300 )  / 6  =  970 / 6

3号美女程序员的Shapley值为:(230 + 275 + 230 + 225 + 50  +  50 )/  6 =  1060 /  6

三人的Shapley值的总和正好等于500。   所以根据Shapley值,1号普通程序员应该获得奖金为:1000 x 0.3233 = 323.3元,2号大神程序员应该获得奖金同样为323.3元,3号美女程序员获得奖金为353.3元。

Shapley值的一个应用的更多相关文章

  1. Sql中联合查询中的”子查询返回的值不止一个“的问题

    在子查询中,如果想实现如下的功能: select lib,count(*),select sum(newsNo) from Table1 group by lib from Tabel1 T1,Tab ...

  2. SQL server 查询出现:---“子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析---

    最近用select进行数据筛选,碰到下面的这个错误: ---子查询返回的值不止一个.当子查询跟随在 =.!=.<.<=.>.>= 之后,或子查询用作表达式时,这种情况是不允许的 ...

  3. props default 数组/对象的默认值应当由一个工厂函数返回

    export default {props: { slides:{ type:Array, default:[] } },这是我的代码 报错是Invalid default value for pro ...

  4. “子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析

    为了实现下述代码,首先得有数据库和相应的表格,本文用的是https://blog.csdn.net/qaz13177_58_/article/details/5575711/中的案例,即先用链接中那些 ...

  5. Invalid default value for prop "value": Props with type Object/Array must use a factory function to return the default value.(props default 数组/对象的默认值应当由一个工厂函数返回)

    Invalid default value for prop "value": Props with type Object/Array must use a factory fu ...

  6. ES _all、_source的使用——_all字段连接所有字段的值构成一个用空格(space)分隔的大string而被analyzed和index,document主体保存在_source中

    1._all 1.1_all field _all字段是一个很少用到的字段,它连接所有字段的值构成一个用空格(space)分隔的大string,该string被analyzed和index,但是不被s ...

  7. 关于props default 数组/对象的默认值应当由一个工厂函数返回

    export default {props: { xAxisData: {   type: Array,   default: [] }, },这是我的代码 报错是Invalid default va ...

  8. insert into select 引起的 "子查询返回的值不止一个。当子查询跟随在**之后,或子查询用作表达式时,这种情况是不允许的"

    目录 1.事故现场 1.1 在使用 Insert into Table2 select * from Table1 将表1的数据插入到表2时,报错如下: 1.2 sql 语句 2.推测 3.解决方案 ...

  9. 通过反射将一个java对象的属性值转换为一个Map

    将一个java对象的属性值转换为一个Map: import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.P ...

随机推荐

  1. Oracle使用笔记(二)

    一.表空间 1.创建表空间 create tablespace db_test --表空间名 datafile 'D:\oracle\product\11.2.0\dbhome_1\oradata\o ...

  2. mvn package出现No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK

    配置java环境变量时偷懒,没有定义%JAVA_HOME%,应该先定义这个变量,然后在path中新建%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin

  3. msm8909平台JEITA配置和bat-V therm表合入

    8909平台的冷热充电温度点是硬件控制的,不能软件控制,目前硬件设置的是0~55度的充电区间. 软件上应该设置的是BTM comparator threshold, 70%(cold)~35%(hot ...

  4. java Scanner中next和nextLine()区别

    next(): 1.一定要读取到有效字符后才可以结束输入. 2.对输入有效字符之前遇到的空白,next() 方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符. ne ...

  5. MVC 模式

    1.MVC 模式简介 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式.这种模式用于应用程序的分层开发.Model(模型):模型代表一个存取数据的对象或 JAV ...

  6. 使用golang 编写postgresql 扩展

      postgresql 的扩展可以帮助我们做好多强大的事情,支持的开发语言有lua.perl.java.js.c 社区有人开发了一个可以基于golang开发pg 扩展的项目,使用起来很方便,同时为我 ...

  7. Vue-项目之免费课和购物车实现

    调整首页细节 固定头部 App.vue中代码 <style> body{ padding: 0; margin:0; margin-top: 80px; } </style> ...

  8. Eslint 能自动格式化代码,为什么还要用 Prettier?

    ESLint 与 Prettier 区别: ESLint:代码检测工具:可以检测出你代码中潜在的问题,比如使用了某个变量却忘记了定义: Prettier:代码格式化工具:作为代码格式化工具,能够统一你 ...

  9. C#中Button.DialogResult属性

    窗体中的某个按钮,如果设置了DialogResult(不是设置为None),当窗体是通过ShowDialog方法显示的时候 则不必设置任何响应函数,单击按钮也可窗体.然后,该窗体的DialogResu ...

  10. Python——python读取xml实战,作业6(python programming)

    cd_catalog.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Edited ...