题意是a,b在0到31中取值,问ab无序对满足a*b=(a|b)*(a&b)的数量。
打表找规律后,发现a包含于b或b包含于a时,合法,来证明一下这个结论。
不失一般性,设a小于等于b。
有恒等式a|b=a+b-(a&b)
设a&b=z
a*b=(a+b-z)*z
易知z<=a
若z=a
a*b=b*a符合条件,此时a是b的子集
若z<a
有(a+b-z)>b
又因z<a
由某很显然的不等式,若两自然数和相等,那么越接近,值严格递增。
所以(a+b-z)*z<a*b
上述结论已经很显然了。