• 腾讯AB题


    1-20的两个数把和告诉A,积告诉B,

    A说不知道是多少,

    B也说不知道,

    这时A说我知道了,

    B接着说我也知道了,

    问这两个数是多少?

    分析:

    设和为S,积为M。

    首先,A:我不知道。

    说明:S可以分解成多个组合,而2=1+1,3=1+2,40=20+20,39=19+20,只有一种分解方式,因此S应属于[4,38]集合。

    其次,B:我也不知道。

    说明:M也可以分解成多个组合,因此M不是质数。

    再者,A:我现在知道了。

    说明:S分解方式中只有一个相乘之后是合数,其他分解方式相乘之后都是质数。这样,A才能根据B说不知道,而排出所有相乘是质数(M是质数,分解方式只有一种:1*质数)的可能,剩下的一个相乘之后是合数的组合就是A所得到的解。

    而相乘之后是质数的:只有1*质数 = 质数!

    1-20的所有质数:T = {2, 3, 5, 7, 11, 13, 17, 19}。

    设x为T中的任意一个质数。那么,S的可能取值集合:{2+1, 3+1, 5+1, 7+1, 11+1, 13+1, 17+1, 19+1},即:SS = {3, 4, 6, 8, 12, 14, 18, 20}

     S= 3时:3不在【4,38】集合,排除;

    S= 4时:4=2+2=1+3,(2,2)相乘为4(非质数,满足条件),(1,3)相乘为3(质数,排除);

    S= 6时:6=1+5=2+4=3+3,相乘分别为5,8,9,出现两个合数,排除;

    其他值都是存在多个合数分解的情况,因此均排除了。

    因此,A得到的解是2和2.

    最后,B:我也知道了。

    说明:B根据自己已知的M值,站在A的立场思考,能够获得M=4的结果,现在验证如下:

    M=4=2*2=1*4,相加结果为4,5.而5不在SS集合之中,因此结果为2和2.

    因此,最终答案为2和2.

    以上给出的分析是假设这两个数是可以相同的。
    如果认为这两个数不同,那又应该是哪两个数呢?
    还是按照上面的步骤来进行分析:
    首先,A:我不知道。
    说明:S有多个分解方式。S属于【5,37】.
    其次,B:我不知道。
    说明:M有多种分解方式。
    再者,A:我知道这两个数了。
    说明:

    S分解方式中只有一个相乘之后是合数,其他分解方式相乘之后的积仅有一种分解方式!这样,A才能根据B说不知道,而排出所有相乘是质数(M是质数,分解方式只有一种:1*质数)的可能,剩下的一个相乘之后是合数的组合就是A所得到的解。

    那么,S的可能取值集合:{3,4,5,......,37}

     S= 3时:3不在【5,38】集合,排除;

    S= 4时:4=1+3,只有一种分解方式,排除;

    S=5时:5=1+4=2+3,相乘分别为4,8,4=1*4仅有一种分解方式排除,8=1*8=2*4满足,得到一个解。

    S= 6时:6=1+5=2+4,相乘分别为5,8,显然也满足。

    其他值都是存在多个合数分解的情况,因此均排除了。

    因此,解为2和3 或 2和4

    最后,B:我也知道了。

    说明:

    B站在A立场得知结果。验证如下:

    如果为2和3,则积为6,和为5。此时,5=1+4=2+3,4仅有一种分解方式,A能够确定为2和3;6=1*6=2*3,相加为7,5,此时7=1+6=2+5=3+4,相乘后为6,10,12,无法确定唯一解,舍掉1,6的解;而5=1+4=2+3,相乘后为4,6,舍掉4,有解2和3.

    如果为2和4,则积为8,和为6.此时,6=1+5=2+4,5仅有一种分解方式,A能够确定为2和4. 8=1*8=2*4,相加为9,6,此时9=1+8=2+7=3+6=4+5,无法确定唯一解,舍掉1和8的解;而6=1+5=2+4,相乘后为5,6,舍掉5,有解2和4.

    因此,最终解为2和3 或 2和4 。

  • 相关阅读:
    python系列之
    php正则:匹配(),{},[]小括号,大括号,中括号里面的内容
    TCP、UDP以及HTTP的简单讲解
    Python Async/Await入门指南
    asyncio并发编程
    python中socket模块详解
    TCP和UDP的优缺点及区别
    网络通信 --> IO多路复用之select、poll、epoll详解
    异步IO和协程
    Python--多任务(多进程,多线程,协程)
  • 原文地址:https://www.cnblogs.com/beipiaoboy/p/3259784.html
Copyright © 2020-2023  润新知