计算机内部都以二进制字符表示信息.若u=(a1,a2,…,an),其中ai=0或1(i=1,2,…,n),则称u是长度为n的字节;设u=(a1,a2,…,an),v=(b1,b2,…,bn),用d(u,v)表示满足ai≠bi(i=1,2,…,n)的i的个数.如u=(0,0,0,1),v=(1,0,0,1),则d(u,v)=1.现给出以下三个命题:
①若u=(a1,a2,…,an),v=(b1,b2,…,bn),则0≤d(u,v)≤n;
②对于给定的长度为n的字节u,满足d(u,v)=n-1的长度为n的字节v共有n-1个;
③对于任意的长度都为n的字节u,v,w,恒有d(u,v)≤d(w,u)+d(w,v).
则其中真命题的序号是( )
A.①
B.①②
C.①③
D.②③
①我们知道:u=(a1,a2,…,an)与v=(b1,b2,…,bn)中,ai与bi(1≤i≤n)可都不相同,亦可都相同,
故0≤d(u,v)≤n,因此①正确;
②设若u=(a1,a2,…,an),其中ai=0或1(i=1,2,…,n),令v=(b1,b2,…,bn),其中bi=0或1(i=1,2,…,n),
我们知道:当|ai-bi|=0时,表示 ai与bi相同;而当|ai-bi|=1时,表示 ai与bi不相同.
已知v满足d(u,v)=n-1,表示|ai-bi|=1中的i的个数为n-1,而|ai-bi|=0中i的个数为1,
故适合条件的v的个数为n,因此②不正确.
③设u=(a1,a2,…,an),v=(b1,b2,…,bn),w=(c1,c2,…,cn),
d(u,v)=h,d(w,u)=k,d(w,v)=m.
由d(w,u)=k表示|ai-ci|=1中i的个数为k;由d(w,v)=m表示|bi-ci|=1中i的个数为m;
由d(u,v)=h表示|ai-bi|=1中i的个数为h.
设t是使|ai-ci|=|bi-ci|=0成立的i的个数,可验证无论ci=0,还是ci=1,
则都有||ai-ci|-|bi-ci||=|ai-bi|=0,
∴h=k+m-2t,∴h≤k+m.
因此对于任意的长度都为n的字节u,v,w,恒有d(u,v)≤d(w,u)+d(w,v).所以③正确.
故选C.