返回第七十三章 算法设计的关键(第1/3页)  规则系学霸首页

关灯 护眼     字体:

上一章 目录 下一页

    设计破解三阶魔方的算法,首先要明确的是两点。
    一个是输入数据。
    输入的数据,就是立体魔方六个面,所对应的九个格子颜色,数据的特点是,有六种颜色,每一种颜色总计是九个,另外,六个面最中间所对应的颜色固定。
    第二就是输出数据,也就是计算的目的,得到还原魔方需要的最低步骤。
    只要能达成这个条件,其他想要的数据,比如实现最低步骤的过程,也只是程序运算过程中,顺便做出的简单记录。
    在明确了输入和输出数据,前后框架差不多就出来了。
    这就和张震发过来的算法包差不多,只是难度的级别上调了几十c上百倍,甚至更高。
    接下来,设计开始。
    建模。
    建模就是把现实问题变成数学问题,用数学的公式c代码来表达出,魔方各个小格子之间的关系,以及可能做出的转换方式。
    这一过程有两种方式。
    一种是以空间位置为基点,也就是固定了位置,颜色会发生变化;一种是以固定颜色小格子为基点形成位置变换。
    选定好建模的方式后,就进入真正设计的过程,
    赵奕才刚刚进入思考,就碰到了巨大的问题:如何能确定一种扭动,是让魔方向着还原的方过程向靠近,而不是让它变得更加混乱?
    这是个超级难题。
    如果破解了这个难题,几乎等于完成了算法,‘上帝之数’也可以把前缀去掉。
    所以,此路不通。
    重新想。
    那么换一种角度去考虑,可以寻找同样颜色最多的面,以此为基点去实现还原,就和多数人的选择一样,先还原三阶魔方的一个面,其他就变得容易多了。
    但是,科学是严谨的。
    如何证明从相同颜色最多的面开始,实现还原的速度就是最快的?
    如何证明先还原一个面是最快的?
    赵奕才刚开始设计程序,就碰到了一大堆的问题,他深吸了一口气,逻辑思维到此结束。
    接下来是因果思维时间。
    赵奕了解算法设计的难度,他打开了系统界面,干脆使用了一个科研币。
    瞬间。
    思维模式发生了改变。
    赵奕再盯着电脑屏幕,思维就出现了跳跃,他没有去纠结想到的难题,而是跳跃到输入魔方的数据分析上。
    比如,以每一面中心颜色为基准,其他面相同颜色的小格子,转换到对应中心面,所需要的最低步数。
    比如,有多少格子紧挨着相同颜色的格子,还有它们所在的具体方位,都要详细做出纪录。
    等等。
    消耗科研币提升了因果思维模式后,《因果律》和《联络律》的使用,都成为下意识的事情,他一直不断地进行思考,手指敲击个不停的,把思考出的内容,放在键盘上转换为代码。
    编写。
    再编写。
    一个小时过去了。
    赵奕用力按按额头,发现大脑异常的疲惫,他看了一眼精力数值:
    怪不得!
    看了眼屏幕上的代码,他干脆咬牙一狠心,使用了四个学习币。
    虽然赚学习币并不难,每天都入账超过二十个,但还是不习惯用来补充精力。
    精力,能睡觉补充!
    利用学习币来补充精力,就像是玩游戏充钱买经验,实在有些过于奢侈了。
    继续!
    在继续工作了半个多小时后,赵奕编写了二十一项对输入魔方的数据分析,他的手指停下来以后,下意识就使用了《因果律》,来测算数据是否对还原魔方有效。
    利用这个方法,排除了三项不相干的分析数据,剩余的十八种分析,都是

『加入书签,方便阅读』

上一章 目录 下一页