两数之和,两数之积

两数之和,两数之积已知两个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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python激活码2021_通用破解码[通俗易懂]

    python激活码2021_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    1.0K
  • c++中this指针的用法详解

    c++中this指针的用法详解为什么引入this指针?   最简单的应用场景就是:当我们在类中定义了一个变量,同时在类成员函数中定义了同一变量时,也就是说变量名重复时,但是我们想使用类中定义的变量,这个时候我们该怎么办呢?这个时候就是this指针大显身手的时候了。为此我们引入this指针的概念。1.this指针的用处:  一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this…

    2022年5月13日
    48
  • Mysql日期和时间函数不求人

    Mysql日期和时间函数不求人

    2021年4月29日
    128
  • 使用pycharm连接MySQL数据库的方法「建议收藏」

    使用pycharm连接MySQL数据库的方法「建议收藏」首先进入到mysql中,点击最右边的database,再点击绿色的+号选择添加MySQL数据库 如果屏幕右边没有的话可以点击上面的视图,点击工具窗口中就会有database选项 打开之后发现即使输入了里面的所需信息,还是无法点击TestConnection 原因是我们缺少了一个驱动 点击下面的mysql,我们现在缺少了一个java驱动。我们可以去官网下载:h…

    2022年8月26日
    5
  • Java基础问题整理「建议收藏」

    备注:针对基本问题做一些基本的总结,不是详细解答!1.HashMap和ConcurrentHashMap区别(必考)2.ConcurrentHashMap的数据结构(必考)3.高并发HashMap的环是如何产生的4.HashMap1.7与HashMap1.8的区别,从数据结构上、Hash值的计算上、链表数据的插入方法、内部Entry类的实现上分析?5.Hash1.7是基于数组…

    2022年4月6日
    33
  • java单例模式实现-3种方式

    java单例模式实现-3种方式java单例模式 java单例模式是java中经常使用到的一种情况,那么,要实现单例模式都有哪几种方法呢,下面介绍的是java单例模式的四种实现方法,分别是:懒汉式饿汉式双检锁静态内部类懒汉式 懒汉式故名思意就是懒,是等到需要使用的时候再创建单例。这就需要将构造函数私有化,在外部就不能创建对象,由内部创建。下面是懒汉模式的实现。/***懒汉式*单例模式的创建*/publicclassSingleDemo{publicstaticSingleDem

    2022年7月8日
    15

发表回复

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

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