【源码+文档】基于C语言设计火柴棍移动

基于C语言设计火柴棍移动

任务描述使用火柴棍可以搭出如下图所示的等式,编写搜索算法程序,移动一根火柴使等式成立。

主要任务如下:

允许在一个固定的等式库(两位数以内的加减乘法)中选择,从而给出答案;

允许使用者自己定义,或者输入一个可以求解的等式。如果无解,回答无解;

给出更多的题目和答案;

(选)允许移动 2 根火柴棍;

(选)给出从等式变为新的等式的题目和难度。

一、问题建模

1.1 状态空间

对于本次火柴棍移动问题(必做),参照状态空间表示法给出以下定义:

○1 状态:等式 x 中每个字符移动一根火柴(加、减、自身移位)可能变成的所有等式

○2 初始状态:原始等式 x

○3 目标状态:由原等式 x 移动一根且成立的等式

○4 转换操作:按照移动一根的规则更换等式中某个字符,获得新的等式

○5 代价函数:生成一个新等式移动的火柴根数(或移动操作总权值)选做中移动两根与上述类似;

考虑一个等式 x,假设 x 由五个字符组成(如 6+4=4),将每个字符看作一个格点,格点之间有路径相连,每条路径包含上一格点字符可能变成的新字符,如下图所示,搜索时遍历从起始字符到末位字符的所有路径,找出使等式成立且仅移动了一根火柴的全部路径。

 源码和文档都托管在了【WRITE-BUG数字空间】上面了,有需要的可自取~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值