python汉诺塔算法_基于Python的汉诺塔求解中途算法
能不能把河内塔半路解决?我做了大量的研究来寻找能够解决用户配置问题的代码,但是我还没有找到一个。这是一个任务,我需要代码接管从用户已经停止求解的地方,并继续为用户解决它,而不重置为方块一。在
我知道有递归算法在那里随时可用,但这不是我要寻找的。
我正在寻找算法,它可以接管用户解决问题的地方,然后继续从那里解决问题。
有什么想法吗?在
到目前为止,我已经提出了一种算法,它将优化的算法(通过递归实现)存储到一个数组中,然后检查用户的输入是否等于数组中找到的任何一个,然后从那里继续求解。但是,问题在于优化算法数组中找不到用户的配置。在
以下是我目前为止的代码(我排除了堆栈.py代码):def solveHalfway(n, start, end, middle, count):
gameInstance.stackA = [3,2]
gameInstance.stackB = []
gameInstance.stackC = [1]
loopCounter = 0 # initialise loopCounter as 0
moveCounter = 0 # initialise the move index the user is stuck at
indicator = 0 # to indicate whether the user's config equals the solution's config
while loopCounter < arrayOfStacks.size(): # while loopCounter size has not reached the end of arrayOfStacks
if loopCounter != 0 and loopCounter % 3 == 0: # if 3 stacks have been dequeued
moveCounter += 1
if gameInstance.getUserConfig() == tempStack.data: #check whether user's config is equal to the solution's config
indicator += 1
print "User is stuck at move: ", moveCounter #this will be the current move the user is at
while arrayOfStacks.size() != 0: # while not the end of arrayOfStacks
correctMovesStack.push(arrayOfStacks.dequeue()) # add the moves to correctMovesStack
if correctMovesStack.size() == 3: # if 3 stacks have been dequeued
print "Step:", moveCounter , correctMovesStack.data # display the step number plus the correct move to take
moveCounter+=1 # increase move by 1
while correctMovesStack.size() != 0: # if correct moves stack isn't empty
correctMovesStack.pop() # empty the stack
return
else:
while tempStack.size() != 0: # check if tempStack is empty
tempStack.pop() # empty tempStack so that it can be used for the next loop
tempStack.push(arrayOfStacks.dequeue()) #dequeue from arrayOfStacks for a total of 3 times and push it to tempStack
else:
tempStack.push(arrayOfStacks.dequeue()) #dequeue from arrayOfStacks for a total of 3 times and push it to tempStack
loopCounter +=1 # increase loop counter by 1
if indicator == 0:
moveWith3Towers(noOfDisks, stackA, stackC, stackB, count)
print indicator
python汉诺塔算法_基于Python的汉诺塔求解中途算法相关推荐
- 基于python爬虫技术的应用_基于Python爬虫技术的应用
办公自动化杂志 一.引言 本文主要是对 Python 爬虫技术进行阐述,基于 python 的爬虫与其他语言相比的有很多优势.通过爬去某个网站的所有新闻这个案例,来进一步阐释 Python 爬虫技术的 ...
- python电影推荐算法_基于Python的电影推荐算法
原标题:基于Python的电影推荐算法 第一步:收集和清洗数据 数据链接:https://grouplens.org/datasets/movielens/ 下载文件:ml-latest-small ...
- 文本处理算法_基于 Python 的 11 种经典数据降维算法
网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA.MDS.LLE. ...
- python回归算法_基于Python的函数回归算法验证
看机器学习看到了回归函数,看了一半看不下去了,看到能用方差进行函数回归,又手痒痒了,自己推公式写代码验证: 常见的最小二乘法是一阶函数回归 回归方法就是寻找方差的最小值 y = kx + b xi, ...
- python实现ocr识别算法_基于Python的OCR实现示例
摘要: 近几天在做一个东西,其中需要对图像中的文字进行识别,看了前辈们的文章,找到两个较简单的方法:使用python的pytesseract库和调用百度AI平台接口.写下这篇文章做一个比较简短的记录和 ...
- python卡方检验筛选特征原理_基于Python的遥感特征筛选—递归特征消除(RFE)与极限树(Extra-Trees)...
引言 基于前几篇文章关于筛选方法的介绍,本篇同样给大家介绍两种python封装的经典特征降维方法,递归特征消除(RFE)与极限树(Extra-Trees, ET).其中,RFE整合了两种不同的超参数, ...
- python制作物联网控制软件下载_基于Python和Django框架的物联网智能设备管理系统的设计与实现...
论文写作指导:请加QQ229366758 基于Python和Django框架的物联网智能设备管理系统的设计与实现 作者:未知 摘 要:针对目前日益增多的智能设备提出了兼容性好,稳定性高,易于管理的管理 ...
- python爬虫可视化web展示_基于Python爬虫的职位信息数据分析和可视化系统实现
1. 引言 在这个新时代,人们根据现有的职位信息数据分析系统得到的职位信息越来越碎片化,面对收集到的大量的职位信息数据难以迅速地筛选出对自己最有帮助的职位信息,又或者筛选出信息后不能直观地看到数据的特 ...
- python图片识别验证码软件_基于python图片识别工具(图片识别,车牌,PDF,验证码)...
先上图 不多说. 对于一般的用户来说识别率还是能达到百分之90以上. 已经打包成exe文件.windows用户可以直接使用.要软件的加我QQ python代码: # -*- coding: UTF- ...
- python 按需加载_基于python的opcode优化和模块按需加载机制研究(学习与个人思路)(原创)...
基于python的opcode优化和模块按需加载机制研究(学习与思考) 姓名:XXX 学校信息:XXX 主用编程语言:python3.5 文档转换为PDF有些图片无法完全显示,请移步我的博客查看 完成 ...
最新文章
- APDU命令的结构和处理【转】
- 中国最大的python社区-python求最大数
- BestCoder Round #91 1001 Lotus and Characters
- css实战手册第四版 pdf_你真的了解CSS继承吗?看完必跪
- 如何高效地进行敏捷开发管理
- 【音频处理】如何“认识”一个滤波器?
- react+typescript报错集锦持续更新
- 新华三的背景_开放融合创新:新华三全力支撑运营商5G赋能百业
- Go语言之进阶篇 netcat工具的使用
- 今天,我需要你的支持!
- Android添加垂直滚动ScrollView 常见问题
- 编写高质量java代码_编写高质量的Java代码
- qq linux 2014,linux下安装 QQ2014
- 计算机与食品科学与工程关系,计算机在食品科学与工程中的应用课程标准.doc...
- raid5用户mbr还是gpt_对硬盘进行分区时,GPT和MBR有什么区别?
- ISP - bayer 是什么?
- 增加虚拟android内存,SD卡变RAM 增加虚拟内存方法
- 目前国内的跨境收款通道有哪些还不错的?
- Android 9.0 USER_ROTATION重启后恢复默认值
- ecshop模板支持php,让ecshop模板支持php运算
热门文章
- srwebsocket 服务器过段时间会关闭_Minecraft 开启服务器后必须做的一些事情
- 48岁的C语言,你知道它背后的历史吗?
- 一文带你学C语言,详细知识点思维导图!
- 基于FPGA的跳舞机实现
- php yield mysql_PHP 5.5 新特性关键字 yield
- XSS介绍_靶场DVWA,pikachu;其他XSS平台
- python语言里数字包括_4.1Python语言中的数字、字符串数据类型讲解
- 使用nginx+tomcat实现动静分离
- cocoapods安装
- “\”C++中的换行符