两数之和,两数之积

两数之和,两数之积已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积。 甲问乙:”你知道是哪两个数吗?”乙说:”不知道”; 乙问甲:”你知道是哪两个数吗?”甲说:”也不知道”; 于是,乙说:”那我知道了”; 随后甲也说:”那我也知道了”; 这两个数是什么?答案:答案1:为x=1,y=6;甲知道和A=x+y=7,乙知道积B=x*y=6 答案2:为x=1,y=8;甲知道和A=

大家好,又见面了,我是你们的朋友全栈君。已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积。 


甲问乙:”你知道是哪两个数吗?”乙说:”不知道”; 


乙问甲:”你知道是哪两个数吗?”甲说:”也不知道”; 


于是,乙说:”那我知道了”; 


随后甲也说:”那我也知道了”; 


这两个数是什么?




答案:


答案1:为x=1,y=6;甲知道和A=x+y=7,乙知道积B=x*y=6 


答案2:为x=1,y=8;甲知道和A=x+y=9,乙知道积B=x*y=8 


解: 


设这两个数为x,y. 


甲知道两数之和 A=x+y; 


乙知道两数之积 B=x*y; 


该题分两种情况 : 


允许重复, 有(1 <= x <= y <= 30); 


不允许重复,有(1 <= x < y <= 30); 


当不允许重复,即(1 <= x < y <= 30); 


1)由题设条件:乙不知道答案  =>  B=x*y 解不唯一  


=>  B=x*y 为非质数 




又∵ x ≠ y 


∴ B ≠ k*k (其中k∈N) 


结论(推论1): 


B=x*y 非质数且 B ≠ k*k (其中k∈N) 


即:B ∈(6,8,10,12,14,15,18,20…) 


证明过程略。 


2)由题设条件:甲不知道答案 


<=> A=x+y 解不唯一 


=> A >= 5; 


分两种情况: 


A=5,A=6时x,y有双解 


A>=7 时x,y有三重及三重以上解 


假设 A=x+y=5 


则有双解 


x1=1,y1=4; 


x2=2,y2=3 


代入公式B=x*y: 


B1=x1*y1=1*4=4;(不满足推论1,舍去) 


B2=x2*y2=2*3=6; 


得到唯一解x=2,y=3即甲知道答案。 


与题设条件:”甲不知道答案”相矛盾, 


故假设不成立,A=x+y≠5 


假设 A=x+y=6 


则有双解。 


x1=1,y1=5; 


x2=2,y2=4 


代入公式B=x*y: 


B1=x1*y1=1*5=5;(不满足推论1,舍去) 


B2=x2*y2=2*4=8; 


得到唯一解x=2,y=4 


即甲知道答案 


与题设条件:”甲不知道答案”相矛盾 


故假设不成立,A=x+y≠6 


当A>=7时 


∵ x,y的解至少存在两种满足推论1的解 


B1=x1*y1=2*(A-2) 


B2=x2*y2=3*(A-3) 


∴ 符合条件 


结论(推论2):A >= 7 


3)由题设条件:乙说”那我知道了” 


=>乙通过已知条件B=x*y及推论(1)(2)可以得出唯一解 


即: 


A=x+y, A >= 7 


B=x*y, B ∈(6,8,10,12,14,15,16,18,20…) 


1 <= x < y <= 30 


x,y存在唯一解 


当 B=6 时:有两组解 


x1=1,y1=6 


x2=2,y2=3 (∵ x2+y2=2+3=5 < 7∴不合题意,舍去) 


得到唯一解 x=1,y=6 


当 B=8 时:有两组解 


x1=1,y1=8 


x2=2,y2=4 (∵ x2+y2=2+4=6 < 7∴不合题意,舍去) 


得到唯一解 x=1,y=8 


当 B>8 时:容易证明均为多重解 


结论: 


当B=6时有唯一解 x=1,y=6当B=8时有唯一解 x=1,y=8 


4)由题设条件:甲说”那我也知道了” 


=> 甲通过已知条件A=x+y及推论(3)可以得出唯一解 


综上所述,原题所求有两组解: 


x1=1,y1=6 


x2=1,y2=8 


当x<=y时,有(1 <= x <= y <= 30); 


同理可得唯一解 x=1,y=4 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144118.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深度自编码器原理_编码器原理

    深度自编码器原理_编码器原理自编码器的目标:使用少量高阶特征重构输入定义:使用自身的高阶特征编码自己思想:自编码器其实也是一种神经网络,他的输入和输出一致的,借助稀疏编码的思想,目标是使用高阶特征重新组合来重构自己。特点:期望输入和输出一致;希望使用高阶特征来重构自己,而不只是复制像素点。Hinton提出基于信念网络(deepbeliefNetwords,DBN,由多层RBM堆叠而成)可以使用无监督学习逐层训练的贪心算法…

    2022年10月1日
    4
  • 区别 git clone 与 git pull

    区别 git clone 与 git pull1、gitclone与gitpull相同点相同点:都是从远程服务器拉取代码到本地2、gitclone与gitpull不同点gitclone是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程。gitpull在本地有版本库的情况下,从远程库获取最新commit数据(如果有的话),并merge(合并)到本地。gitpull=…

    2022年7月21日
    12
  • 台式计算机网线,台式电脑如何连接宽带_台式电脑如何连接网线

    台式计算机网线,台式电脑如何连接宽带_台式电脑如何连接网线2017-03-1121:36:28电脑直接拨号上网(有宽带账号和密码)或者自动获取IP(有帐号没密码)上方式设置见图2016-12-1013:29:30右击网上邻居,点属性,创建一个新的连接,按照下一步下一步的步骤就可以了,然后成功之后输入你的宽带号码和密码就可以了,如果你使用的是ASDL拨号的,你可以下一个宽带我世界,电信的话你…2016-12-2917:28:19方法如下1、第一,…

    2022年6月26日
    32
  • MySQL 数据库 增删查改、克隆、外键 等操作

    MySQL 数据库 增删查改、克隆、外键 等操作目录SQL字段数据类型查看数据库语句SQL语句创建、删除数据库数据表向表中添加、删除记录、查询记录修改表名,添加、修改、删除字段,添加唯一约束查看、删除、添加表中的索引创建外键约束数据库中有数据表,数据表中有一条一条的记录。SQL字段数据类型int:整型float:单精度浮点,4字节32位double:双精度浮点,8字节64位char:不可变长的字符类型,读取速度快,耗空间,长度不足会补空格。varchar:可变长的字符类型,但读取数据比char低,容易产生内存碎片t

    2022年5月24日
    36
  • 并发编程篇:java 高并发面试题

    并发编程篇:java 高并发面试题1、线程与进程进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(textregion)、数据区域(dataregion)和堆栈(stackregion)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是…

    2022年5月6日
    41
  • 易语言跳出循环 c,易语言教程循环控制(到循环尾和跳出循环)[通俗易懂]

    易语言跳出循环 c,易语言教程循环控制(到循环尾和跳出循环)[通俗易懂]到循环尾()和跳出循环()是易语言对循环的两种控制方式,教程分别了举例师范讲解。一、官方源码到循环尾调用格式:〈无返回值〉到循环尾()-系统核心支持库->流程控制英文名称:continue本命令转移当前程序执行位置到当前所处循环体的循环尾语句处。本命令为初级命令。操作系统需求:Windows、Linux、Unix跳出循环调用格式:〈无返回值〉跳出循环()-系统核心支持库…

    2022年7月13日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号