一道经典面试逻辑题的python解法 – weixin_40097620的博客

开端:

好早先前查看的每一逻辑题:在2到99当中有两个必需的,A晓得这两号码字的和,B晓得这两号码的结果。

第一位句:A对B说:我不晓得这两号码字是什么,但我置信你不晓得。

其次句:b说:我晓得了。

第三句话:a说:我也晓得。。

这两号码字是什么? 这并不难。,这最好的一种不注意python顺序的手工生产感觉最敏锐的地方查找办法。,python顺序可以在未来较远的摸索。。

剖析:

率先,一手上的数字是两号码字的和,在[4]中,198]当中。

第一位句剖析:A确信B不晓得这两号码字

(1)

比如,A手击中要害数字是8,乃,所需的两号码字可能性是(2,6),(3,5),(4,4)这三种使习惯于,B手中对应的数字大概是12。,15,16这三种使习惯于,这是从。

但复杂的剖析,第一位句话 A确信B不晓得这两号码字字是多少。因而B上的数字不克不及是15。,为什么?因15执意每一腐烂(乘以两个质数):3*5。假设B手上有15个,因而B必需晓得这两号码字是3和5。

以后就可以剖析了。 a 在手边的数字一定过错8, 因A在手里有8个字,B手击中要害三个可能性的景象(12,15,16) 内部的15个,B有可能性算出这两号码字是什么。,A确信B不晓得,因而我们家可以脱掉8个。。

较远的,即将到来的每一能免除什么数字呢?经过从一边至另一边剖析,

可以吸引 后记(1):A是不克不及腐烂成两个质数的和,某一可以腐烂成两个质数积和的使习惯于,B你晓得这两号码字

最大的python编码:

ASUM1在汉民随身有很多可能性,54个(脱掉了that的复数能腐烂成两个素数的数)

(2)

下面的54可能性都是怪人。,不注意偶数。

较远的剖析:a 在号码无法写信(53 2*x,x>=2)这种排队,因假设能把它腐烂成,b=53*2*x,因两号码字以内或总额99,53*2>99了,执意每一腐烂使习惯于,2*x,以后B晓得这两号码字。

因而后记(2):第每一素数(53)大于下限/2(99/2),3(56)过后的数字除外。。

为是什么 3,因2*x的最低的是4

因而在第一位句话过后,掌管数字ASUM2 SE 而且11个。

[11, 17, 23, 27, 29, 35, 37, 41, 47, 51, 53]   <-asum2

腐烂它们,乘法归因于一组粗糙的:

其次句剖析:b晓得了

B在什么使习惯于下我们家可以即将到来的说?

比如,b =24, 以后可能性腐烂(2,12),(3,8),(4,6)2例,因而在附近 A是14。,11和103例,这是从B的角度。

我首先剖析即将到来的多的可能性性来吸引A的其他节:[11, 17, 23, 27, 29, 35, 37, 41, 47, 51, 53],为了集中的意义是当a有这些数字时,a敢说,换句话说,每一人权岂敢说这些话。

因而24被腐烂归因于 14,11和103例:14,10外出可能性的集中中,11在可能性的珍藏中。

11是可能性的集中中只的每一,因而B可以剖析A手上的数字是11,因假设是在旁边两号码字,岂敢说第每一字。

以后吸引后记:这两号码字都被腐烂了:(2,12),(3,8),(4,6)身分和eg:14,11和10, 在且仅分娩

在其次句话B过后,在手边可能性有102号码字,蓄电在BMUL1中

第三句话话剖析:A我广阔了。

与其次个sentenc相等的的剖析,a为什么能晓得?只的可能性性执意a手上的数的腐烂后结合的积有且执意一种使习惯于在集中bmul1里(其次句话算出的集中b)

现时执意每一产生。。

输入产生


很的诡计到这点为止,他日可以启动某一反照。

(1)鉴于吸引的后记是4和1,不要太大。,使习惯于是2-99。,能缩减使习惯于的搜索吗,比如,装备2-20以缩减运动的的纠葛。,说到底,计算量要少得多。在顺序中,初始使习惯于可以直线从99更顶替20。,产生,不注意显示证据两号码字适合询问。。为什么呢?

报告是虽然4和13以内20,但A查看了17。,因而可以分为8和9,从A的角度视图,B的数量可能性是72。,同时在b的视角的可以腐烂成2*36,这36个一次超越20个。 

因而把诡计改成每一风趣的成绩,异样的会话,两号码字的搜索是2,N的最小重要是多少,我们家能担保无论如何有每一receiver 收音机吗

顺序停止划桨。,让n从10到9横穿一次,看你从究竟什么时分开端逮捕输入

归因于的后记是:n无论如何有64个receiver 收音机,(4,13)

(2) 因而进行n,搜索放大,会有更多的receiver 收音机吗

假设搜索扩展到2-99,其次个receiver 收音机4,61。人人可以商讨一下为什么搜索在2-99的时分不注意涌现为了解

搜索已扩展到2-9999,早已规定了13个receiver 收音机,分莫: 

1 两号码积和: 17 二号结果: 52

两号码字: [4, 13]

2 两号码积和: 65 二号结果: 244

两号码字: [4, 61]

3 两号码积和: 89 二号结果: 1168

两号码字: [16, 73]

4 两号码积和: 127 二号结果: 1776

两号码字: [16, 111]

5 两号码积和: 137 二号结果: 4672

两号码字: [64, 73]

6 两号码积和: 163 二号结果: 4192

两号码字: [32, 131]

7 两号码积和: 179 二号结果: 2608

两号码字: [16, 163]

8 两号码积和: 185 二号结果: 724

两号码字: [4, 181]

9 两号码积和: 191 二号结果: 8128

两号码字: [64, 127]

10 两号码积和: 233 二号结果: 916

两号码字: [4, 229]

11 两号码积和: 247 二号结果: 1912

两号码字: [8, 239]

12 两号码积和: 343 二号结果: 9952

两号码字: [32, 311]

13 两号码积和: 373 二号结果: 19776

两号码字: [64, 309]

发表评论

电子邮件地址不会被公开。 必填项已用*标注