一个小小的算法题, 大佬们来看看?

新手上路,请多包涵

假设有一个二维数组, 长宽都为x, x为大于10的奇数.
初始, 这个二维数组里面都为0.
然后, 从中间点开始设置为1, 然后这个1, 随机选择一个方向开始进行移动.
路过的地方都会变成1.
每次行走, 不会后退, 也不会选择已经是1的地方, 最多分裂两个方向.(从三个方向随机选择1个的几率为a, 分裂为两个方向的几率为1-a)

题目就是让这个1走N步, 然后输出结果.

阅读 1.4k
1 个回答

这不是小小的算法题
一来其实就一个递归就可以
二来没有确认的输出,没法确定结果对不对

好吧递归解决这个问题是不太行,那就循环吧
定义一个“头”节点列表,遍历这个列表,生成新的头,保存在另一个“头”节点列表里
然后一直反复直到走完了N步或者彻底走不动了为止

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题