社区
数据结构与算法
帖子详情
有趣的问题.......(有难度的).......
wuasi2008
2002-05-15 04:26:41
有3堆东西,数量分别是7,5,3。有2 个人玩游戏,,只能在一堆里取,数量不限
但只能从一堆里取。,,谁取完最后一个就是算赢。。。。。。
问你怎么写一个算法。。。才使你一定能胜。。
假设是你先拿。。。。。。。。。。。。。。
大家想想。。。。。。如果能用c语言写一个算法更好。。。。。。
...全文
17
8
打赏
收藏
有趣的问题.......(有难度的).......
有3堆东西,数量分别是7,5,3。有2 个人玩游戏,,只能在一堆里取,数量不限 但只能从一堆里取。,,谁取完最后一个就是算赢。。。。。。 问你怎么写一个算法。。。才使你一定能胜。。 假设是你先拿。。。。。。。。。。。。。。 大家想想。。。。。。如果能用c语言写一个算法更好。。。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dirotac
2002-05-18
打赏
举报
回复
gz
crazyingmouse
2002-05-18
打赏
举报
回复
因为你自己想拿最后一个,那你没次取完之后,总要把平衡状态丢给别人用。然后,因为任意一种平衡状态提取一次后,总变成非平衡状态,任何非平衡状态,总有办法取成平衡状态。那么,你只要一开始的时候,是从非平衡开始,然后先拿的人就等着收钱拉。
mathe
2002-05-16
打赏
举报
回复
的的确确就这么简单, IT_worker(IT工人) 没有错啦
wuasi2008
2002-05-16
打赏
举报
回复
我知道了。。。。
原来那个东西是位异或。。。。
昨天晚上我找到这个东西了/。。。。。。
我真菜。。
我还想问大家一个问题。。。。。
你们第一次拿到这个问题是怎么考虑的。。。。。
能不能说一下思路/。。。。
starfish
2002-05-15
打赏
举报
回复
hoho, mathe is right. This is a very classic problem in game-play field.
wuasi2008
2002-05-15
打赏
举报
回复
不会象你说得那么简单吧....
我回去试试............
IT_worker
2002-05-15
打赏
举报
回复
假如有m堆石头每一堆的个数是n1,n2,……nm个那么当n1^n2^……^nm等于零的时候先动手的人必输。
证明:
如果n1^n2^……^nm==0那么先动手的人无论怎么拿都将造成他拿之后的n1^n2^……^nm!=0
如果n1^n2^……^nm!=0那么先动手的人总有一种拿法使得他拿之后的n1^n2^……^nm==0
于是:一方总面对n1^n2^……^nm==0。而另一方总面对n1^n2^……^nm!=0。
当n1==n2==……==nm==0的时候游戏结束,面对他的人输了! 证明完毕。
因为 7^5^3=1 那么先拿的人必赢。有三种拿法分别是:6,5,3 7,4,3 7,5,2
如果要写函数的话可以这样写
bool next(int&a,int&b,int&c)
{
if( a^b^c == 0 )
return false;
if( a > b^c )
a = b^c;
else if( b > a^c )
b = a^c;
else
c = a^b;
return true;
}
void machine_play(int &a,int &b,int &c)
{
if( next(a,b,c) ){
cout<<"你要输了!!!"<<endl;
return;
}
cout<<"你狠!!!"<<endl;
if( a>0 ) a -= (rand()%a)+1;
else if( b>0 ) b -= (rand()%b)+1;
else c -= (rand()%c)+1;
}
mathe
2002-05-15
打赏
举报
回复
这时很经典的问题,太简单了,先手只要能够使余下各堆中剩余东东数目异或之和为0就可以了,比如上面情况,从任何一堆拿走一根就可以了。
还有更多类似的问题:
http://members.lycos.co.uk/huidu/club/bbssearch.php?utitle=石子
《利民买菜-社区团购》企业级大型实战真项目连载中...
同学你好,我是菩提老师,本课程基于...一个真实的好项目能顶10个普通的项目,做有
难度
的项目,才能真正让技术得到提升,助你成为真的高级工程师!简历最耀眼的地方,就是项目经验和项目的
难度
与复杂性,你值得拥有!
NYOJ 85.
有趣
的数
有趣
的数 时间限制:3000 ms | 内存限制:65535 KB
难度
:2 描述 把分数按下面的办法排成一个数表。 1/1 1/2 1/3 1/4..... 2/1 2/2 2/3.... 3/1 3/2 .... 4/1..... ......... 我们以z字型方法给上表的...
dotnet 用 Microsoft.Diagnostics.Runtime 库写代码解析 DUMP 文件
同时编写各个命令行的
难度
也特别高,这在需要对命令行的输出进行不同的分支的判断时候,
难度
会更大。于是找到了 Microsoft.Diagnostics.Runtime 库,这个库提供了简单的方式,可以在 C# 里面用代码写分析 DUMP 的...
C++ 关于可变参数的使用(代码中的省略号...的作用)
来传递可变长参数,最近又遇到一个catch(...),觉得这种函数参数使用方式非常
有趣
而且节省很多时间,所以在这里记录下来。 1、catch(...)中的“...”这里的作用主要是拦截所有错误,因为有可能这段代码你也不知道...
小学生 计算机编程 教程,面向小学生的C ++
有趣
编程(第一卷)配置教学资源课件完整版...
难度
适中,易学易教的“面向小学生的C ++趣味编程”教科书是小学信息学教学的重要组成部分.选择80多个接近小学生学习生活的例子,结合小学生的认知规律,激发孩子的兴趣,关注程序,适当削弱语法.使用流程图来阐明...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章