软件测试面试题:猜数字-2

猜数字-2

老师从1~50之间(大于1小于50)选了两个自然数,将两数之积

告诉同学P(Product),两数之和告诉同学S(Sum),问两位同学能

否推出这两个自然数?

S说:我知道你不知道这两个数,但我也不知道。

P说:我还是不知道。

S说:我知道这两个数啦!

P说:我也知道啦!

其他同学:我们也知道啦!

……

问:老师选出的两个自然数是什么?

分析与解答

说话依次编号为S1,P1,S2,P2。

设这两个数为x,y,和为s,积为p。

由S1,P不知道这两个数,所以s不可能是两个质数相加得来的,而且s=29,因为如果s29,那么P拿到29´(s-29)必定可以猜出s了。所以和s为{11,17,23,27,29}之一,设这个集合为A。

由P1,乘积p必定含有因子2,而且含有两个质因子,而且最大的质因子不可能大于7,(假如含有因子11,就会有p至少是11´2´3,拆成11´6或者22´3不满足条件,假如含有因子13,就会有p至少是13´2´3,拆成13´6或者26´3也不满足条件),这条规则有助于简化和s的拆分。

(1)假设s=11。

11=2加9=5加6,有18=2´9=3×6,只有2加9落在集合A中,P不会说出P1。而30=5´6=2´15,11和17都落在集合A中,所以只有这一种情况会令P说P1,所以S拿到11可以断言S2。但是问题在于P会说出P2的话,必须要s=17时S说不出S2才行。

下面看看s=17的情况,17=2加15=3加14=5加12=7加10= 8加9,由于p=2´15=5´6或p=3´14=2´21都会令P说出P1,所以s=17时S说不出S2。

所以s=11,p=30,这两个数是5和6的时候满足条件

(2)假设s=23,23=2加 21=3加20=5加18=8加15=9加14,由于p=9´14=6´21或p=3´14=2´21都会令P说出P1,所以s=23时S说不出S2。

(3)假设s=27,27=2加25=3加24=6加21=7加20=9加18=12加15,由于p=6´21= 9´14或p=12´15=9´20都会令P说出P1,所以s=27时S说不出S2。

(4)假设s=29,29=2加27=4加25=5加24=8加21=9加20=14 加15,由于p=9´20=12´15或p=5´24=15´8都会令P说出P1,所以s=27时S说不出S2。

综上所述:这两个数只可能是5和6。


个人简介


我是一名测试兼开发工程师,目前25K,目前做的是无人驾驶,欢迎和大家一起交流测试技术,一起高薪就业,我们还有一起打妖怪的群哦,还有面试题小程序哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

面试题库test

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值