战马问题 课件.pptVIP

  • 1
  • 0
  • 约小于1千字
  • 约 9页
  • 2018-12-05 发布于湖北
  • 举报
战马问题 倪文亮 一、对题目的解读 1、本题中的战马的跳跃方式是在输入的条件中指定。 2、棋盘的大小是无限大 3、棋盘上的一个位置可以多次访问 二、解题思想 1、将无穷大的棋盘分解为有限大的小棋盘,以图中0处的点为特殊点,假如能一次走遍4个1位置的点,则可以到达无穷大的棋盘上的任意点。 二、解题思想 2、算法基本思想是从一个点出发,通过遍历,判断是否可以到达它的上下左右四个点。 3、在遍历的过程中,采用数值概率的方法随机选择下一跳。 4、在遍历的过程中,设置外边界,避免随机选择跳的距离太远。在本算法实现中该边界设置为所有跳跃方式中最大跳跃距离的2倍。 三、算法实现 1、将棋盘上格子的坐标用二维数对表示 同时用二维数对表示跳跃的方式。例如,在(3,4)处执行(1,2)跳跃后,目标位置变为(4,6)。 2、将k种跳跃方式编号为1~k,每次跳跃时利用随机函数随机选择一种进行尝试。 3、若超出边界就取消本次跳跃的尝试。 4、以起点的上下左右四个位置是否都已被访问过和跳跃次数限制2者作为结束标记。 四、算法的时间代价 算法的时间复杂性 最坏的时间取决于跳跃尝试的次数,时间复杂性为O(n)。 算法的空间复杂性 程序中只使用到2个一维数组表示k种跳跃方式和一些标记变量。因此空间复杂性为O(k)。 谢谢! * * 1 1 0 1 1 *

文档评论(0)

1亿VIP精品文档

相关文档