返回列表 发帖

[历史] 关于拖号分组方法与相应成本的计算(二期整理完毕)

前言:



关于如何拖号最省钱省时间,这是一个由来已久的话题
这两天就这个问题进行了简单的计算,得到了一些理论上的结果

本文方法预计可以应用于
多人合伙雇队伍拖号(很可能时间不统一,所以考虑和帐号共用的人合伙)
代练拖号规划等领域


欢迎有需要的朋友看看,如有错误还请斧正
在此声明,这是一个比较个性化的东西,在一些方面不具有普遍适用性,还请按需使用
本文比较了使用高书的情况,将各种分组拖号方法穷举,并求出最优分组方法及其决定因素A
(所有人同时使用经验鞋、小经或经验戒指的时候只是效率系数有区别最后都会约掉)

文中关键定义:A,成本倍数(可使用CTRL+F查找)

不考虑拖号中死亡情况(可以通过增加单位时间书外消耗C实现)
在单位时间总效率及单位时间书以外的消耗与队中人数无关的情况下,
得到了最优分组方法由且只由A值决定的结果
并给出了各种比值与总人数下最优分组方法的列表(总被拖人数2-25人,列表在1楼)



在这里请注意比较所需要的同质性
简单来说就是1拖1与1拖N或者其他组合比较时,
需要以相同平均效率,相同打法,单位时间拖人者及辅助总消耗相同等
这种情况下才有不同组合方式间比较的意义
而对每个被拖的号而言,需要有相同的需拖总经验,相同的经验加成效果


另外讨论了
全体被拖人中有1人经验增幅高于其他人的情况下的分组方法,如经验戒指郁金香等(不可交易)
每个被拖组中有1人经验增幅高于其他人的情况下的分组方法,如经验鞋(可交易)
以及队中有多名打手的情况下的分组方法

本文不能解决的问题:
效率或消耗随组队人数增加的情况(即指被拖人数增加能导致增加的情况)
如拳圣拖人


再有,扯到成本自然就关系到钱和时间,希望大家玩游戏还是能以娱乐为主要目的
愿意代练的就让他们练去吧...
陆续更新





正文:


假设打手是不需要经验的
首先考虑1名打手的情况,即队中有打手1名与被拖的号数名
(与之相反的是如SP拳等,多名打手同在队中等类似的情况)

定义:N,X,Exp,E,T,C,B,A

N为计划中被拖总人数
X为小组中被拖人数(所有X的和为N)
Exp为单人需要被拖的总经验
E为全队高经每小时总效率
T为小组完成所需时间(假设需要经验相同,故同组成员同时完成)
C为每小时或者说每两本书时间内所有经验书以外的消耗(料理,药,翅膀,石头,工资,旅馆费用等)
B为每小时或者说每两本书时间单人经验书成本
A=C/B



公式:

                               Exp
小组完成所需时间T=------------
                             E/(X+1)
               

各人成本(由于被拖总人数N固定,故各人成本最小即总成本最小)
=小组总成本/被拖人数
=小组时间*(单位时间书外消耗+被拖人数*单位时间书消耗)/被拖人数
=T*(C+XB )/X


在此给出一例
N=6
每人需要经验5E
打手总效率吃高经后1E每小时
C=18
B=1.5

1拖1(2人组队,被拖者开书后效率为0.5E每小时),全部完成需重复6次
每人成本(18+1.5)*5/0.5=195

1拖6(6人组队,每位被拖者开书后效率为1/7E每小时),
每人成本(18+1.5*6)*5/(1/7)/6=157.5

1拖3(4人组队,每位被拖者开书后效率为1/4E每小时),全部完成共需2队
每人成本(18+1.5*3)*5/(1/4)/3=150

差距之巨大由此可见
由于N固定之后,总成本与各人成本成正比
所以总成本最低即各人成本最低





第一部分:1拖1与1拖N比较
首先考虑到组队人数限制,设定大前提(1<=N<=11,N为整数)
第一种情况,1拖1重复N次
总成本(B+C)*N*Exp/(E/2)
第二种情况,1同时拖N
总成本(NB+C)*N*Exp/(E/(N+1))

可见
总时间相比,1拖N花费时间为1拖1的(N+1)/2N倍,也就是1/2强点
拖得越多越接近1/2即越省时间,而相对肯定也越费书
书的消耗,1拖N花费为1拖1的(N+1)/2倍

在固定的Exp与E下,Exp/(E/2)为常数,考虑变量部分
1拖1,N次的总成本为(B+C)*N
1拖N,总成本为B*N*(N+1)/2+C*(N+1)/2

用括号内文字表示拖的方法相应成本
若N*(1拖1)<=(1拖N)
则B+C<=(N+1)B/2+(N+1)C/2N
即B+C<=BN+C/N
C/B<=N
由前面设A=C/B,为单位时间书以外的消耗与单位时间书成本的比值
即若只在1拖N与1拖1中选择,只需要将A值与N比较
若比N小则1拖1成本更低



A的定义:单位时间书以外的消耗与单位时间书成本的比值
由此我们可以看到A=C/B是一个决定分组方法的重要数值,(A为有理数,以下继续沿用)
而效率与需要的经验取得一个具体定指时,并不能影响分组方法
这里要注意的是A的计算中
C需要计算全体人员的费用并非输出号本身(自己的时间也是成本啊)
B为1小时或者说2本书时间消耗的经验书价格(B为常数)


由此可定义用于比较成本的成本倍数
成本倍数=总成本/常数
其中,常数=B*Exp/(E/2)为普通1拖1完成时的经验书成本




若忽略安全性因素,则要拖的总经验和拖法选择是没有关系的,当然可能比较理想化
实际上安全性方面1拖N时往往要死一起死(其实1拖1也未必就不死)
算作都站同一格,那么被怪看到的几率应该是一样的,
计算时间
1拖1是N;1拖N是(N+1)/2
每次被怪看到后死亡总次数
1拖1是1;1拖N是N
分别相乘
当N>1时总有,总死亡数N<N*(N+1)/2
即1拖N死亡次数要多
死亡在一些简单地图还是可以设法避免的
避免的条件就是增加人工成本C


[ 本帖最后由 flydreamcyx 于 2009-12-6 12:46 编辑 ]

第二部分:最优分组方式列表
确定被拖总人数后穷举分组方法,再去掉一些不需计算就可以比较出大小的分组方式
就得到理论上关于A=C/B的最优分组方法法表
A为有理数,N为正整数

行:被拖总人数
列:1拖N组合出现(因为A的范围比较零散所以以组合出现为列)
这里“出现”即指,将总被拖人数分成若干组时,被拖人最多的组内被拖人数


使用方法:
先确定被拖总人数找到相应行
计算A的值,在该行取值表中找出相应位置
然后在下面方法表找出对应分组方法
成本倍数计算也在下面给出,这个倍数再乘以常数=B*Exp/(E/2)即为总成本




对应A=C/B取值范围表
1  2  3  4  5  6  7  8  9  10  11    1                          2  A<2  2<A                      3  A<2  2<A<4  4<A                    4  A<2  2<A<8    8<A                  5  A<2  2<A<4  4<A<12    12<A                6  A<2  2<A<6  6<A<18      18<A              7  A<2  2<A<4  4<A<8  8<A<24      24<A            8  A<2  2<A<6  6<A<10  10<A<32        32<A          9  A<2  2<A<4  4<A<6或6<A<14    14<A<40        40<A        10  A<2  2<A<6  6<A<8  8<A<16  16<A<50          50<A      11  A<2  2<A<4  4<A<6或6<A<10  10<A<20    20<A<60          60<A    12  A<2  2<A<6  6<A<12  12<A<24    24<A              13  A<2  2<A<4  4<A<6或6<A<8  8<A<14  14<A<28    28<A            14  A<2  2<A<6  6<A<10  10<A<16  16<A<32    32<A            15  A<2  2<A<4  4<A<6或6<A<12  12<A<18  18<A<38      38<A          16  A<2  2<A<6  6<A<8  8<A<12或12<A<22    22<A<42    42<A          17  A<2  2<A<4  4<A<6或6<A<10  10<A<14  14<A<24  24<A<48      48<A        18  A<2  2<A<6  6<A<12  12<A<16  16<A<26  26<A<54      54<A        19  A<2  2<A<4  4<A<6或6<A<8  8<A<12或12<A<18  18<A<30    30<A<60      60<A      20  A<2  2<A<6  6<A<10  10<A<12或12<A<20  20<A<34    34<A<66      66<A      21  A<2  2<A<4  4<A<6或6<A<12  12<A<14  14<A<24  24<A<34  34<A<74        74<A    22  A<2  2<A<6  6<A<8  8<A<12或12<A<16  16<A<24  24<A<40    40<A<80      80<A    23  A<2  2<A<4  4<A<6或6<A<10  10<A<12或12<A<18  18<A<26  26<A<44    44<A          24  A<2  2<A<6  6<A<12  12<A<20  20<A<28  28<A<48    48<A          25  A<2  2<A<4  4<A<6或6<A<8  8<A<12或12<A<14  14<A<20或20<A<32    32<A<52    52<A





分组方法表
例:
1*2即表示1拖1进行2次
2*3+1表示1拖2进行3次,1拖1进行1次
3+2*2表示1拖3进行1次,1拖2进行2次

1  2  3  4  5  6  7  8  9  10  11    1  1*1                        2  1*2  2*1                      3  1*3  2+1  3*1                    4  1*4  2*2    4*1                  5  1*5  2*2+1  3+2    5*1                6  1*6  2*3  3*2      6*1              7  1*7  2*3+1  3+2*2  4+3      7*1            8  1*8  2*4  3*2+2  4*2        8*1          9  1*9  2*4+1  3+2*3或3*3    5+4        9*1        10  1*10  2*5  3*2+2*2  4+3*2  5*2          10*1      11  1*11  2*5+1  3+2*4或3*3+2  4*2+3    6+5          11*1    12  1*12  2*6  3*4  4*3    6*2              13  1*13  2*6+1  3+2*5或3*3+2*2  4+3*3  5+4*2    7+6            14  1*14  2*7  3*4+2  4*2+3*2  5*2+4    7*2            15  1*15  2*7+1  3+2*6或3*5  4*3+3  5*3      8+7          16  1*16  2*8  3*4+2*2  4+3*4或4*4    6+5*2    8*2          17  1*17  2*8+1  3+2*7或3*5+2  4*2+3*3  5+4*3  6*2+5      9+8        18  1*18  2*9  3*6  4*3+3*2  5*2+4*2  6*3      9*2        19  1*19  2*9+1  3+2*8或3*5+2*2  4+3*5或4*4+3  5*3+4    7+6*2      10+9      20  1*20  2*10  3*6+2  4*2+3*4或4*5  5*4    7*2+6      10*2      21  1*21  2*10+1  3+2*9或3*7  4*3+3*3  5+4*4  6+5*3  7*3        11+10    22  1*22  2*11  3*6+2*2  4+3*6或4*4+3*2  5*2+4*3  6*2+5*2    8+7*2      11*2    23  1*23  2*11+1  3+2*10或3*7+2  4*2+3*5或4*5+3  5*3+4*2  6*3+5    8*2+7          24  1*24  2*12  3*8  4*6  5*4+4  6*4    8*3          25  1*25  2*12+1  3+2*11或3*7+2*2  4+3*7或4*4+3*3  5+4*5或5*5    7+6*3    9+8*2

观察可以发现分组中没有各组被拖人数相差超过1人的情况
这并非偶然,可以通过A取值表的自恰性证明




成本倍数表,A=C/B
1  2  3  4  5  6  7  8  9  10  11    1  1+A                        2  2+2A  3+1.5A                      3  3+3A  4+2.5A  6+2A                    4  4+4A  6+3A    10+2.5A                  5  5+5A  7+4A  9+3.5A    15+3A                6  6+6A  9+4.5A  12+4A      21+3.5A              7  7+7A  10+5.5A  12+5A  16+4.5A      28+4A            8  8+8A  12+6A  15+5.5A  20+5A        36+4.5A          9  9+9A  13+7A  15+6.5A或18+6A    25+5.5A        45+5A        10  10+10A  15+7.5A  18+7A  22+6.5A  30+6A          55+5.5A      11  11+11A  16+8.5A  18+8A或21+7.5A  26+7A    36+6.5A          66+6A    12  12+12A  18+9A  24+8A  30+7.5A    42+7A              13  13+13A  19+10A  21+9.5A或24+9A  28+8.5A  35+8A    36+6.5A            14  14+14A  21+10.5A  27+9.5A  32+9A  40+8.5A    42+7A            15  15+15A  22+11.5A  24+11A或30+10A  36+9.5A  45+9A      64+8.5A          16  16+16A  24+12A  30+11A  34+10.5A或40+10A    51+9.5A    72+9A          17  17+17A  25+10A  27+12.5A或33+11.5A  38+11A  45+10.5A  57+10A      81+9.5A        18  18+18A  27+13.5A  36+12A  42+11.5A  50+11A  63+11.5A      90+10A        19  19+19A  28+14.5A  30+14A或36+13A  40+12.5A或46+12A  55+11.5A    70+11A      100+11.5A      20  20+20A  30+15A  39+13.5A  44+13A或50+12.5A  60+12A    77+11.5A      110+11A      21  21+21A  31+16A  33+15.5A或42+14A  48+13.5A  55+13A  67+12.5A  84+12A        121+11.5A    22  22+22A  33+16.5A  42+15A  46+14.5A或52+14A  60+13.5A  72+13A    92+12.A      132+12A    23  23+23A  34+17.5A  36+17A或45+15.5A  50+15A或56+14.5A  65+14A  78+13.5A    100+13A          24  24+24A  36+18A  48+16A  60+15A  70+14.5A  84+14A    108+13.5A          25  25+25A  37+19A  39+17.5A或48+17A  52+16.5A或58+16A  65+15.5A或75+15A    91+14.5A    117+14A


[ 本帖最后由 flydreamcyx 于 2009-12-5 18:44 编辑 ]

TOP

第三部分:关于其他情况的一些讨论

先写结果吧
经计算
所有人中有1人持有经验戒指时,将所有人按照上面正常分组,经验戒持有人分至人最多的一个小队即可达到总成本最低

只有1双经验鞋的情况下,将所有人正常分组,经验鞋持有号先被拖完,
再把鞋交给本组中任意一人,剩下组中人继续被拖,可达到总成本最低

队伍中有多名打手的情况
若打手人数为M,需要注意的是单组被拖人数最多为12-M
这时应计算A*M的值,将此作为A值代入2楼表中,得到的分组方法即为最优分组方法

[ 本帖最后由 flydreamcyx 于 2009-12-13 12:34 编辑 ]

TOP

就算米糕区也会有螳螂的威胁,太理想化不好。

[ 本帖最后由 君寻 于 2009-11-28 11:28 编辑 ]

TOP

死亡在一些简单地图还是可以想办法避免的
避免的条件就是增加人工成本C

如有错误还望斧正

[ 本帖最后由 flydreamcyx 于 2009-11-28 12:50 编辑 ]

TOP

随便想想就能明白这是一条曲线
不计算时间成本话
拖号数有一个n,在消耗成本和经验书成本上达到一个最大效率值
至于这个n=几,由具体你每小时拖号所需要的消耗量决定.消耗越大,n越大

TOP

恩...顶数据贴..
5.31的DQMJ3...6月的B2W2..要死人了这撞车

TOP

如果要算时间成本话那就没法说了
有的人一寸光阴一寸金,有的人什么都没就是时间多
当然一般而言会考虑lz这个问题的多半属于后者

TOP

lz你如果不考虑拖号的消耗成本话是没有任何意义的
边际效应决定就是时间成本换经验书成本,就看你是舍得花时间还是舍得花钱买书

ps:请sg的花费应该算作消耗成本而不是时间成本

TOP

对的 主要问题就是楼上所指的这点。
既然算到人工成本或者时间成本,那就复杂多了。
不同的人,同一个人不同时间段的时间成本是不一样的。
因此要算拖号相应成本,只能把这个成本直接去除掉。
但是那样的话又不符合实际。
"のмíss``уòυ.﹏゛                     "のмíss``уòυ.﹏゛                      "のмíss``уòυ.﹏゛

TOP

消耗成本自然是要计的
我的意见是
单位时间消耗成本计入人工成本
不知道几位有什么建议

TOP

一拖n多开切换导致的效率延误如何建模?
毋因群疑而阻独见,毋任己意而废人言,毋私小惠而伤大体,毋借公论以快私情


那存在的都是幻影,那永恒的终将毁灭,世界万物缤纷色彩,都是被蒙蔽的人心


冷目旁观只眼世界,热胆衷肠全心道义,或曰此看客之谓也,吾嘉之而深以为然

TOP

原帖由 wy7086 于 2009-11-28 14:17 发表
如果要算时间成本话那就没法说了
有的人一寸光阴一寸金,有的人什么都没就是时间多
当然一般而言会考虑lz这个问题的多半属于后者

时间多的请把自己那部分调低一起算进书外总成本就好
C是个人需要计算的东西
包含各方面因素自然结果也就包含了各种情况
你说的只是其中一种
如果辅助和输出都多得是时间
那时间成本就很低了算上消耗结果可能得到A<2其选择就直接成为1个1个拖
你所说的只不过是一种特殊情况

TOP

原帖由 看客 于 2009-11-28 14:37 发表
一拖n多开切换导致的效率延误如何建模?

这应该不是问题,弄个出框补丁就行了。

TOP

原帖由 火焰心情 于 2009-11-28 14:32 发表
对的 主要问题就是楼上所指的这点。
既然算到人工成本或者时间成本,那就复杂多了。
不同的人,同一个人不同时间段的时间成本是不一样的。
因此要算拖号相应成本,只能把这个成本直接去除掉。
但是那样的话 ...

不同时间段成本不一样的情况我没有考虑
拖号总归是要找些大块时间吧。。。1小时为单位我认为没什么问题
就算半小时为单为这些结果也是没问题的(当然走过去的时间就不能算进去了)
进入不同时间段完全可以把拖的号关掉几个

再有就是
我们一般关注的A值一般在
1到20之间

[ 本帖最后由 flydreamcyx 于 2009-11-29 12:05 编辑 ]

TOP

返回列表