欢迎大家来做一道算法题

netsky 2000-07-13 11:33:00
由电脑随机产生四个数字(隐藏的),这四个数字均不相同,要由你去猜。
然后,电脑会根据你每一次的猜测给出相应的提示。
提示为:1个六角星,表示你已经猜中了其中一个数字,而且排列位置正确。
1个圆圈,表示你已经猜中了其中一个数字,但排列位置不正确。
当同时出现1个六角星和一个圆圈,表示你已经猜中了两个数字,
一个位置正确,一个位置不对,仍需努力。
其他情况以此类推......

假设你具有足够高的智力和足够倒霉的运气,请问最多需要多少次才能猜中?

希望各位大虾能把自己的主要思路,代码贴出来,一起算计,让我等菜鸟学习学习.
...全文
900 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
Big_Ants 2001-10-14
  • 打赏
  • 举报
回复
好象天之痕里有啊,哈哈!
gop 2001-10-14
  • 打赏
  • 举报
回复
我知道不是最优,但可以作为框架,

优化的关键在于------从候选集中提交哪个作为"猜数"?

即:提交那个数作为猜数可以使返回的符号中信息含量最大化?

可能需要用点信息论的知识来作优选.
Erlin 2001-10-14
  • 打赏
  • 举报
回复
To gop:

你这种方法很多人都用过了,请看前面的回复,但肯定不是最优的方法,大家是在寻找一个
最优的方法。
gop 2001-10-13
  • 打赏
  • 举报
回复
haha,居然被推了出来.

吧10个数取4的全部组合作为备选集合,

然后从备选集合中随意去一个作为"猜数"提交,得到结果符号.

用猜数和结果符号组成规则,去过滤候选集(即从候选集里随意取一个数当作正确结果,

用这个正确结果去对比提交的猜数,看能否得到相同的图形符号,能得到的保留,不能得到的

抛弃).

过滤几次就得到唯一结果了.如果得不到,就是对方在愚弄你,呵呵.

我参经统计过这种算法的结果(以每个可能的组合为最终答案),6次以内基本有结论.

比较遭的情况也有出现.但可能还有优化的方法.
NowCan 2001-10-13
  • 打赏
  • 举报
回复
这个帖子有一岁多了。
Erlin 2001-10-12
  • 打赏
  • 举报
回复
UP
kaisoft 2000-11-30
  • 打赏
  • 举报
回复
最倒霉是5次,
一:先试1234
二:再试5678,此时至少已知A,B是结果
三:再试9和2个A和1个B的结果(如9AAB,此时要使A和B放在和上次不同的位置如上次A在3,B在4则用AAB9),此时如9不是结果则0是,而A的位置也已确定,因已放过3个位置),结果A,B,C,D都已知。
四:此时B已试过2个位置,用一个2B和2个C试(规则同上)则B,C位置确定
五:OK
milefo 2000-11-30
  • 打赏
  • 举报
回复
应该是6次的说!
原理我下来在好好想想!
goodoldcat 2000-11-26
  • 打赏
  • 举报
回复
faint......
某一年的全国信息学竞赛题(95好像是,不是到会不会是ioi的),好心你就自己去买书了,
很容易的
sunapollo 2000-11-01
  • 打赏
  • 举报
回复
数字共有10位*4位置=40个信息,每猜一次,最多能得到4个信息(A+B<=4),如果你做够倒霉,需要7次到8次,其中最倒霉的情况是,每一次出现1A1B(A表示数字及位相同,B表示数字位不同而数字相同),还有在演算时,是不能输入相同位的,上面有人输,是不符要求的。
enlightenment 2000-10-01
  • 打赏
  • 举报
回复
我来插一句,一年以前我曾经编写了一个“猜数字游戏及其破解程序”,其中结果“A”对应于上面所说的六角形,“B”对应于圆圈。其中有可以用于统计的功能(编写程序时该功能是作为秘籍的,所以帮助文件里没有写出),后面详细介绍。其中的“破解”功能可根据用户输入给出提示。
我会给帖子主人发一份,并且我已经上载了程序,相信不日就会贴出来,若有兴趣的可以到“expert.csdn.net”的共享软件区下载,或也可以直接向我索要。
我的邮箱:ee_Lqm@263.net

在编写程序的过程中,我用自己的程序不下调试过几千次,但是用我提供的破解程序还从未超过七次算出正确答案。当然,这只是经验之谈。

安装并执行程序后,在“游戏破解”可以用于统计在输入当前的几组值之后,所有有可能的答案。可用于逐步统计可能性情况。

以下内容为本程序的特殊功能,均为首次公开,只有进本帖子的人看到:

1.在“进入游戏”页面,按键“Ctrl+Alt+Shift+F5”显示游戏的正确答案;
2.在“游戏破解”页面,按键“Ctrl+Alt+Shift+F9”列出在输入当前的数值时所有可能的正确答案的个数。
3.在“游戏破解”页面,按键“Ctrl+Alt+Shift+F10”强行列出在输入当前的数值时所有可能的正确答案的具体值。

程序还算不错吧(自我感觉良好的典型)!可能开始不太熟(帮助较简单F1),用一下就会了。如果说不好,那我也可以推脱——那是一年前编写的嘛!
界面是模仿Sonique的设计,所以当时未发表,只是在同学们之间(那时还没毕业呢)copy了几份。
说来真的太巧,去年的“十一”那天,这份程序刚刚编写完,给我的哥儿们送了。今年恰逢“十一”我看到网上这张帖子,上载程序。唉!感慨万分!...

祝各位“十一”快乐!
  • 打赏
  • 举报
回复
ask you a another question
How can I upload the code?
by a way ,How can I speak to the man who is online directly?
whitehare 2000-09-12
  • 打赏
  • 举报
回复
8次

超过8次说明你思路不对.
元明 2000-08-23
  • 打赏
  • 举报
回复
感兴趣
Erlin 2000-08-23
  • 打赏
  • 举报
回复
谢谢melice的指点,其实我刚写上去的时候就知道这种方法不妥,但一直都没有去想改正它,不知道你有没有更好的想法,请赐教
我个人认为这道题还是很有意思的,这么久了,还没有一个答案有说服力,我不赞成用手工排
Erlin 2000-08-23
  • 打赏
  • 举报
回复
谢谢melice的指点,其实我刚写上去的时候就知道这种方法不妥,但一直都没有去想改正它,不知道你有没有更好的想法,请赐教
我个人认为这道题还是很有意思的,这么久了,还没有一个答案有说服力,我不赞成用手工排
jackal_lure 2000-08-23
  • 打赏
  • 举报
回复
是否真的有答案,只要有就可以做
melice 2000-08-22
  • 打赏
  • 举报
回复
erlin的算法应该是可以出结果的,但不会出现最优的结果。
将第二步改一下。
Tyro 2000-07-25
  • 打赏
  • 举报
回复
我先分析一下在知道了4个数字之后排列这四个数字的情况:(最多需要5次)
设4个数字为a,b,c,d,则先排aaab,这时根据六角星的数量推一下
0个六角星,可知a在第4个位置
2个六角星,可知b在第4个位置
1个六角星,再排列aaac,如果2个六角星,表明c在第4个位置,如果还是只有一个六角星,表明d在第4个位置
所以最多两次排列可以知道第4个位置的数字
下面可以通过一次排列得知第3个位置的数字
再通过一次排列可以得知前2个位置的数字
所以4次就可以将已知的4个数字排好顺序

看来我前面写的5次还多了一次:)
最多9次可以得知究竟是哪4个数字是正确的,所以最多不会超过13次

关键是在选择数字时是否可以处理一些排序的步骤,可能实际数字比13次还要少
Tyro 2000-07-25
  • 打赏
  • 举报
回复
re:xiaoy2000
呵呵……如果知道了是哪四个数字,只用5次就可以排列好顺序,何必23次?
加载更多回复(21)
昨日,11.19,最新整理了,第61-80,现在公布上传。 另加上之前公布的第1-60 ,在此一次汇总上传,以飨各位。 可以这么说,绝大部分的面试,都是这100 道系列的翻版, 此微软等公司数据结构+算法面试100 系列,是极具代表性的经典面试。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 [第21-40 答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 [前20 ]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 [前25 ] http://download.csdn.net/source/2796735 目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 [1-40 ] http://download.csdn.net/source/2778852 5.[第1 -60 汇总]微软等数据结构+算法面试100 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何目或任何答案,有任何问欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何目或资源享有版权。转载以上公布的任何一, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
火爆出炉:微软等数据结构+算法面试100首次完整亮相 ---100V0.1版最终完成 作者:July 2010年12月6日 微软等100系列V0.1版终于结束了。 从2010年10月11日当天最初发表前40以来,直至此刻,整理这100,已有近2个月。 2个月,因为要整理这100,很多很多其它的事都被我强迫性的搁置一旁, 如今,要好好专心去因这100而被耽误的、其它的事了。 这微软等数据结构+算法面试100系列(目+答案),到底现在、或此刻、或未来, 对初学者有多大的意义,在此,我就不给予评说了。 由他们自己来认定。所谓,公道自在人心,我相信这句话。 任何人,对以下任何资料、目、或答案,有任何问欢迎联系我。 作者邮箱: zhoulei0907@yahoo.cn 作者声明: 转载或引用以下任何资料、或目,请注明作者本人July及出处。 向您的厚道致敬,谢谢。 好了,请享受这完完整整的100吧,这可是首次完整亮相哦。:D。 ............ ............ 答案系列: 5.[最新答案V0.3版]微软等数据结构+算法面试100[第21-40答案] http://download.csdn.net/source/2832862 6.[答案V0.2版]精选微软数据结构+算法面试100[前20]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 7.[答案V0.1版]精选微软数据结构+算法面试100[前25] http://download.csdn.net/source/2796735 剩下的第41-100答案,正在整理中。预计明年整理公布。 请各位,细心的等待。谢谢。 更多资源,下载地址: http://v_july_v.download.csdn.net/ ================================== 更多详情,请参见本人博客: My Blog: http://blog.csdn.net/v_JULY_v --------------------------------------------------------------------------------------- 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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