一道经典面试逻辑题的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的最小量纲是多少,笔者能保证人至多有本人receive 接收吗

节目缓慢地。,让n从10到9横穿一次,看你从在那时开端听说输入

达到的结语是:n至多有64个receive 接收,(4,13)

(2) 因而发射n,延伸详述,会有更多的receive 接收吗

假使延伸扩展到2-99,居第二位的个receive 接收4,61。各种的可以考虑一下为什么延伸在2-99的时分无呈现这样地解

延伸已扩展到2-9999,先前停下了13个receive 接收,分莫非: 

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]

发表评论

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