
KMP模式匹配算法
这里有个相似的问题,也是我回答的,讲了原理 http://zhidao.baidu.com/question/329386416.html 如果你只要代码的话 一个简单的代码 #include #include int index_KMP(char *s,char *t,int pos); void get_next(char *t,int *); char s[10]="abcacbcba"; char t[4]="bca"; int next[4]; int pos=0; int main() { int n; get_next(t,next); n=index_KMP(s,t,pos); printf("%d",n); return 0; } int index_KMP(char *s,char *t,int pos) { int i=pos,j=1; while (i<=(int)strlen(s)&&j<=(int)strlen(t)) { if (j==0||s[i]==t[j-1]) { i++; j++; } else j=next[j]; } if (j>(int)strlen(t)) return i-strlen(t)+1; else return 0; } void get_next(char *t,int *next) { int i=1,j=0; next[0]=next[1]=0; while (i<(int)strlen(t)) { if (j==0||t[i]==t[j]) { i++; j++; next[i]=j; } else j=next[j]; } }
求助!!!!!!!模式匹配和KMP算法
这个题目最难的是KMP算法和实现。其他的书本上都有的。
我自己写的个程序:
测试结果如下:
113113113113113113113113113113113113113113113111311311311311311311
13113113111
at 37
贴上源代码:
#include"stdio.h"
#include "conio.h"
#include "stdio.h"
#include "math.h"
int result;
char pat[]="13113113111";
char str[]="113113113113113113113113113113113113113113113111311311311311311311";
int next[7];
void getNext(char pat[], int next[])
{
int j = 0;
int k = -1;
next[0] = -1;
while (pat[j])
{
if ( k == -1 || pat[j] == pat[k])
{
j++;
k++;
next[j] = k;
}
else
{
k = next[k];
}
}
}
int KMP(char *str1, char*pat, int *next)
{
int i=0,j=0;
while(str[i])
{
if(pat[j]==0)
return i-j;
if(j==0 || str[i]==pat[j])
{
++i;
++j;
}else
j=next[j];
}
if(pat[j]==0)
return i-j;
return -1;
}
int main(int argc, char* argv[])
{
int i;
getNext(pat,next);
result=KMP(str,pat,next);
printf("%s\n",str);
for(i=0;i<result;i++) printf(" ");
printf("%s\n",pat);
printf("at %d\n",result);
getch();
return 0;
}
祝你好运!
用什么算法实现人脸匹配
亲亲,下午好,人脸匹配是一个复杂的问题,需要综合考虑多种算法。以下是一些常用的算法:1 特征提取:通过深度学习方法,如卷积神经网络(CNN),抽取人脸图像中的特征向量,常用方法有VGG、ResNet、Inception等。2 相似度计算:计算两张人脸图像之间的相似度,比较常用的方法包括余弦相似度、欧式距离、曼哈顿距离等。3数据库管理:将多个人脸图像的特征向量存储在数据库中,并设定阈值,当输入的人脸图像与数据库中的某张人脸图像的相似度大于阈值时,认为两者匹配成功。综上所述,人脸匹配通常使用深度学习网络进行特征提取,并使用相似度计算算法和数据库管理来实现匹配【摘要】
用什么算法实现人脸匹配【提问】
亲亲,下午好,人脸匹配是一个复杂的问题,需要综合考虑多种算法。以下是一些常用的算法:1 特征提取:通过深度学习方法,如卷积神经网络(CNN),抽取人脸图像中的特征向量,常用方法有VGG、ResNet、Inception等。2 相似度计算:计算两张人脸图像之间的相似度,比较常用的方法包括余弦相似度、欧式距离、曼哈顿距离等。3数据库管理:将多个人脸图像的特征向量存储在数据库中,并设定阈值,当输入的人脸图像与数据库中的某张人脸图像的相似度大于阈值时,认为两者匹配成功。综上所述,人脸匹配通常使用深度学习网络进行特征提取,并使用相似度计算算法和数据库管理来实现匹配【回答】
用什么算法实现人脸匹配
实现人脸匹配的算法有很多种,以下是其中几种常用的算法:1. 基于特征点的算法:通过检测人脸的关键点,如眼睛、鼻子、嘴巴等,提取特征向量,通过计算两个人脸特征向量之间的相似度来进行人脸匹配。2. 基于深度学习的算法:使用深度神经网络(Deep Neural Network,DNN)训练模型,将人脸图像映射成具有固定维度的特征向量,再通过计算两个特征向量之间的相似度来进行人脸匹配。3. 基于局部特征的算法:将人脸图像分成多个局部区域,提取每个区域的特征向量,再将多个局部特征向量合并成一个全局特征向量,通过计算两个全局特征向量之间的相似度来进行人脸匹配。4. 基于传统机器学习的算法:使用传统的机器学习算法,如支持向量机(Support Vector Machine,SVM)、随机森林(Random Forest,RF)等,通过训练模型来学习人脸的特征,再通过计算两个人脸特征向量之间的相似度来进行人脸匹配。【摘要】
用什么算法实现人脸匹配【提问】
实现人脸匹配的算法有很多种,以下是其中几种常用的算法:1. 基于特征点的算法:通过检测人脸的关键点,如眼睛、鼻子、嘴巴等,提取特征向量,通过计算两个人脸特征向量之间的相似度来进行人脸匹配。2. 基于深度学习的算法:使用深度神经网络(Deep Neural Network,DNN)训练模型,将人脸图像映射成具有固定维度的特征向量,再通过计算两个特征向量之间的相似度来进行人脸匹配。3. 基于局部特征的算法:将人脸图像分成多个局部区域,提取每个区域的特征向量,再将多个局部特征向量合并成一个全局特征向量,通过计算两个全局特征向量之间的相似度来进行人脸匹配。4. 基于传统机器学习的算法:使用传统的机器学习算法,如支持向量机(Support Vector Machine,SVM)、随机森林(Random Forest,RF)等,通过训练模型来学习人脸的特征,再通过计算两个人脸特征向量之间的相似度来进行人脸匹配。【回答】
亲亲还有什么问题吗?【回答】
推荐阅读
- ○ w3school,w3school和w3cschool两个网站有什么关系和区别
- ○ w3c,W3C是干什么的?
- ○ w3,营养学中的常用英文缩写及其含义,跪求各位大哥大姐!谢谢好
- ○ insert into,VB insert into 的用法
- ○ html css,CSS是什么?和HTML有什么区别?
- ○ jquery ajax,PCD刀具的焊接方法常用的有哪几个
- ○ 万维网联盟,万维网是什么意思
- ○ php手册,PHP+MySQL完全学习手册的图书目录
- ○ background-color,background和background-Color的区别介绍
- ○ css手册,什么是CSS样式表?
最新文章
- ○ w3school,w3school和w3cschool两个网站有什么关系和区别
- ○ w3c,W3C是干什么的?
- ○ w3,营养学中的常用英文缩写及其含义,跪求各位大哥大姐!谢谢好
- ○ insert into,VB insert into 的用法
- ○ html css,CSS是什么?和HTML有什么区别?
- ○ jquery ajax,PCD刀具的焊接方法常用的有哪几个
- ○ 万维网联盟,万维网是什么意思
- ○ php手册,PHP+MySQL完全学习手册的图书目录
- ○ background-color,background和background-Color的区别介绍
- ○ css手册,什么是CSS样式表?