方程 a*b = (a or b) * (a and b),
vb吧
全部回复
仅看楼主
level 3
地平线0217 楼主
方程 a*b = (a or b) * (a and b),在 a,b 都取 [0, 31] 中的整数时,共有_____组解。(*表示乘法;or 表示按位或运算;and 表示按位与运算)
答案是454,请问大神如何理解此题,另外有没有详细点的解题步骤啊???
不胜感谢!!
2019年06月23日 02点06分 1
level 11
双重循环一个个试
2019年06月23日 03点06分 2
OK,谢谢解答![呵呵]!
2019年06月24日 01点06分
level 11
同意楼上的建议
2019年06月23日 04点06分 3
不过说真的,虽然这种方程也成立,但真的少见。
2019年06月23日 04点06分
另外我怎么算出来比你多了一对,是455对呢
2019年06月23日 04点06分
2019年06月23日 12点06分
@贴吧用户_02EJyXU 哦,那可能我从1开始,不是从0开始的
2019年06月23日 14点06分
level 11
2019年06月23日 11点06分 4
感谢,感谢!!
2019年06月24日 01点06分
level 15
0~31就是5位二进制数
然后,满足这个等式的a,b两数满足如下关系:一个数中是1的位,在另一个数中也都是1
举例:3和7,分别是00011和00111,3的两位1在7中也是1;3和5,分别是00011和00101,就不满足这个关系
然后,我们只要根据其中一个数中1的位数进行分类,用组合数求出每一类的个数,然后乘以每一类对应的满足关系的数字个数,就可以得到结果
比如:有1位1的数,有C(5,1)=5个,对应的满足关系的数有两种情况:这一位是1,另外4位任意,有2^4=16个;另外4位是0,这一位任意,有2^1=2个;再减去重复计算的两数相等的1种情况;最终得到这类数字对应的满足等式的数字对有C(5,1)*(16+2-1)=85个
以下是完整的计算式:
C(5,0)*(32+1-1)+C(5,1)*(16+2-1)+C(5,2)*(8+4-1)+C(5,3)*(4+8-1)+C(5,4)*(2+16-1)+C(5,5)*(1+32-1)
2019年06月23日 12点06分 5
真的非常感谢,恍然大悟![真棒]!
2019年06月24日 01点06分
tql
2019年09月08日 03点09分
帮助很大。非常感谢![大拇指]
2019年09月08日 03点09分
orz!
2019年09月11日 14点09分
level 1
太强了
2019年09月07日 09点09分 6
level 11
2019年09月13日 21点09分 7
这个结果显然是错误的,为什么呢?因为代码里出现了不该出现的i和j
2019年09月14日 01点09分
level 11
2019年09月14日 05点09分 8
请看一下我的VB求助贴吧500小时处在480小时和540小时两个数字之间,而480对应的修理费为493,540对应的为544,那么根据内插法,500小时对应的数字为x 就可以列方程为:(500-480)/(540-480)=(x-493)/(544-493),解这个方程,即可得出
2019年09月14日 09点09分
1