大家写程序累了,看道推理题目,放松放松!

Anikan 2003-12-26 04:06:27
“一日,鬼谷子在2--100这99个数字中选了2个数字,然后把它们的和告诉了庞涓,
把积告诉了孙膑。当然,庞涓不知道积是多少,
孙膑不知道和是多少。 第二日,庞涓遇见孙膑很傲慢的孙膑并说:“虽然我不知道这两个数是多少但是我肯定你也不知 道。
”孙膑立刻还击道:“本来我不知道的,但是现在我知道这两个数是多少了。”庞涓想了一 会,说道:“现在我也知道这两个数是多少了。”问这两个数是多少?
...全文
36 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
社会栋梁 2003-12-29
  • 打赏
  • 举报
回复
up yi xia
guolisen 2003-12-29
  • 打赏
  • 举报
回复
4 25
fengqinggao 2003-12-28
  • 打赏
  • 举报
回复
我来解释一下这句话:
"根据庞第一次所说的:“我肯定你也不知道这两个数是什么”。由此知道,X+Y不是两个素数之和。"

因为素数之积不可能被拆为其他两个数的积,例如3和11,它们的积是33,33只可那是3和11的和,所以如果庞肯定孙不知道的话,则庞得到的数能肯定不是两个素数之和
dzq138 2003-12-28
  • 打赏
  • 举报
回复
...
kongyunzhongque 2003-12-28
  • 打赏
  • 举报
回复
好题!
只是脑袋有些大了。天哪!这哪是放松啊!
luolovegui 2003-12-28
  • 打赏
  • 举报
回复
说真的,我还是不理解
Mr-Chen 2003-12-28
  • 打赏
  • 举报
回复
因为根据庞第一次所说的:“虽然我不知道这两个数”可知这个数肯定是唯一的,素数是不可能的,不可能出现相互推导的唯一性。
liujianguangljg 2003-12-28
  • 打赏
  • 举报
回复
up
晨星 2003-12-28
  • 打赏
  • 举报
回复
“放松放松”?
mogo 2003-12-28
  • 打赏
  • 举报
回复
我对yewangqing(xiaoyezi) 下面的这句话不解,能否解释具体一点?
"根据庞第一次所说的:“我肯定你也不知道这两个数是什么”。由此知道,X+Y不是两个素数之和。"
simouse 2003-12-28
  • 打赏
  • 举报
回复
gz
Anikan 2003-12-28
  • 打赏
  • 举报
回复
TO yewangqing(xiaoyezi):
你考虑的有点不太全面:
X+Y不是两个素数之和。那么A的可能值为
11,17,23,27,29,35,37,41,47,51,53,57,59,65,67,71,77,79,83,87,89,95,97.
其实57,59,65,67,71,77,79,83,87,89,95,97都是不可能存在的。
flyzqx 2003-12-28
  • 打赏
  • 举报
回复
楼上的问题好回答,可是楼主的就是比较难理解了,也许智商不够啊!
楼上的是这样:如果一个人看到是别人带的是黑帽子,那么大肯定回答是自己是白帽子.
如果其余2个人都带的是白帽子,那么这个人为什么 喊是白帽子呢?
psprite 2003-12-28
  • 打赏
  • 举报
回复
我记得一道世界名题也是类似的思路:
有1顶黑帽子和3顶白帽子
把三个同学的眼睛蒙上然后给他们各带上一顶帽子
然后让他们睁开眼睛,猜自己头上带的是什么颜色的帽子
这三个同学忧郁了一会,之后异口同声地说:我带的是白帽子~~``
psprite 2003-12-28
  • 打赏
  • 举报
回复
好象97之上还有好多数满足第一个条件啊
最高可以到197
#include <iostream>
#include <math.h>
#include <vector>
using namespace std;
bool prime(int);//素数
int submultiple(int);//因数
struct combin
{
bool right;
int product;
}
main()
{
vector<combin> number;
for(int sum=5;sum<=199;sum++)
{
for(int j=2;j<=sum-2;j++)
{
if(prime(j)&&prime(sum-j))
goto end;
}
int k;
for( k=2;k<=sum-2;k++)
{
if(!number.size ())
{
combin tempcombin;
tempcombin.product=k*(sum-k);
tempcombin.right=1;
number.push_back(tempcombin);
}
else
{
bool n=1;
for(int i=0;i<number.size ();i++)
{
if(number[i].product ==k*(sum-k))
{
number[i].right=0;
n=0;
break;
}
}
if(n)
{
combin tempcombin;
tempcombin.product=k*(sum-k);
tempcombin.right=1;
number.push_back(tempcombin);
}
}
}

cout<<sum<<endl;
end:continue;
}
for(int i=0;i<number.size ();i++)
{
if(number[i].right ==1)
cout<<number[i].product <<endl;
}
}
int submultiple(int k)
{
int j=0,m=k;
top:
int i=2;
while(i<=sqrt(k)||!prime(m))
{
if(prime(i)&&m%i==0)
{
m=m/i;
j++;
goto top;
}
i++;
}
return j;
}

bool prime(int k)
{
for(int i=2;i<=sqrt(k);i++)
{
if(k%i==0)
return 0;
}
return 1;
}

可是没有看到结果~`
lambochan 2003-12-27
  • 打赏
  • 举报
回复
“一日,鬼谷子在2--100这99个数字中选了2个数字,然后把它们的和告诉了庞涓,
把积告诉了孙膑。当然,庞涓不知道积是多少,
孙膑不知道和是多少。 第二日,庞涓遇见孙膑很傲慢的孙膑并说:“虽然我不知道这两个数是多少但是我肯定你也不知 道。
”孙膑立刻还击道:“本来我不知道的,但是现在我知道这两个数是多少了。”庞涓想了一 会,说道:“现在我也知道这两个数是多少了。”问这两个数是多少?
=================================================================================

庞涓知和、孙膑知积(两者本不知是哪两数组成),当积(孙膑)获悉和(庞涓)不知如何拆分时(并获悉对方也知道自己不知道),积(孙膑)先知道,然后和(孙膑)也知道了,这题何解?

解这题的关键在于那句:“虽然我不知道这两个数是多少但是我肯定你也不知 道。”
要符合这个条件,就是说和(庞涓)能拆分的组合(N)中,必然是N个组合所产生的积,都是积(孙膑)无法判断由哪两个数组成的。
17显然就是这样的和.....

这题和那题有异曲同工之妙 http://expert.csdn.net/Expert/topic/2587/2587920.xml?temp=.1147425
yewangqing 2003-12-27
  • 打赏
  • 举报
回复
解答:
假设数为 X,Y ;和为X+Y=A,积为X*Y=B.
根据庞第一次所说的:“我肯定你也不知道这两个数是什么”。由此知道,X+Y不是两个素数之和。那么A的可能值为 11,17,23,27,29,35,37,41,47,51,53,57,59,65,67,71,77,79,83,87,89,95,97.
我们再计算一下B的可能值:
和是11能得到的积:18,24,28,30
和是17能得到的积:30,42,52,60,66,70,72
和是23能得到的积:42,60...
和是27能得到的积:50,72...
和是29能得到的积:...
和是35能得到的积:66...
和是37能得到的积:70...
我们可以得出可能的B为....,当然了,有些数(30=5*6=2*15)出现不止一次。

这时候,孙依据自己的数比较计算后,“我现在能够确定这两个数字了。”
我们依据这句话,和我们算出来的B的集合,我们又可以把计算出来的B的集合删除一些重复数。

和是11能得到的积:18,24,28
和是17能得到的积:52
和是23能得到的积:42,76...
和是27能得到的积:50,92...
和是29能得到的积:54,78...
和是35能得到的积:96,124...
和是37能得到的积:,...
因为庞说:“既然你这么说,我现在也知道这两个数字是什么了。”那么由和得出的积也必须是唯一的,由上面知道只有一行是剩下一个数的,那就是和17积52。
那么X和Y分别是4和13
sevenking 2003-12-27
  • 打赏
  • 举报
回复
怎么解的,给点思路 好吗?
qqhrdi1 2003-12-27
  • 打赏
  • 举报
回复
是2和4吧 2+2=4;2X2=4
sea373 2003-12-27
  • 打赏
  • 举报
回复
楼主能告诉 怎么解的吗

谢谢!
加载更多回复(8)

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧