强化一件装备,有10%的几率成功,如果未成功,则下次成功几率增加10%(即:第一次未成功,则第二次成功几率为20%),求装备强化成功的期望次数?

function f(deep, p)if p >= 0.99 then -- lua精度问题return deepelseprint("f("..deep..","..p..") = "..deep.."*"..p.." + "..(1-p).." * f("..(deep+1)..","..(p+0.1)..")")return deep*p + (1-p)*f(deep+1,p+0.1)end
end
print(f(1, 0.1))-- f(1, 0.1) = 1*0.1 + (1-0.1) * f(2, 0.2)
ans = 1*0.1 + 0.9 * (2*0.2 + 0.8 * (3*0.3 + 0.7 * (4*0.4 + 0.6 * (5*0.5 + 0.5 * (6*0.6 + 0.4 * (7*0.7 + 0.3 * (8*0.8 + 0.2 * (9*0.9 + 0.1 * (10*1)))))))))
print(ans)-- f(1,0.1) = 1*0.1 + 0.9 * f(2,0.2)
-- f(2,0.2) = 2*0.2 + 0.8 * f(3,0.3)
-- f(3,0.3) = 3*0.3 + 0.7 * f(4,0.4)
-- f(4,0.4) = 4*0.4 + 0.6 * f(5,0.5)
-- f(5,0.5) = 5*0.5 + 0.5 * f(6,0.6)
-- f(6,0.6) = 6*0.6 + 0.4 * f(7,0.7)
-- f(7,0.7) = 7*0.7 + 0.3 * f(8,0.8)
-- f(8,0.8) = 8*0.8 + 0.2 * f(9,0.9)
-- f(9,0.9) = 9*0.9 + 0.1 * f(10,1)
-- f(10,1) = 10*1

略作一般化

某游戏抽卡出货概率是2%,如果连续50次没有出货,接下来每次单抽出货概率+2%,直到出货为止。
即如果一直不出货:
第51次概率为4%
第52次概率为6%
第53次概率为8%
求抽卡出货的期望次数

local add_p = 0.02
function f(deep, p)if p >= 0.9999 then -- 精度问题return deepelseif deep<=50 thenprint("f("..deep..","..p..")\t= "..deep.."*"..p.." + "..(1-p).." * f("..(deep+1)..","..(p)..")")return deep*p + (1-p)*f(deep+1,p)elseprint("f("..deep..","..p..")\t= "..deep.."*"..p.." + "..(1-p).." * f("..(deep+1)..","..(p+add_p)..")")return deep*p + (1-p)*f(deep+1,p+add_p)endend
end
local base_p = 0.02
print(f(1, base_p))--[[
f(1,0.02)       = 1*0.02 + 0.98 * f(2,0.02)
f(2,0.02)       = 2*0.02 + 0.98 * f(3,0.02)
f(3,0.02)       = 3*0.02 + 0.98 * f(4,0.02)
f(4,0.02)       = 4*0.02 + 0.98 * f(5,0.02)
f(5,0.02)       = 5*0.02 + 0.98 * f(6,0.02)
f(6,0.02)       = 6*0.02 + 0.98 * f(7,0.02)
f(7,0.02)       = 7*0.02 + 0.98 * f(8,0.02)
f(8,0.02)       = 8*0.02 + 0.98 * f(9,0.02)
f(9,0.02)       = 9*0.02 + 0.98 * f(10,0.02)
f(10,0.02)      = 10*0.02 + 0.98 * f(11,0.02)
f(11,0.02)      = 11*0.02 + 0.98 * f(12,0.02)
f(12,0.02)      = 12*0.02 + 0.98 * f(13,0.02)
f(13,0.02)      = 13*0.02 + 0.98 * f(14,0.02)
f(14,0.02)      = 14*0.02 + 0.98 * f(15,0.02)
f(15,0.02)      = 15*0.02 + 0.98 * f(16,0.02)
f(16,0.02)      = 16*0.02 + 0.98 * f(17,0.02)
f(17,0.02)      = 17*0.02 + 0.98 * f(18,0.02)
f(18,0.02)      = 18*0.02 + 0.98 * f(19,0.02)
f(19,0.02)      = 19*0.02 + 0.98 * f(20,0.02)
f(20,0.02)      = 20*0.02 + 0.98 * f(21,0.02)
f(21,0.02)      = 21*0.02 + 0.98 * f(22,0.02)
f(22,0.02)      = 22*0.02 + 0.98 * f(23,0.02)
f(23,0.02)      = 23*0.02 + 0.98 * f(24,0.02)
f(24,0.02)      = 24*0.02 + 0.98 * f(25,0.02)
f(25,0.02)      = 25*0.02 + 0.98 * f(26,0.02)
f(26,0.02)      = 26*0.02 + 0.98 * f(27,0.02)
f(27,0.02)      = 27*0.02 + 0.98 * f(28,0.02)
f(28,0.02)      = 28*0.02 + 0.98 * f(29,0.02)
f(29,0.02)      = 29*0.02 + 0.98 * f(30,0.02)
f(30,0.02)      = 30*0.02 + 0.98 * f(31,0.02)
f(31,0.02)      = 31*0.02 + 0.98 * f(32,0.02)
f(32,0.02)      = 32*0.02 + 0.98 * f(33,0.02)
f(33,0.02)      = 33*0.02 + 0.98 * f(34,0.02)
f(34,0.02)      = 34*0.02 + 0.98 * f(35,0.02)
f(35,0.02)      = 35*0.02 + 0.98 * f(36,0.02)
f(36,0.02)      = 36*0.02 + 0.98 * f(37,0.02)
f(37,0.02)      = 37*0.02 + 0.98 * f(38,0.02)
f(38,0.02)      = 38*0.02 + 0.98 * f(39,0.02)
f(39,0.02)      = 39*0.02 + 0.98 * f(40,0.02)
f(40,0.02)      = 40*0.02 + 0.98 * f(41,0.02)
f(41,0.02)      = 41*0.02 + 0.98 * f(42,0.02)
f(42,0.02)      = 42*0.02 + 0.98 * f(43,0.02)
f(43,0.02)      = 43*0.02 + 0.98 * f(44,0.02)
f(44,0.02)      = 44*0.02 + 0.98 * f(45,0.02)
f(45,0.02)      = 45*0.02 + 0.98 * f(46,0.02)
f(46,0.02)      = 46*0.02 + 0.98 * f(47,0.02)
f(47,0.02)      = 47*0.02 + 0.98 * f(48,0.02)
f(48,0.02)      = 48*0.02 + 0.98 * f(49,0.02)
f(49,0.02)      = 49*0.02 + 0.98 * f(50,0.02)
f(50,0.02)      = 50*0.02 + 0.98 * f(51,0.02)
f(51,0.02)      = 51*0.02 + 0.98 * f(52,0.04)
f(52,0.04)      = 52*0.04 + 0.96 * f(53,0.06)
f(53,0.06)      = 53*0.06 + 0.94 * f(54,0.08)
f(54,0.08)      = 54*0.08 + 0.92 * f(55,0.1)
f(55,0.1)       = 55*0.1 + 0.9 * f(56,0.12)
f(56,0.12)      = 56*0.12 + 0.88 * f(57,0.14)
f(57,0.14)      = 57*0.14 + 0.86 * f(58,0.16)
f(58,0.16)      = 58*0.16 + 0.84 * f(59,0.18)
f(59,0.18)      = 59*0.18 + 0.82 * f(60,0.2)
f(60,0.2)       = 60*0.2 + 0.8 * f(61,0.22)
f(61,0.22)      = 61*0.22 + 0.78 * f(62,0.24)
f(62,0.24)      = 62*0.24 + 0.76 * f(63,0.26)
f(63,0.26)      = 63*0.26 + 0.74 * f(64,0.28)
f(64,0.28)      = 64*0.28 + 0.72 * f(65,0.3)
f(65,0.3)       = 65*0.3 + 0.7 * f(66,0.32)
f(66,0.32)      = 66*0.32 + 0.68 * f(67,0.34)
f(67,0.34)      = 67*0.34 + 0.66 * f(68,0.36)
f(68,0.36)      = 68*0.36 + 0.64 * f(69,0.38)
f(69,0.38)      = 69*0.38 + 0.62 * f(70,0.4)
f(70,0.4)       = 70*0.4 + 0.6 * f(71,0.42)
f(71,0.42)      = 71*0.42 + 0.58 * f(72,0.44)
f(72,0.44)      = 72*0.44 + 0.56 * f(73,0.46)
f(73,0.46)      = 73*0.46 + 0.54 * f(74,0.48)
f(74,0.48)      = 74*0.48 + 0.52 * f(75,0.5)
f(75,0.5)       = 75*0.5 + 0.5 * f(76,0.52)
f(76,0.52)      = 76*0.52 + 0.48 * f(77,0.54)
f(77,0.54)      = 77*0.54 + 0.46 * f(78,0.56)
f(78,0.56)      = 78*0.56 + 0.44 * f(79,0.58)
f(79,0.58)      = 79*0.58 + 0.42 * f(80,0.6)
f(80,0.6)       = 80*0.6 + 0.4 * f(81,0.62)
f(81,0.62)      = 81*0.62 + 0.38 * f(82,0.64)
f(82,0.64)      = 82*0.64 + 0.36 * f(83,0.66)
f(83,0.66)      = 83*0.66 + 0.34 * f(84,0.68)
f(84,0.68)      = 84*0.68 + 0.32 * f(85,0.7)
f(85,0.7)       = 85*0.7 + 0.3 * f(86,0.72)
f(86,0.72)      = 86*0.72 + 0.28 * f(87,0.74)
f(87,0.74)      = 87*0.74 + 0.26 * f(88,0.76)
f(88,0.76)      = 88*0.76 + 0.24 * f(89,0.78)
f(89,0.78)      = 89*0.78 + 0.22 * f(90,0.8)
f(90,0.8)       = 90*0.8 + 0.2 * f(91,0.82)
f(91,0.82)      = 91*0.82 + 0.18 * f(92,0.84)
f(92,0.84)      = 92*0.84 + 0.16 * f(93,0.86)
f(93,0.86)      = 93*0.86 + 0.14 * f(94,0.88)
f(94,0.88)      = 94*0.88 + 0.12 * f(95,0.9)
f(95,0.9)       = 95*0.9 + 0.1 * f(96,0.92)
f(96,0.92)      = 96*0.92 + 0.08 * f(97,0.94)
f(97,0.94)      = 97*0.94 + 0.059999999999999 * f(98,0.96)
f(98,0.96)      = 98*0.96 + 0.039999999999999 * f(99,0.98)
f(99,0.98)      = 99*0.98 + 0.019999999999999 * f(100,1)
]]

如果规则再改改,前50次费用固定600,对于第50次后每次抽卡,如果一直不出货,除了概率加2%,费用减6,求出货一次的期望费用。
解法敬请期待…

经典递归案例:失败时下次成功率递增-求装备强化成功的期望次数相关推荐

  1. 深度理解递归,手撕经典递归问题(汉诺塔,青蛙跳台阶),保姆级教学。

    目录 序言: 一.函数递归( recursion) 二.递归的两个必要条件 三.递归小问题 (1)接受一个整型值(无符号),按照顺序打印它的每一位 (2)编写函数不允许创建临时变量,求字符串的长度(利 ...

  2. 87-Java方法递归形式、算法流程总结、递归常见案例、递归经典案例-猴子吃桃问题、非规律化递归案例-文件搜索、啤酒问题

    方法递归 一.递归的形式和特点 1.什么是方法递归? 方法直接调用自己或者间接调用自己的形式称为方法递归(recursion). 递归作为一种算法在程序设计语言中广泛应用. 2.递归的形式 直接递归: ...

  3. PE经典DIY案例1:全解开方案让量产PE也能

    更新说明:因未来的uefi似乎并不能识别并引导ud区,但能识别和引导量产和u+B+隐藏或高端隐藏区,故解决量产PE对u+B+隐藏区的支持,并增加对UEFI启动支持,已经成为PE制作的最主流技术. PE ...

  4. python项目实例初学者-经典Python案例,初学者的小帮手,立马学会Python!

    原标题:经典Python案例,初学者的小帮手,立马学会Python! 对于刚开始学习Python的人来说,会通过Python的一些经典案例练手,这样既可以加深对Python的理解,也可以增进自己的技术 ...

  5. MySQL数据库“十宗罪”(十大经典错误案例)

    各位技术老铁们,福利来了!今天给大家说说<数据库中十大经典错误案例> 老张我在刚开始学习数据库的时候,没少走弯路.经常会遇到各种稀奇古怪的 error 信息,遇到报错会很慌张,急需一个解决 ...

  6. MYSQL数据库VALUES_MySQL数据库“十宗罪”(十大经典错误案例)

    每天给你诚意满满的干货 来自:51CTO(作者:superZS) 原文链接:http://blog.51cto.com/sumongodb/1949426 今天给大家说说<数据库中十大经典错误案 ...

  7. python斐波那契前20递归_算法python实现经典递归问题(汉诺塔, 斐波那契数列,阶乘)...

    经典递归 汉诺塔问题 背景故事 传说印度某间寺院有三根柱子,上串64个金盘.寺院里的僧侣依照一个古老的预言,以上述规则移动这些盘子:预言说当这些盘子移动完毕,世界就会灭亡.这个传说叫做梵天寺之塔问题( ...

  8. MySQL 数据库“十宗罪”(十大经典错误案例)

    关注我们,获得更多资源 来源:张甦 blog.51cto.com/sumongodb/1949426 各位技术老铁们,福利来了!今天给大家说说<数据库中十大经典错误案例> 老张我在刚开始学 ...

  9. python经典程序实例-你不知道的Python语言的经典五大案例

    原标题:你不知道的Python语言的经典五大案例 身为全国三大主流编程语言之一,Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库.Python的简单入门及其它的全能型,能适应所 ...

最新文章

  1. 算法心经.数学的应用.微分的应用
  2. 介绍一个对陌生程序快速进行性能瓶颈分析的技巧
  3. ip变更会影响账号登陆吗_【教程】PUBG账号被盗导致封禁申诉解封教程
  4. itunes未能连接到iphone_iTunes下载_苹果iTunes官方下载「32位|64位」
  5. Linux nc命令详解
  6. Delphi vs VC++
  7. java定时任务插件_Spring 定时任务插件quartz
  8. PDF 文件格式 基本结构
  9. python 判断区分字符串是否都是英文/中文
  10. 英语发音规则---F字母
  11. CMD命令Program Files问题
  12. 七年级计算机学期教学要求,七年级信息技术教学工作总结
  13. 数字IC笔试题,大疆校招16题(仅供参考)
  14. 怎么用单片机做一个比较有创新的东西?
  15. 详细说明如何在pycharm不联网的情况下,离线安装第三方库及依赖包(如sklearn)
  16. python安装pyinotify模块
  17. 关于Win10版本1903的蓝牙设备已配对但无法使用的结局方案
  18. ssl vpn 与 ipsec vpn 区别
  19. node js crc16 效验
  20. 经典小游戏——数字炸弹

热门文章

  1. 线元法输入曲线要素_如何把平曲线表输入到RTK中(交点法)
  2. telnet远程重启服务器,net、ftp、telnet命令和远程登录重启服务器
  3. RTMP直播 浏览器通过jwplayer播放
  4. HDU 1847(超短82B!全新技术大上阵!)
  5. 我崩溃了!大连java培训机构哪家好
  6. VSCode设置透明背景,解决透明度导致全局字体模糊问题
  7. 更换手机后要解绑的账号全集
  8. 星际战争(bzoj 3993)
  9. 用HTML+CSS做一个学生抗疫感动专题网页设计作业网页
  10. 微信小程序支付功能-服务器端实现(附源码)