华容道探究过程怎么写( 三 )


其一、算法的效率 。其二、获得最优解法 。
我是这样解决的: 1、要提高算法的效率,首先要知道算法的瓶颈在什么地方,在得出每一个状态(走完一步各个棋子的位置)都要和前面的状态进行比较,以保证不重复,随着步数的增多,状态数会大幅度增加,这是,和前面的状态比较这一过程成了整个算法的效率 。解决的办法,从两个地方着手,其一,增加每一步比较的速度 。
在程序中,用5*4的数组表示一个状态,这样,每一次比较要比较二十个数,因为数组中每个数定义从0-7,用三个二进制位可以表示,3*20=60位,用一个64位数就可以表示(有的资料说用四个字节就可以,我实在想不出来),这样每次比较一个64位数就可以了 。其二、减少比较的状态,这是提高效率的关键 。
比较的时候不要和前面所有的状态都进行比较,只要和前两步的所有状态进行比较就可以了 。经过以上的优化,在解横刀立马时,大约需要一,两秒钟就可以了,(我的机器,赛扬1.1OC1.46) 。
2、获得最优解法,比如横刀立马是81步,这里的一步指移动一个棋子,可以把一个卒子向一个方向移动两格,或者卒子拐弯移动两格,或者一个将向一个方向移动两格(横将横着移,竖将竖着移)都是一步 。获得最优解法的关键是把下一步可能有的走法全部算出来,不能遗漏 。
我是根据空格来算走法的的,分三种情况: ① 、卒子拐弯移动,如果有连着两个空格(横向的),则如果在它的上面或下面(有四个位置)有卒子的话,那么可以拐弯移动,有四种走法 。如果两个空格是竖向的,那么,空格的左右如果有卒子,也可以拐弯移动,也有四种走法 。
②、向一个方向移动两格,这里可能出现的情况有:卒子向一个方向移动两格,横将横着移两格,竖将竖着移两格 ③、考虑向一个方向移动一格的情况,这里情况很多,我不一一列举了 。以上的算法很麻烦,很大一部分程序用来写这个了,如果大家有更简单的,可以告诉我,但一个原则,必须把所有的走法全部考虑 。
另外,说一下我在写程序时的小插曲 。程序快写好时,运行时发现,每解一次,内存使用会增加7,8兆,后来发现分配的内存每释放导致的,其实在函数中也就分配了几十个字节,由于被重复调用,最后 。
3.探究的一般过程包括六个步骤,请你按顺序写出来.探究的一般过程是从发现问题、提出问题开始的,发现问题后,根据自己已有的知识和生活经验对问题的答案作出假设.设计探究的方案,包括选择材料、设计方法步骤等.按照探究方案进行探究,得到结果,再分析所得的结果与假设是否相符,从而得出结论.并不是所有的问题都一次探究得到正确的结论.有时,由于探究的方法不够完善,也可能得出错误的结论.因此,在得出结论后,还需要对整个探究过程进行反思.即科学探究的一般过程:提出问题、作出假设、制定计划、实施计划、得出结论、表达和交流.故答案为:提出问题;作出假设;制定计划;实施计划;得出结论;表达交流. 。
4.小课题研究报告中探究过程怎么写第一阶段:酝酿准备阶段(20 年4月——20 年9月)
1.通过学习讨论、教师座谈、调查研究及调查问卷,分析汇总,对 xxxxxx现状进行分析确立课题研究的方向 。
2.构建“ xxxxxxx ”的教学研究课题,并组建课题组 。
3第二阶段:研究探索阶段(20 年9月——20 年5月)
1.启动课题研究,课题组成员按课题内容进行实践 。
2.以xxx为主阵地,开展课题实验,撰写阶段总结
3.组织专家进行开题论证