部分字符串位置检测装置、部分字符串位置检测方法及程序与流程

文档序号:12513452阅读:来源:国知局

技术特征:

1.一种部分字符串位置检测装置,以长度n的文本t的秘文〔t〕、长度m的模式p的秘文〔p〕、长度m的向量c的秘文〔c〕及m行n列的矩阵E的秘文〔E〕为输入,输出m行n列的矩阵H的秘文〔H〕,其中,

p[i]为所述模式p的第i个要素,t[i]为所述文本t的第i个要素,c[i]为所述向量c的第i个要素,E[i][j]为所述矩阵E的第i行j列的要素,H[i][j]为所述矩阵H的第i行j列的要素,

所述向量c为,在p[i]不是表示任意长度的字符串的无限长度间隔的情况下,设定c[i]=1,否则设定c[i]=0的向量,

所述矩阵E为,如果c[i]=0或p[i]=t[j],则设定E[i][j]=1,否则设定E[i][j]=0的矩阵,

所述矩阵H为,p[i]是以所述无限长度间隔分割了所述模式p的部分字符串的先头的要素、且如果所述部分字符串在所述文本t的第j个位置出现,则设定H[i][j]=1,如果除此以外,则设定H[i][j]=0的矩阵,

所述部分字符串位置检测装置包含:

第一矩阵生成单元,其生成成为F[i][j]=E[i][j+i mod n+1]的m行(n+1)列的矩阵F的秘文〔F〕,其中,认为E[i][n]=¬c[i];

第二矩阵生成单元,其生成m行(n+1)列的矩阵F'的秘文〔F'〕,该秘文〔F'〕在c[i]=0的情况或c[i]=1且关于将k从i逐次加上1时连续为c[k]=1的所有的k为F[k][j]=1的情况下,设定F'[i][j]=1,如果除此以外,则设定F'[i][j]=0;

第三矩阵生成单元,其计算〔H[i][j]〕=〔F'[i][j-i mod n+1]〕∧〔c[i]〕∧¬〔c[i-1]〕,生成所述秘文〔H〕。

2.如权利要求1所述的部分字符串位置检测装置,其中,

将⊕

设为由

定义的二项运算,设为pi:=(c[i],ej[i]),

所述第二矩阵生成单元将通过下式计算的Si的第1个要素作为e’j[i]:

Si:=(((((pi⊕pi+1)⊕pi+2)⊕pi+3)…)⊕pm-1)。

3.一种部分字符串位置检测方法,以长度n的文本t的秘文〔t〕、长度m的模式p的秘文〔p〕、长度m的向量c的秘文〔c〕及m行n列的矩阵E的秘文〔E〕为输入,输出m行n列的矩阵H的秘文〔H〕,其中,

p[i]为所述模式p的第i个要素,t[i]为所述文本t的第i个要素,c[i]为所述向量c的第i个要素,E[i][j]为所述矩阵E的第i行j列的要素,H[i][j]为所述矩阵H的第i行j列的要素,

所述向量c为,在p[i]不是表示任意长度的字符串的无限长度间隔的情况下,设定c[i]=1,否则设定c[i]=0的向量,

所述矩阵E为,如果c[i]=0或p[i]=t[j],则设定E[i][j]=1,否则设定E[i][j]=0的矩阵,

所述矩阵H为,p[i]是以所述无限长度间隔分割了所述模式p的部分字符串的先头的要素、且如果所述部分字符串在所述文本t的第j个位置出现,则设定H[i][j]=1,如果除此以外,则设定H[i][j]=0的矩阵,

所述部分字符串位置检测方法包含:

第一矩阵生成步骤,第一矩阵生成单元生成成为F[i][j]=E[i][j+i mod n+1]的m行(n+1)列的矩阵F的秘文〔F〕,其中,认为E[i][n]=¬c[i];

第二矩阵生成步骤,第二矩阵生成单元生成m行(n+1)列的矩阵F'的秘文〔F'〕,该秘文〔F'〕在c[i]=0的情况或c[i]=1且关于将k从i逐次加上1时连续为c[k]=1的所有的k为F[k][j]=1的情况下,设定F'[i][j]=1,如果除此以外,则设定F'[i][j]=0;

第三矩阵生成步骤,第三矩阵生成单元计算〔H[i][j]〕=〔F'[i][j-i mod n+1]〕∧〔c[i]〕∧¬〔c[i-1]〕,生成所述秘文〔H〕。

4.如权利要求3所述的部分字符串位置检测方法,其中,

将⊕

设为由

定义的二项运算,设为pi:=(c[i],ej[i]),

所述第二矩阵生成步骤将通过下式计算的Si的第1个要素作为e’j[i]:

Si:=(((((pi⊕pi+1)⊕pi+2)⊕pi+3)…)⊕pm-1)。

5.一种程序,用于使计算机起到权利要求1或2所述的部分字符串位置检测装置的作用。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1