首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

算法题,求解!解决方法

2013-09-06 
算法题,求解!有九个环,每个环有“上”、“下”两种状态,记为:“∧”和“∨”。开始时九个环均为“上”态,即:∧9∧8∧7∧6∧5∧4

算法题,求解!
有九个环,每个环有“上”、“下”两种状态,记为:“∧”和“∨”。开始时九个环均为“上”态,即:∧9∧8∧7∧6∧5∧4∧3∧2∧1。假设我们要改变第i个环的状态(∧i -> ∨i或者∨i ->∧i),则必须满足 ∧i-1∨i-2...∨1 。即只有第i-1环为上态,其他在它前面的环(1->i-2)均为下态,才能够改变i环的状态。现需要将九个均为“上”态的环,改为九个均为“下”态,问至少需要多少步操作(在条件许可下改变任何一个环的状态称为一步)?
[解决办法]
第一反应就是汉诺塔,估计差不多
[解决办法]


∧9∧8∧7∧6∧5∧4∧3∧2∧1 ;开始是这个状态
改变环状态条件:
假设我们要改变第i个环的状态(∧i -> ∨i或者∨i ->∧i),则必须满足 ∧i-1∨i-2...∨1 。即只有第i-1环为上态,其他在它前面的环(1->i-2)均为下态,才能够改变i环的状态。

可以动第一个环 第一个环改为下态, 其他为上态
那之后怎么动?

[解决办法]
引用:

∧9∧8∧7∧6∧5∧4∧3∧2∧1 ;开始是这个状态
改变环状态条件:
假设我们要改变第i个环的状态(∧i -> ∨i或者∨i ->∧i),则必须满足 ∧i-1∨i-2...∨1 。即只有第i-1环为上态,其他在它前面的环(1->i-2)均为下态,才能够改变i环的状态。

可以动第一个环 第一个环改为下态, 其他为上态
那之后怎么动?

说错了。可以动第二个环,把第二个环改成下态, 之后好像也没动的了吧

热点排行