KMP入门——学习心得

参考博客链接:https://www.cnblogs.com/yjiyjige/p/3263858.html

本文仅仅基于上文谈谈自己的心得,以便更好大家理解,也便于自己理解。如有错误,欢迎指正。Thanks♪(・ω・)ノ

emmmm........更多详情请参考原博客。

接着我们来看:

作者于开头提出:

1.什么是KMP算法以及它的来历;

2.一般的解决  匹配模式串  问题的思路;

基于这个想法我们可以得到以下的程序:

 1 /**
 2 
 3  * 暴力破解法
 4 
 5  * @param ts 主串
 6 
 7  * @param ps 模式串
 8 
 9  * @return 如果找到,返回在主串中第一个字符出现的下标,否则为-1
10 
11  */
12 
13 public static int bf(String ts, String ps) {
14 
15     char[] t = ts.toCharArray();
16 
17     char[] p = ps.toCharArray();
18 
19     int i = 0; // 主串的位置
20 
21     int j = 0; // 模式串的位置
22 
23     while (i < t.length && j < p.length) {
24 
25        if (t[i] == p[j]) { // 当两个字符相同,就比较下一个
26 
27            i++;
28 
29            j++;
30 
31        } else {
32 
33            i = i - j + 1; // 一旦不匹配,i后退
34 
35            j = 0; // j归0
36 
37        }
38 
39     }
40 
41     if (j == p.length) {
42 
43        return i - j;
44 
45     } else {
46 
47        return -1;
48 
49     }
50 
51 }

这是对应  一般的解决  匹配模式串  问题的思路  的代码。

接着作者提出一些  用此一般方法解决一些问题会比较麻烦并提出要人为地有记忆性地查找 正如作者说:

而保持i指针不回溯,可以省时省力,更简单有效解决问题。

 

关于这个k=next[k]的依据,不理解的朋友不妨拿一个模式串循环一遍,比如ABACB......

他的作用就是加入你在进行  主串与模式串  比较匹配过程中,假如前面已经有了一段已经匹配的串,那么当你遇到当前的j指针指向的字母与i指针指向字母不匹配,那可以利用自身前面已匹配的部分,进行j的回溯,假如还是不匹配,再利用前面已经匹配的部分(尽管它现在越来越短),进行j的回溯.......(如此反复进行下去,进行多次有效的利用)。这个过程就类似于一直进行自身的(逐渐变短的)前缀和自身的后缀进行匹配。

先得到next数组

再进行主串与模式串的匹配

作者写的很到位

over!

转载于:https://www.cnblogs.com/Mingusu/p/11208140.html

内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391天的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具和方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值