设置

关灯

第七十三章 算法设计的关键(第1节)

设计破解三阶魔方的算法,首先要明确的是两点。

一个是输入数据。

输入的数据,就是立体魔方六个面,所对应的九个格子颜色,数据的特点是,有六种颜色,每一种颜色总计是九个,另外,六个面最中间所对应的颜色固定。

第二就是输出数据,也就是计算的目的,得到还原魔方需要的最低步骤。

只要能达成这个条件,其他想要的数据,比如实现最低步骤的过程,也只是程序运算过程中,顺便做出的简单记录。

在明确了输入和输出数据,前后框架差不多就出来了。

这就和张震发过来的算法包差不多,只是难度的级别上调了几十、上百倍,甚至更高。

接下来,设计开始。

建模。

建模就是把现实问题变成数学问题,用数学的公式、代码来表达出,魔方各个小格子之间的关系,以及可能做出的转换方式。

这一过程有两种方式。

一种是以空间位置为基点,也就是固定了位置,颜色会发生变化;一种是以固定颜色小格子为基点形成位置变换。

选定好建模的方式后,就进入真正设计的过程。

赵奕才刚刚进入思考,就碰到了巨大的问题:如何能确定一种扭动,是让魔方向着还原的方向靠近,而不是让它变得更加混乱?

这是个超级难题。

破解了这个难题,几乎等于完成了算法。

所以,此路不通。

重新想。

那么换一种角度去考虑,可以寻找同样颜色最多的面,以此为基点去实现还原,就和多数人的选择一样,先还原三阶魔方的一个面,其他就变得容易多了。

但是,科学是严谨的。

如何证明从相同颜色最多的面开始,实现还原的速度就是最快的?

如何证明先还原一个面是最快的?

赵奕才刚开始设计程序,就

本章未完,请点击"下一页"继续阅读! 第1页 / 共5页