NOIP2018年初赛试题问题求解2解析

题面:
方程 a*b = (a or b) X(a and b),在 a,b 都取 [0, 31] 中的整数时,共有_____组解。(X表示乘法;or 表示按位或运算;and 表示按位与运算)
解析(思路来自网络):
  0~31就是5位二进制数,满足这个等式的a,b两数满足如下关系:一个数中是1的位,在另一个数中也都是1.
  举例:3和7,分别是00011和00111,3的两位1在7中也是1,3 or 7 = 7 ,3 and 7 = 3,满足题目关系式;但是如3和5,分别是00011和00101,就不满足这个关系。
  因此,我们只要根据其中一个数中1的位数进行分类,用组合数求出每一类的个数,然后乘以每一类对应的满足关系的数字个数,就可以得到结果.
  比如:有1位1的数,有C(5,1)=5个,对应的满足关系的数有两种情况:这一位是1,另外4位任意,有24=16个;另外4位是0,这一位任意,有21=2个;再减去重复计算的两数相等的1种情况;最终得到这类数字对应的满足等式的数字对有:C(5,1)X(16+2-1)=85个
  以下是完整的计算式:
C(5,0)X(32+1-1)+C(5,1)X(16+2-1)+C(5,2)X(8+4-1)+C(5,3)X(4+8-1)+C(5,4)X(2+16-1)+C(5,5)X(1+32-1)=454

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值