正文

菜鸟在成长续集2006-04-17 20:48:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/goal00001111/12613.html

分享到:

        终于测试完了最后一个程序,我轻轻地关闭dev-c++编译器,伸了一个懒腰,然后起身到桌子那头拿起昨天喝剩的的农夫果汁,满意地猛灌一口----好爽!
        再一次检查了记事本上的测评记录,没错,是eastcowboy的程序速度最快,这小子采用了快速排序法,处理100组数据简直不费时间------其他人的就要逊色多了。
        还是早点把结果传上去吧,想象自己以前等待结果的心情,那个猴急劲啊!可不能让大伙儿等的太久了。
       “。。。。。现在我宣布:eastcowboy为本次比赛冠军!”手指在键盘上飞舞,此时的心情好激动啊-----当然更多的是自豪。(呵呵,有点自恋啊------增添点文学色彩,:))
        等了多久才能站在这个位置?我记不清楚了。编程比赛已经成功举行了24次了,算每周一次,那就是过了168天了。在过去的168天里,我几乎天天与c/c++为伴(说的过了点,但也差不多了),从仰看高手们的高妙身手,到今天能在这论坛里占有一席之地------又来了,纯粹是为了增添点文学色彩,大家不要往心里去啊,其实我的水平还低的很,要想和论坛里的高手们站在一起,还需要买一架高梯子啊!
        能够成为第23次比赛的冠军,除了幸运还是幸运!什么阴差阳错,鬼使神差,天上掉馅饼,用在这里全不为过。想想看,1217次点击,10个回帖,却只有我一个人交的是程序,而且恰好对了-------虽然算法不咋地-------这真有点像买彩票中了奖的感觉(其实我买彩票中的最大的奖是去年11月中的5元,而且打那以后再也没有中过)。
        编程比赛开展了快半年了,这半年中人们来来往往,由于各种各样的原因,很多人在论坛里如匆匆过客,一些高手曾经在某些比赛中为大家展现过高妙的算法,但后来就不见影踪了--------真的很希望再看到你们的身影;但是我自从第4次比赛投了稿以后就几乎期期不漏了-------由于时间和水平原因,-也有几次比赛未能交卷,但肯定关注。曾经有几次登上前几位,但多数场合是默默无闻的。较为得意的是第18次比赛解答关于俄罗斯方块游戏外挂的程序,我的算法还不错,但是由于自己的粗心大意,导致功败垂成,实为遗憾!
        快乐总是短暂的,很快地出题的烦恼就代替了获奖的欣喜。第19次比赛我应johnywoo的邀请参与了出题和测评的工作,当时没有经验,出了一道超简单的题目,结果交卷的人多达60余人,加之我测评手段落后,整整花了我一个晚上才搞定,记得当离开电脑桌时已经四肢麻木,手指痉挛-------记忆太惨痛,至今心有余悸!(当然,我在这里并没有怪johnywoo的意思,相反我很感谢他给了我一次参与的机会)
        对于我这种没有什么创造性思维,知识面又狭窄的人来说,出一道难度适当,知识性与趣味性兼备的题目,实在是强人所难,于是我向广大网友发出了求救信号,希望大家能够帮我一把,提供一个合适的题目。很快有人响应,在这里我要再一次表示感谢,他们是:johnywoo,SeZhang和kaikai。谢谢你们!
        johnywoo给我发来一道论坛上网友贴出来,但没人回帖的问题,他认为很有趣,叫我参考看看,可惜我被那一片片的英文吓倒了---------英文不好,连6级都没过,惭愧啊!
        SeZhang也提供了很好的想法,他建议我可以出一些关于数学公式转换方面的题目,可惜在这方面我们两个都没有成熟的想法,所以也只好作罢。
        给我帮助最大的是kaikai,他提供了一个很好的想法:让各个选手编写一个程序与其他程序进行猜拳比赛,并且附上了详细的评分方法-------我后来提出的评分方法就是照搬他的。但是我觉察到他的方案有一些漏洞:因为猜拳比赛的出拳是毫无规律可言的,选手程序只要随机猜一个数就好了,算法没有难度。所以我最终没有采用他的方案,而是在他的方案的启发下设计了一个稍微难一点的游戏------“井字棋”游戏。这个游戏要用到回溯和剪枝的算法,相对较难,比较适合作为第2题出现。
         为了准备比赛的题目我费了不少工夫,除了向网友寻求帮助外,更多的是自己去查找资料。第1题我很快确定下来了,因为我有一本《C语言趣味程序百例精解》,里面有不少简单的趣味性较强的题目-------有需要的同志可以发邮件向我索要,好东西要共享嘛!
         但第2题我始终不能确定,因为既不能简单,又要有人能够作答,而且要保证趣味性,如果单纯地拿一道数学题出来就太无趣了。我曾经想到过用论坛上一个网友发的求救帖子程序,这个程序很有意思,大意如下:
http://www.programfan.com/club/showbbs.asp?id=152747&page=2
* **** **** * *  **** **** **** **** **** ****
*    *    * * *  *    *       * *  * *  * *  *
* **** **** * *  **** ****    * **** **** *  *
* *       * ****    * *  *    * *  *    * *  *
* **** ****   *  **** ****    * **** **** ****

输入一个数,输出对应的图形。(注意图形的中间有一行空。)
如:
Input:139
Output:
* **** ****            *********                   
*    * *  *            *   **  *
* **** ****            *********
*    *    *            *   *   *
* **** ****   √       *********   ×     
         我第一次看到的时候还没有人做出正确答案,正准备采用它的时候,“该死的”GCC牛人把代码贴上去了-------坏了我的好事,呵呵!
        我只好另想办法,其间我参考了2003年《程序员》合订版,里面倒是有不少好题目,可是难度对我来说都大了点------什么图论啊,动态规划啊,我看了就头疼------说白了还是自身能力太差啊!
        后来又去翻以前买的数据结构与算法方面的书-------有些书买了好久了,都还没有去看,看来我学习的效率太低了,进度太慢。翻到一本《数据结构与问题求解(c++版)》(Mark Allen Weiss 著,张丽萍 译)--------这本书晦涩难懂,我每次读10页左右就想打瞌睡------里面恰好有一道用回溯法求解博弈问题的例题,我联想到kaikai给我的资料,心想这不正是一道可以让程序和程序之间比赛的题目吗,于是最终把第2题确定下来。
         题目是确定了,但事情还没有完,因为我还要自己编写测试程序。书上的例题只是告诉我们如何用回溯法去找到最佳的落子点-------这也就是我让各位选手做的工作------并没有提供其他更多的资料。没办法,只好自己编。以前都是做别人出好的题目,思路清晰,目的明确,可现在是自己确定规则,还真不太容易。首先要把书上的例题搞懂-------说实话,因为本人脑子太笨,看了两遍硬是没搞清楚程序的意思,直到第3,4遍才理清楚思路,然后自己重新编了一个-------书上用的是类,为了测试方便,我把类去掉了。
         好不容易测试程序可以运行了,我让自己和电脑下了一局,看看程序能不能按照拟定的思路运行,还好,程序基本上能够正确地找到最佳着点。准备工作至此告一段落,我悬着的心终于落了下来-------实际上我还是犯了一个错误,这个错误直到我把试题贴到论坛上的时候才由szh,diycai,esatcowboy等人发现。幸好错误不是很严重,而且发现的早,不然我真的是无颜见江东父老了。看来我们一定要多多交流,闭门造车危害真的很大啊!
        比赛终于结束了,结果也出来了,把接力棒交给eastcowboy以后我的心才算真正平静下来。当然这不是结束,而是新的开始,作为一个正在成长的菜鸟,我将踏上新的征程。
        菜鸟在成长,不仅仅是说我自己,其实很多朋友都和我一样,在不断地努力,不断挑战自我,获得进步。我是一个比较容易满足的人,虽然只是获得了微不足道的一丁点进步,但还是很高兴,把自己的感想发表出来,和大家一起分享喜悦,希望能够给大家带来一丁点快乐,为这个论坛增加一点生气――显然论坛已经充满生机了,我只不过再加了一把火罢了。
        最后祝朋友们工作顺利,学习进步!月月加薪,天天开心!
 
 

阅读(3020) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册