首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一道字符串证明题,想了N天了

2014-06-09 
求助一道字符串证明题,想了N天了.三个字符串X,Y,Z,怎么证明如果XY

求助一道字符串证明题,想了N天了.
三个字符串X,Y,Z,怎么证明
如果XY <YX,YZ <ZY的话,那么有XZ <ZX
这里XY间是字符串连接操作, <为字符串大小比较.  

or   有反例说明该命题错误.

[解决办法]
如果XY <YX,YZ <ZY的话,那么有XZ <ZX,
是不是xy <yx就一定是,x <y?
如果是,那么是不是x <y,y <z,所以x <z,这是思路,怎么用代码实现我就更不知道了
[解决办法]
strcmp?
[解决办法]
xy <yx等价于x <y.
同理y <z.
于是x <z
等价于xz <zx.
[解决办法]
命题是正确的
首先XY <YX 可以得到X <Y (显然)
同理可以得到Y <Z 那么有X <Z
如果X不是Z的子串,那么显然有XZ < ZX

下面讨论都是在X是Z的子串情况下
分以下四种情况讨论
1、如果X不是Y的子串,Y不是Z的子串
2、如果X不是Y的字串,Y是Z的子串(这种情况在X是Z的子串情况下可以不用考虑)
3、如果X是Y的子串, Y不是Z的子串
4、如果X是Y的子串, Y是Z的子串

1、2两种情况很容易证明,关键是第3、4种情况

3、设X=AB,Y=ABC , Z=ABD
XY <YX -> ABABC <ABCAB -> C> A
YZ <ZY -> ABCABD <ABDABC -> D> C
从而可以知道D> C> A
那么就有 ABABD <ABDAB -> XZ < ZX

4、设X=AB, Y =ABC , Z=ABCD
XY <YX -> ABABC <ABCAB -> C > A
YZ <ZY -> ABCABCD <ABCDABC -> D> A
XZ = ABABCD ZX = ABCDAB C> A -> XZ <ZX

潦潦草草写的,要是有不严密的地方,帮忙指出一下

[解决办法]
xy <yx等价于x <y.
==========================
不对的:
x = "cba " y= "cb "
xy = "cbacb " < yx = "cbcba "
但 x > y
[解决办法]
(1),xy <yx => xyz <yxz
(2),yz <zy => yxz <zxy
(3),xy <yx=> zxy <zyx
(4),由(1)(2)(3)xyz <yxz <zxy <zyx ==> xyz <zyx
所以xz <zx

2字符串相等位置去掉相同子串相等
[解决办法]
不是相等,使次序不变..

[解决办法]
首先,我们建立任意字符串和从0到1之间实数(区间为[0,1))的一一对应关系。建立了这种关系,使得字符串的比大小变为实数的比大小。具体过程是:把字符集中的每一个符号看为数字,如果字符集的大小是n,那么就是n进制了。然后,在字符串的开头加上0和小数点,这样就实现了一一对应了。
我们假定字符串X和Y分别对应于实数x和y,那么连接后的XY对应于x+y*Cx,其中Cx是和字符串X长度相关的系数,它也是小于1的实数。
这样子,题目的已知条件就是x+y*Cx <y+x*Cy和y+z*Cy <z+y*Cz,要求证的就是x+z*Cx <z+x*Cz。
我们注意到两个已知条件可以变为x(1-Cy) <y(1-Cx)和y(1-Cz) <z(1-Cy),把它们相乘,然后约掉一些东东,恰好得到x(1-Cz) <z(1-Cx),就是要证明的了。

[解决办法]
xy <yx等价于x <y.
同理y <z.
于是x <z
等价于xz <zx.

热点排行