我们称正整数为好数,如果的二进制表示中1的个数多于0的个数,如6=(110)2为好数,1984=(111 11 00...
我们称正整数为好数,如果的二进制表示中1的个数多于0的个数,如6=(110)2为好数,1984=(111 11 00...
日期:2013-03-08 14:25:02 人气:3
先求2至2047 = (111 1111 1111)之间的好数.
考虑变换: 保持首位的1不变, 将其后的0变为1, 1变为0.
易见2至2047的数在这样的变换下两两配对.
配对的情况有三种: 两个数都是好数, 两个数都不是好数, 两个数中恰有1个好数.
第一种情况要求二进制位数为奇数, 且除首位为1外, 后面的各位0, 1各半.
这样的数有C(2,1)+C(4,2)+C(6,3)+C(8,4)+C(10,5) = 2+6+20+70+252 = 350个.
第二种情况其实是不可能的.
因