第463章 算法
“曾凡,下午樊老师找你去干什么了,一节课都没回来?”刚坐下,同桌高小娜就好奇的问。
“我写了一个小程序,石老师觉得我有天赋,樊老头就给了我机房钥匙,让我可以不上课的时候,过去上机,刚才在机房错过了吃饭的时间,才去外面吃了点回来!”曾凡小声的解释道,这种事不需要瞒,也瞒不住,以后他会经常去,索性一次说明白。
“你真厉害,写的什么程序?”高小娜更好奇了。
曾凡将从机房拿出来的那本编程书递给她看,嘴里谦虚道:“就是从这上面抄了个示例程序,我改了改,也编译成功了!”
英语是高小娜最好的科目,翻看这本全英文的书籍一样眼晕:“英文原版书你也能看懂?”
“连蒙带猜吧,英文部分不需要太懂,知道什么功能就行了!”曾凡都有点佩服自己了。
“马上快考试了,樊老头还让你随便上机,他心可真大!”高小娜的思路跳跃的真快。
“不和你说了,我得赶紧写作业,功课落下一样挨尅!”
周六周日两天的功夫没有白费,再做起作业,尤其是语文,英语,政治之类需要背诵的作业,感觉轻松了很多,数学作业本来就是他的强项,现在他的心算速度提升,做起来更加得心应手。
高小娜翻看那本厚厚的英文原版书,第一页就看的头大,序言部分还能连蒙带猜看懂大概,到了正文部分,彻底懵圈,这也是英语吗?
不死心的往后翻,代码越来越密集,经常几页几页都是代码,好多的小括号,中括号,大括号,一层层的括号套括号,还很多的加号减号大于小于等于号,这是数学英语吗?这玩意怎么看懂大概?
以后绝对不能报考计算机专业!高小娜将书还给曾凡,暗自下定决心,光是数学就够她头疼了,还数学加英语,必须有多远躲多远。
晚自习的铃声响起,曾凡最后一本数学作业刚好写完,踩着铃声进屋的王伟正好无缝衔接拿过去,一点不浪费时间。
“樊老头下午又给你开小灶了?”王伟一心二用,边抄作业边调侃曾凡。
“你怎么知道?”
“哈哈,我中午看见樊老头押着你去还书了,放学后我还去打探消息,他还给了书店老板一个黑名单,上面的人不许再借书!对不对!”王伟得意洋洋的说道。
“让我们最后一个学期专心学习嘛,我以后要改邪归正,你们踢球别再找我了!”曾凡并没有表现出王伟期待的沮丧。
“呀?不会吧,樊老头给你许了什么好处?”
“我以后没课的时候可以去机房上机!”
“切!机房里那些老古董,让我玩都懒得去,家里的游戏机我都玩腻了,何况机房那几个小学生游戏!”王伟不屑道。
“我可不是玩游戏,我要自己编一个游戏!”曾凡忍不住炫耀道。
“吹牛吧,就你?”
“信不信由你,需要几天的时间,周四咱们下午上机,估计你就能看到了!”
“玩真的?什么游戏?”王伟看他说的认真,相信了几分,这小子不是说大话的人。
“中国象棋!”
“唉,我还以为什么高难度,游戏机里我玩过,电脑弱智的很,最高难度的要思考好久,还不如真人有意思!”王伟不以为然道。
“不一样,我写的当然要能正常对局,咱们的电脑虽然很落后,比你的游戏机还是要强很多的,计算能力不是一个水平!你等着瞧好了!”曾凡很自信的说道。
“看把你能的,到时候你的程序要是能赢我,我请咱们全班吃雪人!”王伟对自己的象棋水平还是很有把握的。
“知道你家有钱,我不和你打赌,到时候就知道了!”曾凡才不上当,一根雪人雪糕一块钱,全班六十多人,他全身上下的钱加起来都不够。
“不是打赌,是我个人自愿!”
王伟说着突然站了起来,踩桌子站到讲桌上,转过身大声说道:“大家听好了,周四上机课,我和曾凡写的象棋程序对战,如果我输了,自愿请全班同学吃雪人!决不食言!”
“王伟!快下来,这是晚自习,别影响大家学习!”班长杨菲菲赶紧站起来维持秩序。
下面的同学们看热闹不嫌事大,更何况还有便宜可占,纷纷的跟着起哄,尤其是后几排的男同学,刘志新嚷的最欢,被班长狠狠瞪了一眼,才不得不住口。
“我说完了,大家知道有这事儿就行了!”王伟踩着桌子又回到自己的位置。
曾凡很无语,这下子全班都知道了,想低调都做不到了,也怪自己,和这个出名的大嘴巴抬什么杠呢!
“曾凡,我等着看你的大作了!”王伟拍了拍他的肩膀,笑呵呵的说道,明显是不相信他能写出这样的程序。
有了王伟的打岔,曾凡不得不认真起来,反正作业都写完了,曾凡拿过那本程序书认真翻看起来,在里面找相似类型的算法代码作参考。
一般类似的棋类软件算法都是枚举法,将每一个棋子可能的走法逐一计算,通过特殊的程序算法进行判断,选择出最有利的走法。
程序想要获胜,仅算一步肯定不够,还要计算对手可能的走法,再逐一计算,然后再根据对方的某一步计算己方最佳的应对方法,以此类推。
每往深层多计算一步,总的计算数量就是双方所有可能走法相乘一次,计算机运算能力再强大,也禁不起这种海量枚举的消耗,一般的人类棋手,水平再差也能算两三步,但凡有点水平算四五步,七八步都很常见,虽然没有程序机械严谨,很容易有疏漏,可是人类的经验计算机不能比,能弥补偶尔疏漏造成的错误。
好的算法就是减少程序的枚举步骤,通过严密设计提前排除大量无效步骤,并且高效判断某一步的价值,以少量的计算获取最深的计算步骤,尽量减少己方的失误。
曾凡左手托下巴,右手无意识的翻书,脑子里思索着程序的结构设计,怎样枚举计算,怎样判断每一步的价值,已经有了初步的想法,迫切的想要去写出来验证一下。
看了看表,才刚刚八点多,到十点熄灯还有将近两个小时,差不多够用了。
“高小娜,我出去一下!”曾凡的位置在里面,后排的桌子又靠的很紧,想要出去,需要外面的人先出去,或者尽量往前靠,他才能过去。
出了教室,曾凡直奔机房,开门进去先开灯,然后直奔刚才他用的那台电脑。
这次他带着软盘过来,写完了备份到软盘上面,下次随便哪台电脑都能继续编写了。