我们称正整数为好数,如果的二进制表示中1的个数多于0的个数,如6=(110)2为好数,1984=(111 11 00...

日期:2013-03-08 14:25:02 人气:3

我们称正整数为好数,如果的二进制表示中1的个数多于0的个数,如6=(110)2为好数,1984=(111 11 00...

先求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个. 第二种情况其实是不可能的. 因
    A+
热门评论