S先生与P先生谜题

P1563 [NOIP 2016 提高组] 玩具谜题 保证不会出现其他的数。现在第 1 个玩具小人告诉小南一个包含 m 条指令的谜题,其中第 z 条指令形如“向左数/右数第 s 个玩具小人”。小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;这时 singer 告诉小南一个谜题:“眼镜藏在我左数第 3 个玩具小人的右数第 1 个玩具小人的左数第 2 个玩具小人那里。输出一个字符串,表示从第一个读入的小人开始,依次数完 m 条指令后到达的小人的职业。 阅读详情

美国斯坦福大学的麦卡锡提出的

  设有两个自然数X、Y,2<=X<=Y<=99,S先生知道这两个数的和S,P先生知道这两个数的积P,他们二人进行了如下对话:

  S:我确信你不知道这两个数是什么,但我也不知道。

  P: 一听你说这句话,我就知道这两个数是什么了。

  S: 我也是,现在我也知道了。

  现在你能通过他们的会话推断出这两个数是什么吗?(当然,S和P先生都是非常聪明的)

  方法一:

  我把思路说一下吧

  1.s先生自己不知道x,y

  说明和数s不是4,5,197,198

  2.s先生知道p先生不知道x,y

  首先,什么样的数p先生可以知道呢?

  如s=8

  8=2*4 8=1*8 后者是不可能的( x,y>=2 )

  又如 s=25

  25=5*5 只有一种 

  这样p先生就能知道x,y

  这说明s分解后 s=M1+N1=M2+N2=.....

  M1*N1 分解成 乘积 的形式有 两种或两种以上,

  若 s=11 

  11=2+9 2*9=18 18=2*9=3*6

  11=3+8 3*8=24 24=2*12=3*8=4*6

  11=4+7 4*7=28 28=2*14=4*7

  这样s先生可以确定p先生不能知道x,y

  所以s先生知道的 和数s 是如下的数

  SA={ 11,17,23,27,29,35,37,41,47,51,53...}

  SA也不可以是29,因为29=7+11+11,则x,y=88,11,

  同样得到SA={11,17,23,27}

  3.p先生听了s先生的话后,知道了x,y

  我们可以想像p先生根据s先生的话,已经知道s先生知道的和数是集合SA中的数

  若自己所知道的乘积p分解成m*n后 其中有一个(m+n)是集合SA中的数

  则 m,n就是所求的数x,y

  如 p=18

  18=2*9 2+9=11

  18=3*6 3+6=9

  11属于SA

  x,y就是 2 和 9

  若p=72

  72=2*36 2+36=38

  72=3*24 3+24=27

  ......

  72=8*9 8+9=17

  其中27,17都属于SA

  于是72被排除了

  所以p先生所知道的乘积是如下

  pb={18,24,28,30,50,52,....}

  所知道的x,y是乘积在pb中,且 乘积分解后的两数的和只有一个 在SA中的数对,记为

  XY={(x1,y1),(x2,y2),.....}

  4.s先生也知道了x,y

  可以知道,这时s先生也知道p先生知道的数的范围XY

  如果s分解后的两数s=m+n,(m,n)只与XY中的一个数对相同

  这样,s先生也就找到了x,y ,但是没有这样的数。

  方法二:

  我看到过答案,这是根据我的理解写下的

  1、S:我确信你不知道这两个数是什么,但我也不知道。

  为什么s先生这么确定?换句话说P先生得到怎样的组合就能立刻知道mn的值呢?

  先看看哪些情况下p先生能立刻得到答案

  (1)mn不能同时为质数。

  mn为质数,那么他们的乘积分解成两个因子乘积的可能性就唯一了,那么P先生就会立刻得知mn的值。

  譬如34=1*34=2*17,因为nm是大于等于2的,那么1*34这样的组合是不可能的,那么mn就是2和17。

  Mn不为质数,那么他们可能之中有1个质数,或者2个同为合数。

  (2) 如果mn中有一个质数,那么那个质数不会大于50

  如果mn有一个大于50,那么他们分解成两个因子乘积的可能性中,其他的分解方式都会有一个因子会超过100,然么分解方式必然会被P排除,那就只剩下一种方式,P也就立刻知道答案。

  譬如318 = 6*53 = 3*106 = 2*159,因为mn小于等于99,那么后两种可能性肯定被排除。mn就肯定是6,53。

  (3) 如果mn都是合数,那么都不会大于50

  理由同上。可就是P分解因子,只有一种情况下mn是小于100的,其他情况mn必有一数大于等于100。

  其实mn的积也不会是8或者27,因为8 = 2*4 27=3*9,分解因子也就一种情况

  Mn的值在以上情况下P先生可以立刻知道答案,那么也就是说S先生看到mn的和可以立刻推理出mn不可能存在上述的情况

  (4)S不能分解成三个这样的质数之和:

  如果S=29=7+11+11.那么X,y=11,88,或7,121 后面一种不符合。

  又如果S=35=7+11+17,那么x,y=7,187或11,119或17,88 前面两种不符合。

  (1)S肯定是奇数

  S肯定是奇数,如果s是偶数,那么mn有可能是质数。(原作者引用了哥德巴赫猜想:每一个大于2的偶数都是两个素数的和。虽然这个猜想没有证明,但是在100范围以后可以实验证明这个猜想是正确的。如果有例外的话,这个猜想也就不会这么有名了。也就是说4-100范围以内的偶数都可以用两个质数的和表示。)

  (2)mn的和不能大于54

  这个推测的依据是建立在上面2、3之中的。因为S先生确信P先生不知道mn的值,所以2、3的情况是不会从mn的和中反应的。

  (3)S-减去2的值不是质数

  在质数中,2是一个特例,他是质数中唯一的偶数。既然mn不能同时为质数,那么s减去2的值也就不是质数了。

  (4)S不等于29,35,37,41,47,51,53.

  有上得S只能取11,17,23,27。

  2、P: 一听你说这句话,我就知道这两个数是什么了。

  P先生和我们一样,现在知道mn的和就只有上面的可能了。他只要把mn的积分解两个因子乘积,所有可能性中,有且只有一组的可能性中两个因子的和刚好是上面11个数中的一个,那么P先生就知道mn的值了。

  假设P = 30 = 5*6 = 2*15,而5+6=11,2+15 =17,11和17都在上面11个数之中,那么P先生就无法判断mn到底是哪组数。所以P就不会等于30。

  既然知道P先生的判断方法,现在就从11个数出发,一个个的推导。

  3、S: 我也是,现在我也知道了。

  S先生根据P先生的话知道了mn的积分解因子,只有一组的因子之和为11个数中间的一个。而S先生同时也立刻知道mn的值。我们可以推断,如果把mn之和拆成数个由一个奇数和一个偶数的组合,只有一个组合符合下面的条件:这个奇数和偶数的乘积符合第2条P先生的判断,也就是把这个积分解成两个因子乘积,所有分解情况中,有且只有一组的情况中两个因子的和刚好是上面11个数中的一个。这样S先生也就能知道mn的值了

  我们只要把11个数拆成若干种奇偶组合,如果有2个或者2个以上的组合满足P先生判断条件,那么这个数就不是mn的和。:

  (1)11 = 2+9=4+7=6+5=8+3

  2*9 = 18 = 3*6,3+6=9不在10个数中,那么2*9符合。

  4*7=28=2*14,前面说过mn是一奇一偶,2*14不考虑,4*7符合。

  6*5=30=2*15,而6+5=11,2+15=17,两个数都在11个数中,那么P先生是无法判断,所以这个组合可以略过。

  8*3 = 24 = 2*12=4*6,,那么2*12,4*6不用考虑,8*3符合

  现在有3组数字符合,那么11就不是mnd的和了

  从上面看,如果把11拆成2的次方和一个质数的组合,那么只有一种分解是一奇一偶,其他的情况都是2个偶数。(4,7) = (2^2,7),(3,8) = (3,2^3),这样的组合分解就具有唯一性,就能满足我们的要求。11可以拆成2个这样的组合,11就可以排除了。

  (2)23 = 2^2+19 = 2^4+7

  27 = 2^2+23 = 2^3+19

  上面是数可以拆成2组2的次方和一个质数,也就是有2组符合P先生的判断,故这些数可以排除,那就只剩下17,29了

  (3)29 =16+13=2+27

  2*27 = 54 =3*18=6*9,符合

  16*13 是2^4和13,13是质数,肯定符合

  29有2组符合,所以29排除。

  (4)现在就只剩下17了。

  17=4+13=6+11=7+10=8+9

  4*13=52,6*11=66,7*10=70,8*9=72都只有一组符合。排除故无解。

S先生与P先生谜题(C++) 题目:S先生与P先生谜题 设有两个自然数X、Y,2<=X<=Y<=99,S先生知道这两个数的和S,P先生知道这两个数的积P, 他们二人进行了如下对话: * S: 我确信你不知道这两个数是什么,但我也不知道。 * P: 一听你说这句话,我就知道这两个数是什么了。 * S: 我也是,现在我也知道了。 立即下载

相关推荐

SpringBoot+Vue实现图片上传

SpringBoot+Vue实现图片上传

叶♥璃 2730

黑色数学118关

黑色数学118关 先直接报答案 X=4 Y=13 X和Y是两个整数,且满足2<=X<=Y<=99 甲知道两个数的和,乙知道两个数的积。 一、甲:你不知道这两个数是什么,我也不知道。 二、乙:我现在知道了。 三、甲:我现在也知道了。 那么X和Y分别是多少? 代码先放这 有空再写注释 主要思路就是,乙的数不能有唯一因式分解方法(如9=33,或者9801=9999),慢慢往前推 `...

weixin_43000172的博客 4726

Unity3d 编译发布到安卓平台时出现的问题集

环境搭建好了,android SDK也有了,但导出的时候提示Error building Player: Win32Exception: ApplicationName='java.exe'....... 国内好像没看到解决方法。在Unity3d的论坛里面看到一个解决方法,把C:\windows\system32\java.exe复制到C:\Windows\SysWOW64里面,我这里就解决

erictang01的专栏 1772

S先生与P先生谜题及我的解

上星期六晚,帮我哥哥找逻辑题时,发现的这道题的。这道题目来自美国斯坦福大学的麦卡锡教授----S先生与P先生谜题。题目:S先生与P先生谜题 设有两个自然数X、Y,2S:我确信你不知道这两个数是什么,但我也不知道。P: 一听你说这句话,我就知道这两个数是什么了。 S: 我也是,现在我也知道了。现在你能通过他们的会话推断出这两个数是什么吗?(当然,S和P先生都是非常聪明

胡洲的专栏 3492

手把手教你用Siemens EDA破解工具搞定PADs VX2.7安装与卡死问题

本文详细介绍了如何使用Siemens EDA工具解决PADs VX2.7的安装与卡死问题。从License配置到性能调优,提供全面的解决方案,帮助工程师高效完成电子设计自动化任务。特别针对常见的卡顿现象,给出了输入法兼容性调整、图形性能优化等实用技巧。

k8l9m0n的博客 549

Unity 多线程编程笔记 _Task详解

士大夫

weixin_43405845的博客 4384

SP之问——经典

设有两个自然数X,Y,2 S:我确信你不知道这两个数是多少,但我也不知道。 P:一听你这句话,我就知道这两个数是什么了。 S:我也是,现在我也知道了。 现在你能通过他们的话推断出这两个数是多少吗?(当然,S先生和P先生都是非常聪明的。) 第一句话的分析 S先生第一句话,“我确信你不知道这两个数是多少,但我也不知道。”那么,在什么条件下S先生能够确认P

clhmw的专栏 1357

手把手教你学simulink(85.6)--非线性控制:滑模控制场景实例:基于Simulink建模仿真的滑模控制(Sliding Mode Control, SMC)在无人机自主飞行控制系统中的应用

首先,在MATLAB命令窗口中定义系统的参数和状态空间模型。matlab深色版本% 系统参数m = 1.5;% 无人机质量 (kg)g = 9.81;% 重力加速度 (m/s^2)% 惯性矩阵 (kg*m^2)% 初始条件pos0 = [0;0;0];% 初始位置 (m)vel0 = [0;0;0];% 初始速度 (m/s)0;0];% 初始姿态角 (rad)0;0];% 初始角速度 (rad/s)

MHD0815的博客 649

201903二十四点

1、ccf多个测试案例输出时的规则不讲究 2、注意看题干,输入里面用的是x不能用 3、虽然变量名可以不按题干要求来,但是输出字符要完全按照题给的来,注意大小写 题目 定义每一个游戏由 4 个从 1-9 的数字和 3 个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其他字符,运算顺序按照四则运算顺序进行。其中加法用符号 + 表示,减法用符号 - 表示,乘法用小写字母 x 表示,除法用符...

qq_42597258的博客 218

如何在非序列模式下使用类似图像模功能

如何在非序列模式下使用类似图像模功能

weixin_72050316的博客 552

解锁VS2022!手把手教你本地部署Deepseek

在 VS2022 中本地部署 Deepseek,我们首先需要确保硬件资源的充足,如高性能的 GPU、大容量内存和高速存储等,这是模型稳定运行的基石。如果生成的摘要能够准确概括原文的核心内容,就表明 Deepseek 模型在文本分析方面的功能正常,部署稳定可靠。这对于开发者来说,能够大大提高开发效率,当遇到一些常见的功能实现时,可以借助 Deepseek 模型快速生成基础代码框架,减少手动编写的工作量。在大语言模型的蓬勃发展的当下,Deepseek 凭借其卓越的性能和创新的技术,已然成为该领域的佼佼者。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1万+

猜测扑克牌

猜测扑克牌游戏面试题: 题目:S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:红桃A、Q、4 黑桃J、8、4、2、7、3 草花K、Q、5、4、6 方块A、5。约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉 P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q 先生:你们能从已知的点数或花色中推知这张牌是什么牌吗? 于是,S先生听到如下的对话: P先生:我不知道这张牌。

1151

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

趣味推理题目:知道问题

两个确定的数字x和y满足如下条件:1

wuxuetingsheng的博客 420

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

洛谷 P1563 玩具谜题

洛谷 P1563 玩具谜题题目题目描述小南有一套可爱的玩具小人, 它们各有不同的职业。有一天, 这些玩具小人把小南的眼镜藏了起来。 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图:这时singer告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第1个玩具小人的左数第2个玩具小人那里。 ”小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向

faojie的博客 2199

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

洛谷P1563 玩具谜题 P4924 魔法少女(python解法

文章摘要:这两道编程题都涉及环形结构处理。第一题"玩具谜题"通过模拟环形数组处理小人朝向和指令方向,关键点在于正确计算环形位置((x-1)%n+1确保1-based索引)。第二题"魔法少女"需要处理二维矩阵的旋转操作,通过四点交换实现90度旋转,但Python实现可能面临性能问题,C++版本则能全AC。两题都强调对环形结构的理解,通过模运算和索引转换实现正确的位置计算。

m0_58066727的博客 1009

洛谷P1563 [NOIP 2016 提高组] 玩具谜题

NOIP2016 提高组 D1T1。

tonman7797的博客 972

【C++ 真题】P1563 [NOIP 2016 提高组] 玩具谜题

NOIP2016 提高组 D1T1。

Ω 1133

洛谷P1563 [NOIP2016 提高组] 玩具谜题

P1563 [NOIP2016 提高组] 玩具谜题 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业。 有一天, 这些玩具小人把小南的眼镜藏了起来。 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图: 这时singersinger告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第11个玩具小人的左数第22个玩具小人那里。 ” 小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向是相反的: 面朝圈内的玩具小人, 它的左边是顺时针方向, 右边

qq_54233803的博客 1448

P1563 [NOIP 2016 提高组] 玩具谜题【洛谷】

初看并理解题目之后,就会发现这是一个很典型的“转圈”问题,以后可能会遇到很多,如果用数组处理,难点就在于边界的控制,我见识到的两种算法,一种是比较简单好想的,以下代码中会用到,令一种就是用%来计算了(这个我不太懂,就不献丑了,有兴趣大家可以去学,或者懂的话评论区教教我)。小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;输出一个字符串,表示从第一个读入的小人开始,依次数完 m 条指令后到达的小人的职业。

Elysia_IwtB的博客 931

P1563 [NOIP2016 提高组] 玩具谜题

保证不会出现其他的数。现在第 1 个玩具小人告诉小南一个包含 m 条指令的谜題,其中第 z 条指令形如“向左数/右数第 s 个玩具小人”。小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;这时 singer 告诉小南一个谜题:“眼镜藏在我左数第 3 个玩具小人的右数第 1 个玩具小人的左数第 2 个玩具小人那里。输出一个字符串,表示从第一个读入的小人开始,依次数完 m 条指令后到达的小人的职业。

wxz_y的博客 1262

玩具谜题(洛谷P1563)

NOIP2016 提高组 D1T1。

qq_65201998的博客 1121

Python算法笔试题目,破解Hash值,回溯法

Find the string which has this hash: 25267566250558 The string has length8. Characters can befrom: c,e,i,a,r,w,u,s,p The hash functionworks like this: hash(str):     1.LETTERS = c, e, i, a, r, w,...

ppslizejun的专栏 190
上一篇: 搜索引擎索引压缩技术
下一篇: HTML DOM的nodeType值
Java2King
博客等级 码龄18年 221粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值