littlebot
Published on 2025-04-13 / 1 Visits
0

【源码】基于C++的立方数码与2N皇后问题求解系统

项目简介

本项目聚焦于解决两个经典算法问题,即立方数码问题和2N皇后问题。立方数码问题围绕3x3x3立方体展开,需移动棋子达成特定目标状态;2N皇后问题则是在NxN棋盘上放置N个黑皇后与N个白皇后,保证同色皇后间不会相互攻击。

项目的主要特性和功能

立方数码问题

  • 问题描述:在3x3x3立方体里,移动1 - 24号棋子和空位0,以达到目标状态。
  • 算法实现:采用A算法(包含错位棋子数和曼哈顿距离两种启发函数)和迭代深入A算法(IDA*,同样使用这两种启发函数)。
  • 输出:生成从初始状态到目标状态的动作序列。

2N皇后问题

  • 问题描述:在NxN棋盘放置N个黑皇后和N个白皇后,使同色皇后不能相互攻击。
  • 算法实现:运用随机重启爬山算法和模拟退火算法。
  • 输出:生成符合条件的皇后摆放方案。

安装使用步骤

环境准备

  • 操作系统:Windows 7 64位。
  • IDE:Dev-C++ 5.11。
  • 编译器:TMD - GCC 4.9.2 32 - bit Profiling。

编译与运行

  1. 打开Dev-C++,导入项目文件。
  2. 选择相应源文件(如Ah1.cpp, Ah2.cpp, IDAh1.cpp, IDAh2.cpp等)进行编译。
  3. 运行程序,立方数码问题需输入初始状态和目标状态文件路径;2N皇后问题需指定N值。

查看输出

  • 立方数码问题:结果输出到output_Ah1.txt, output_Ah2.txt, output_IDAh1.txt, output_IDAh2.txt等文件中。
  • 2N皇后问题:结果直接显示在控制台或输出到指定文件中。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】