浅谈“随机按键指定串”问题
Preface主要作为培训时该类问题的总结。Introduction这类问题的主要形式是有m mm个不同的字符按键进行n nn次或无限次随机敲打。询问n nn个字符中出现长度为k kk的指定串S SS的概率。或求无限次敲打中S SS出现位置的期望。首先这个问题是与 KMP 有关的我们知道B o r d e r \rm{Border}Border串是原串的前后缀那么从感性的角度理解B o r d e r \rm{Border}Border越长S SS越容易在匹配失败时恢复更长的前缀使得出现概率更大、位置期望更靠前。对于问题“n nn个字符中出现长度为k kk的指定串S SS的概率”题目Mivik 的标题这个问题实际上很古老B o r d e r \rm{Border}Border理论中有B o r d e r \rm{Border}Border串可分为O ( log ⁡ k ) O(\log k)O(logk)个等差数列的描述根据推出的 DP 式子使用该理论与半在线卷积、高斯消元、多项式求逆、生成函数等操作便可以有效地求出。在该题目的题解区已有丰富的解答这里不多赘言。而对于问题“无限次敲打中S SS出现位置的期望”理论上可以运用上面的结论在无限求和中使用泰勒等多项式合并的方法。但实际上对于无限问题如果是收敛的期望递推式并不会过于丑陋。记f i f_ifi​为S SS第i ii位到S SS最后一个字符出现的期望根据 KMP 自动机有这么一个函数δ ( i , c ) { i 1 , c s i 1 δ ( π i , c ) , e l s e \delta(i,c)\begin{cases} i1, cs_{i1} \\ \delta(\pi_i,c), else \end{cases}δ(i,c){i1,δ(πi​,c),​csi1​else​其中π i \pi_iπi​即位置i ii的B o r d e r \rm{Border}Border长度。所以把f i f_ifi​拆分可能的转移易得f i 1 m ∑ c f δ ( i , c ) 1 f_i\frac{1}{m}\sum_{c} f_{\delta(i,c)}1fi​m1​c∑​fδ(i,c)​1我们对比f π i f_{\pi_i}fπi​​f π i 1 m ∑ c f δ ( π i , c ) 1 f_{\pi_i}\frac{1}{m}\sum_{c} f_{\delta(\pi_i,c)}1fπi​​m1​c∑​fδ(πi​,c)​1做一次容斥f i f π i − 1 m f δ ( π i , s i 1 ) 1 m f i 1 f_if_{\pi_i}-\frac{1}{m}f_{\delta(\pi_i,s_{i1})}\frac{1}{m}f_{i1}fi​fπi​​−m1​fδ(πi​,si1​)​m1​fi1​f i f_ifi​作为期望的定义是倒着走的我们为了方便处理设g i f i − f 0 g_if_i-f_0gi​fi​−f0​那么显然g 0 0 g_00g0​0。而由前面f 0 1 m ∑ c f δ ( 0 , c ) 1 1 m f 1 m − 1 m f 0 1 f_0\frac{1}{m}\sum_{c} f_{\delta(0,c)}1\frac{1}{m}f_1\frac{m-1}{m}f_01f0​m1​c∑​fδ(0,c)​1m1​f1​mm−1​f0​1化简记f 1 − f 0 − m f_1-f_0-mf1​−f0​−m也就是g 1 − m g_1-mg1​−m。把g i g_igi​代入容斥后的式子g i f 0 g π i f 0 − 1 m ( g δ ( π i , s i 1 ) f 0 ) 1 m ( g i 1 f 0 ) g_if_0g_{\pi_i}f_0-\frac{1}{m}(g_{\delta(\pi_i,s_{i1})}f_0)\frac{1}{m}(g_{i1}f_0)gi​f0​gπi​​f0​−m1​(gδ(πi​,si1​)​f0​)m1​(gi1​f0​)不难发现f 0 f_0f0​可以消掉g i 1 m ( g i − g π i ) g δ ( π i , s i 1 ) g_{i1}m(g_i-g_{\pi_i})g_{\delta(\pi_i,s_{i1})}gi1​m(gi​−gπi​​)gδ(πi​,si1​)​B o r d e r \rm{Border}Border串预处理δ \deltaδ函数是O ( log ⁡ k ) O(\log k)O(logk)的于是这就是一个普通的O ( n log ⁡ k ) O(n \log k)O(nlogk)递推式子。我们要的位置期望就是f 0 f_0f0​也就是f k − g k f_k-g_kfk​−gk​f k f_kfk​已经代表S SS的最后一个位置了敲打次数期望为0 00则f 0 − g k f_0-g_kf0​−gk​。这样我们避免了复杂的数学推演只使用了简单的期望递推本问题就此告段落。一个古老的类似问题[CTSC2006] 歌唱王国希望本文章对你有帮助。

相关新闻

LangChain技能全景:从基础连接到生产级智能体部署全解析

LangChain技能全景:从基础连接到生产级智能体部署全解析

1. 项目概述:LangChain技能全景图 最近和不少同行交流,发现一个挺有意思的现象:大家聊起LangChain,要么是“我搭了个简单的RAG应用”,要么是“我用LangChain调了调API”,但再往深了问,比如怎么设…

2026/8/1 3:46:11 阅读更多 →
虚拟电厂优化调度:从MATLAB到GAMS的技术迁移与实践

虚拟电厂优化调度:从MATLAB到GAMS的技术迁移与实践

1. 虚拟电厂优化调度:从MATLAB到GAMS的技术迁移背景虚拟电厂(Virtual Power Plant, VPP)作为能源互联网的核心技术载体,正在重塑传统电力系统的运行范式。我最初接触这个概念是在2018年参与某微电网项目时,当时用MATLA…

2026/8/1 3:46:11 阅读更多 →
药物研发失败率高达90%?NAM新技术如何破解临床转化鸿沟

药物研发失败率高达90%?NAM新技术如何破解临床转化鸿沟

1. 一个被忽视的“常识”:药物研发的失败率到底有多高?“九死一生”这个词,用来形容创业或者高风险投资,大家可能觉得已经够残酷了。但在现代药物研发领域,这个成语的残酷程度甚至还不够格。一个更接近现实的描述是“百…

2026/8/1 3:46:11 阅读更多 →

最新新闻

【Matlab】等离子体物理粒子模拟实现

【Matlab】等离子体物理粒子模拟实现

【Matlab】等离子体物理粒子模拟实现 一、引言 等离子体是由自由电子、带电离子与中性粒子组成的电离气体体系,被称为物质的第四种形态,广泛存在于宇宙空间、大气电离层、核聚变装置、等离子体刻蚀设备、微波放电装置与航空推进系统中。相较于固液气三种常规物质形态,等离…

2026/8/1 4:31:30 阅读更多 →
智能锡膏柜居然还有标准?新手怎么选?

智能锡膏柜居然还有标准?新手怎么选?

智能锡膏柜到底有没有标准?新手怎么选不出错?“智能锡膏柜到底有没有标准?”——这是我在后台收到最多的问题,没有之一。很多采购、工艺主管和SMT老板面对市场上功能五花八门、价格从几万到十几万不等的“智能柜”,往往…

2026/8/1 4:31:30 阅读更多 →
React富文本编辑器核心架构与实现解析

React富文本编辑器核心架构与实现解析

1. 富文本编辑器核心架构解析富文本编辑器的本质是在浏览器中模拟桌面文字处理软件的交互体验。与普通textarea不同,它需要处理复杂的文档结构、样式嵌套和用户操作记录。在React生态中实现这一功能,我们需要先理解几个核心概念:可编辑节点&a…

2026/8/1 4:31:30 阅读更多 →
TSB自定义技能系统:组件化开发与手机端性能优化实战

TSB自定义技能系统:组件化开发与手机端性能优化实战

最近在游戏开发圈里,TSB(Technical Skill Builder)框架的自定义技能系统突然火了起来。很多开发者发现,过去需要复杂代码才能实现的"空间斩"和"连续斩击"这类高级技能效果,现在通过TSB的可视化配置…

2026/8/1 4:31:30 阅读更多 →
C++自定义类型哈希实现:从原理到实战避坑指南

C++自定义类型哈希实现:从原理到实战避坑指南

1. 从一次“找不到对象”的编译错误说起那天下午&#xff0c;我正在调试一个处理海量用户数据的模块&#xff0c;核心数据结构是一个std::unordered_map<User, UserProfile>。User是我自定义的一个类&#xff0c;包含了用户ID、姓名哈希和一些状态标志。代码逻辑看起来天…

2026/8/1 4:31:30 阅读更多 →
VH6501总线干扰神器实战:从硬件原理到CAPL脚本的汽车ECU压力测试指南

VH6501总线干扰神器实战:从硬件原理到CAPL脚本的汽车ECU压力测试指南

1. 项目概述&#xff1a;从“干扰”到“测试”的认知升级提到“总线干扰神器”&#xff0c;很多刚接触汽车电子测试的朋友可能会眼睛一亮&#xff0c;觉得这玩意儿是不是能像电影里的黑客工具一样&#xff0c;随便一按就让别人的CAN网络瘫痪&#xff1f;我最初拿到VH6501时也闪…

2026/8/1 4:30:29 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →