当前位置: 首页 > news >正文

人工智能通识 题目一

汉诺塔问题

题目描述

有 3 根柱子(记为 A、B、C)和 n 个大小互不相同的圆盘,所有圆盘初始时都套在柱子 A 上,且圆盘按 “上小下大” 的顺序叠放(大圆盘不能放在小圆盘上方)。要求将所有圆盘从柱子 A 移动到柱子 C,期间可借助柱子 B 作为辅助,每次只能移动 1 个圆盘。请编写程序,输出移动圆盘的每一步操作步骤。

输入要求

输入一个正整数 n(表示圆盘的数量,1≤n≤10,避免递归深度过大)。

输出要求

每行输出一步移动操作,格式为:移动圆盘x从柱子X到柱子Y(其中 x 为圆盘编号,按 “上小下大” 编号为 1~n;X、Y 为柱子编号 A/B/C)。

用例输入1

n=1

用例输出1

移动圆盘1从柱子A到柱子C

用例输入2

n=2

用例输出2

移动圆盘1从柱子A到柱子B

移动圆盘2从柱子A到柱子C

移动圆盘1从柱子B到柱子C

用例输入3

n=3

用例输出3

移动圆盘1从柱子A到柱子C

移动圆盘2从柱子A到柱子B

移动圆盘1从柱子C到柱子B

移动圆盘3从柱子A到柱子C

移动圆盘1从柱子B到柱子A

移动圆盘2从柱子B到柱子C

移动圆盘1从柱子A到柱子C

def hanoi(n, source, auxiliary, target): """ 递归实现汉诺塔移动逻辑 :param n: 当前需要移动的圆盘数量 :param source: 起始柱子(如'A') :param auxiliary: 辅助柱子(如'B') :param target: 目标柱子(如'C') """ if n == 1: # 递归终止条件:只有1个圆盘时,直接从起始柱移到目标柱 print(f"移动圆盘1从柱子{source}到柱子{target}") return # 步骤1:把n-1个圆盘从起始柱移到辅助柱(借助目标柱) hanoi(n - 1, source, target, auxiliary) # 步骤2:把第n个圆盘从起始柱移到目标柱 print(f"移动圆盘{n}从柱子{source}到柱子{target}") # 步骤3:把n-1个圆盘从辅助柱移到目标柱(借助起始柱) hanoi(n - 1, auxiliary, source, target) # 处理用户输入并调用函数 if __name__ == "__main__": # 获取用户输入的圆盘数量,确保输入是1~10的正整数 while True: try: n = int(input("请输入圆盘数量n(1≤n≤10):")) if 1 <= n <= 10: break else: print("输入错误!请输入1到10之间的正整数。") except ValueError: print("输入错误!请输入有效的整数。") # 调用汉诺塔函数,起始柱A,辅助柱B,目标柱C hanoi(n, 'A', 'B', 'C')

http://www.cnnetsun.cn/news/163251.html

相关文章:

  • 9大高级RAG技术详解:提升大模型检索效果的实战指南
  • Langchain-Chatchat移动设备安全管理知识库
  • Langchain-Chatchat JWT令牌机制知识库构建
  • Langchain-Chatchat文件共享权限管理问答系统
  • Langchain-Chatchat IOC指标查询问答工具
  • Langchain-Chatchat渗透测试报告生成辅助工具
  • 50、多线程编程:任务控制与并行迭代
  • 51、多线程编程全解析
  • ML Workspace终极指南:5分钟搭建专业级机器学习环境
  • Langchain-Chatchat DevOps运维知识整合实践
  • Jetpack Compose响应式布局实战:构建自适应多屏Android应用
  • 端侧AI部署技术深度解析:从架构原理到行业实战
  • 30、构建安全、高效的企业级Web农场与数据仓库
  • Langchain-Chatchat数据安全法解读知识检索工具
  • React-Move 动画库终极指南:从入门到精通的完整实践手册
  • xPack OpenOCD 安装配置完全指南:快速搭建嵌入式调试环境
  • Langchain-Chatchat嵌入模型本地化部署要点
  • Proton-GE Wayland完全指南:解锁原生Linux游戏体验
  • Zed编辑器插件生态:完整指南与开发实战
  • CppMicroServices 终极指南:5步掌握C++模块化开发
  • SVG转Canvas渲染引擎终极指南:从零到精通的完整教程
  • Browser-Use Web-UI完全指南:让AI智能体在浏览器中自主工作的终极方案
  • Langchain-Chatchat科研辅助系统构建:论文资料智能问答平台
  • FastAPI蓝绿部署实战指南:实现零停机更新
  • Langchain-Chatchat能否支持视频文档解析?多媒体处理展望
  • 如何在3天内用TFLearn构建医疗AI预测模型:完整指南
  • 【第1章·第8节】自适应MPC控制器的simulink建模与仿真
  • C# 简介
  • S3Proxy加密机制深度解析:透明安全的云端数据保护方案
  • 如何用NixOS和Hyprland构建终极Linux桌面:完整配置指南