骑士周游问题(基于栈的优化算法)

本文探讨了骑士周游问题,并介绍了一种基于栈的优化算法,该算法在程序执行中表现出高效的性能,仅需0.05秒即可完成计算。
摘要由CSDN通过智能技术生成

程序执行时间 0.05S

from Stack import Stack # 建设你已经定义好一个栈类
import datetime
import operator

'''
优化算法思路:每一步都选择重复概率小的方向前进,即选择的方向可达到的棋盘格子数量最少,
'''
def passable(next_loct,move_road):
    i = next_loct[0]
    j = next_loct[1]
    # print ("当前经过的路线为{0}".format(move_road))
    if i >= 0 and i <= 7 and j >= 0 and j <= 7 and (not (next_loct in move_road)):
        # 如果下一步移动位置位于棋盘内且未经过,返回True
        return True
    return False

def get_nextgrid(loct, move_road, horse_dirc):
    # 记录当前格子可用的下一位置,并分别记录下一位置的可达性,按照可达性由易到难的顺序排序
    temp_dict = {} 
    # 记录排序后的下一可用位置
    sorted_next = []
    for n in range(8):
        i = loct[0] + horse_dirc[n][0]
        j = loct[1] + horse_dirc[n][1]
        index = (i,j)
        if passable(index ,move_road):
            count = 0
            for k in range(8):
               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值