【NOIp2018TG笔试】问题求解2

题目大意:

填空:方程$ab=(a|b)(a\&b),a,b\in[0,31]$,共有      组解。

 

 

解答:

引理:$(a|b)+(a\&b)=a+b$

证明:

设$a=\sum2^{m},m\in{}M$且$b=\sum2^{n},n\in{}N$

则$a\&b=\sum2^{p},p\in{}P=M\cap{}N{}$且$a|b=\sum2^{q},q\in{}Q=M\cup{}N=M+N-P$

$\therefore{}P+Q=M+N$

$\therefore{}(a|b)+(a\&b)=a+b$

 

设$a|b=x$,则$a\&b=a+b-x$

代入原方程,得$ab=x(a+b-x)$

得$x_{1}=a,x_{2}=b$

 

$i$

若$x=a$即$a|b=a$

$\Leftrightarrow$对于每一个二进制位,都有$c_{a}|c_{b}=c_{a}$

$\therefore$有$5^{3}$组解

$ii$

当$x=b$时同理有$5^{3}$组解

 

注意到$i$和$ii$给出的解集有交集,为$\{<a,b>|a=b\}$,有$|I|=32$组。

$\therefore$答案为$2\times5^{3}-|I|=454$

 

 

小结

掌握该引理可使证明思路更清晰。

转载于:https://www.cnblogs.com/Hansue/p/10200387.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值