在微博上传出这么道题目:一把1级屠龙刀,最高可以升到9级,每次升级成功率30%,失败率70%。失败会退一级,最差退到1级。那么在1000次内升级到9级的概率为多少?
在我理解,等于是准备升级所需各种钱、道具的,连续点装备“升级”1000次,其能达到9级的概率;若这把刀达到9级,就取下,换把1级刀,继续;直到点满“升级”1000次,得出成功几把屠龙刀。
那么其他人呢?有人只是喊“简单啊!真简单!”不过看起到他的结果也看不到他的分析;有人呢直接把高度上升,说这种数值设计各种不合理,各种垃圾(反正也没给出分析或结果);也有人无视掉“失败会退一级”(应该就是俗称的“掉级”)限制,直接0.3的8次方,然后继续……搜了各种地方,看到网上大部分所给出的答案22.86%,我表示不能理解;在gameres上有人提供了这个结果的算法,用excel拉的:
其思路是:玩家每次都尝试升级到9级;第1次升级,有0.7个在1级,0.3个在2级;第2次升级,1级有0.7×0.7+0.3,2级有0.7×0.3,3级有0.3×0.3……这样子,持续1000次。
看了若干遍,包括一些讨论分析的文字;我也没明白这种算法的思路,只是大致明白,这种算法,对题目的理解可能是:拿1000把屠龙刀来,每个都点“升级”9次,有几把会成功。
好吧,按我理解,若是这么来的话,几乎没有1巴刀会成功,每次才0.3的成功率好不?
而我自己是这么想的:
若不算掉级,1级升级2级是0.3的成功率,1级升3级是0.3×0.3的成功率,则1级到9级就是0.3的8次方成功率;这个概率是极低的。那么,加上1000次的尝试,是否能理解为1000×0.3^8,这结果也不高哦,为6.56%。若加上至少点8次才可能有1次成功的话,为0.82%.
等等,通过excel枚举,得到1级升级2级是0.3的成功率,1级升3级是0.3/2的成功率,则1级到9级就是0.3/8的成功率3.75%?
哪里出问题了呢?总的,肯定不会为22%……或更多。
可这里还有个“降级”因素,也就是,如果2级升3级的时候失败了,就会将为1级——好吧,这个设计确实很“坑爹”,不过这里仅把它当作数学分析就好了——经历这种降级后,其成功的概率还可能大于6.56%吗?具体计算方式我没能列出来,只能用excel按我的理解,试下枚举;思路如下:
主打公式是:A2格子=IF(INT(100*RAND())>30,A1-1,A1+1);也就是,丢100骰的骰子,若大于30则失败,上一格等级减1,否则等级加1。
为了方便拉公式,进行一些调整优化,得最后公式:从A2开始=IF(A1=9,IF(INT(100RAND())>30,$A$1,$A$1+1),IF(INT(100RAND())>30,IF(A1=1,1,A1-1),A1+1));也就是=if(上一格子等于A1=9,则计算从1开始=IF(INT(100RAND())>30,$A$1,$A$1+1),否则计算从上一格开始=IF(INT(100RAND())>30,IF(A1=1,1,A1-1),A1+1));否则里加多一个判断,如果上一个格子为1(1级),则升级失败不掉级。
把这个公式从第2行拉到1000行(第1行的数字为1,1级),统计出现9的次数=COUNTIF($F$2:$F$1001,9);可得大部分时候为0,偶尔出1,极少出现2;拿这个数除以1000,则在0.02%至0.04%之间。
我的excle也就算到此为止,是否能有标准公式得出结论呢?非常期待。