字符串匹配问题

intfree 2002-03-21 07:51:30
串A1是由长度为a1的串s1重复b1次得来的
串A2是由长度为a2的串s2重复b2次得来的

已知:
a1*b1>=a2*b2>=2*a1
(a1,a2)=1
串A2是串A1的前缀

能否证明:
串A1和串A2只能包含某一个字符。


说明:
如果把条件a2*b2>=2*a1,改为a2*b2>=a1,结论就明显不成立了。
比如
s1='abaab', b1=2
s2='aba', b2=2
满足要求,但串A1和串A2包含了两个字符('a'和'b')
...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
intfree 2002-03-22
  • 打赏
  • 举报
回复
受mathe的启发,我想了一个证明:

函数f(x),x是自然数
已知周期为a,0<b<=a,当1<=k<=2a-b时,f(k)=f(k+b)
则f(2a-b+1)=f(a-b+1)=f(a+1)=f(2a+1)
f(2a-b+2)=f(a-b+2)=f(a+2)=f(2a+2)
...
用归纳法易证b也是函数f(x)的周期

故(a,b)是函数f(x)的周期。
mathe 2002-03-22
  • 打赏
  • 举报
回复
这是函数的周期问题。
也就是函数f:[1..2*a1] --> 字母表
有两个周期,a1和a2,按照数学的理论,(a1,a2)也是这个函数的周期,
也就是以1为周期。
所以这个函数是常数。
intfree 2002-03-22
  • 打赏
  • 举报
回复
在starfish(海星)的例子中,a1=a2=2,故(a1,a2)=2,不满足条件。
结论应该是肯定的,但还没想出证明的方法。
intfree 2002-03-21
  • 打赏
  • 举报
回复
(a1, a2) = 1 means the greatest common divisor of a1 & a2 is 1.
i.e. a1 & a2 are relatively prime.
starfish 2002-03-21
  • 打赏
  • 举报
回复
sorry (a1,a2)=1是什么意思?
starfish 2002-03-21
  • 打赏
  • 举报
回复
好像不对呀,或者是我理解错了你的意思?
取 A1 = abababab, 这里s1=ab, a1=2, b1=4
A2=ababab,这里s2=ab,a2=2,b2=3
满足你上面的所有条件呀

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧