今天在队长的带领下,学习了马踏棋盘算法。
一、马踏棋盘算法的介绍
1.马踏棋盘算法也称为骑士周游问题。
2.将马随机放在国际象棋的8 × 8棋盘Board[0~7] [0~7]的某个方格中,马按走棋规则(马走日字)进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。
二、马踏棋盘算法的基本思路
1.马踏棋盘问题(骑士周游世界问题)实际上是图的深度优先搜索(DFS)的应用。
2.如果使用回溯(就是深度优先搜索)来解决,假如马儿踏了第53个,发现已经走到了尽头,没办法,那就只能回退了,查看其他的路径,就在棋盘上不停回溯…效率很低。
3.因此需要使用贪心算法(greedyalgorithm)进行优化。直接使用贪心算法,优化思路来解决马踏棋盘问题。
三、马踏棋盘算法的步骤
1.创建棋盘chessBoard,是一个二维数组。
2.将当前位置设置为已经访问,然后根据当前位置,计算马儿还能走哪些位置,并放入到一个集合中(ArrayList),最多有8个位置。
3.遍历ArrayList中存在的所有位置,看看哪个可以走通;如果走通,继续,走不通,就回溯。
4.判断马儿是否完成任务了任务step和应该走的步数比较。
注意:马儿的不同走法(策略),会得到不同的结果,效率也会有影响(优化)。
学习算法,应该有打破砂锅问到底的精神,正所谓"形而上学,学无止境"。
http://www.dxsbao.com/shijian/474025.html
点此复制本页地址
7月14日,西华师大新闻传播学院“走出大山天地宽”暑期社会实践队和凉善公益带领11个凉山的孩子参观了三亚第一中学,让他们感受不同的教学环境,一起交流学习,增加见识。孩子们第一次看到……
Epochxxxx 西华师范大学查看全文 >>
7月12日,西华师范大学教育学院“爱育朝阳,教系天下”暑期社会实践活动队出发前往南充市嘉陵区双店乡围子村,开始了为期七天的社会实践活动。与家长建立好信任关系是实践队员们后期工作……
Epochxxxx 西华师范大学查看全文 >>
7月11号下午,我们“走出大山天地宽”暑期社会实践队一行六人拖着大大小小的行李设备,坐上动车,暑期社会实践之旅正式启程。我们到达西昌的时候,已经凌晨,然而天公不作美,下起了暴雨……
Epochxxxx 西华师范大学查看全文 >>
7月13日,西华师范大学教育学院与南京大学志愿者在南充市嘉陵区围子村村委会办公室进行了教育扶贫活动的交流。两队深入调查了围子村现存留守儿童面临的学习、生活等问题。南京大学志愿者……
汪诗雨 陈镜有 西华师范大学查看全文 >>
“历史应是人类的教师”,作为一名历史文化学院的学子,利用暑期三下乡活动,赴实地考察历史,借助于历史遗留下来的事实材料,能够帮助我们再造历史的表象。对于这次实践活动,我怀着一……
汪诗雨 魏娟 饶娇 西华师范大学查看全文 >>
伴着川境的微雨,在华灯初上之时,我们抵达了西安,也正式开始了我们的专业考察之行。或许在未真正踏上专业考察的时候,我总是习惯于为之赋予华丽的衣裳,赋予一个美好的幻想,带着自我……
张玲英 曾玥 汪诗 西华师范大学查看全文 >>