他,说的也都是事实,但赵奕还是感觉很不爽。>
没有高效的计算方法?>
世界难题?>
老子马上就给它破解掉!>
……>
赵奕带着破解难题的决心,又奢侈的使用了个科研币,花费两个小时时间,终于把判断筛选程序做了出来。>
这是算法的核心。>
能判断扭动是否会让魔方变得更混乱,就能摒弃掉很大一部分计算,完善算法的目的就在于此。>
接下来的工作,就是让魔方做扭动。>
立体的魔方有三种方向的扭动可能,每一个方向的可能为9次,总计就是27种可能(扭转180度也算作一步)。>
第一步筛选程序要判断27次。>
第二步做一个简单的剔除重复,也就是让第二步扭动后的魔方,不能和第一步扭动后或未进行扭动的魔方状态重复,直接就能排除五种可能。>
每一个做判断的次数就只有22次。>
然后继续、再继续。>
这就是最普通的全覆盖计算办法,完全就是依靠计算机强大的性能,来推算魔方的还原步骤。>
当然了。>
计算量肯定是庞大的惊人,只要稍稍混乱一些的魔方,普通家用电脑的性能肯定是不够用的。>
这时筛选程序就起作用了。>
每一步利用筛选程序,都会筛掉很多的计算分支,而越是靠近魔方还原,让魔方变得更混乱的扭动就越多,往上乘的底数也就越来越小,直到最后一步只有一种能让魔方还原。>
这大大减少了计算量。>
但,还是不够。>
魔方处在非常混乱的状态,需要的步数一旦超过18次,计算量依旧会是个天文数字。>
赵奕用了个‘筛选排除对比法’。>
针对魔方扭动的每一步,都会筛出让魔方更混乱的步骤,中间每个分支的一小步,都是筛选固定的22次,根据魔方越接近还原,使其变得更混乱的扭动就越多的原则,同代的筛选就可以做出对比,筛选数量少的分支,就可以直接暂停运行。>
这样计算量再次大大降低。>
赵奕粗略的估算了下,需要十五步还原的魔方,可能的筛选次数,最大也不超过三千万次。>
当然。>
具体还是要运行才知道。>
赵奕随意吃了点东西,又加班了两个小时,一直到晚上十二点多,才终于写完了代码。>
用了一个学习币补充精力,他的眼球中还是布满血丝。>
算了!>
还是明天再调试吧!>
他正准备关电脑的时候,就看到企鹅多了个消息,是一个老年书生的头像。>
打开一看。>
来自“计算机技术交流群”的刘教授?>
“刘教授?”>
赵奕感到很惊讶。>
刘教授发来的消息很直接,“赵奕同学,我这里有几个算法包,已经能够调试运行,但里面的算法太复杂,需要的计算量太庞大,你有没有时间,抽空帮忙看看,能不能简化下算法?”>
“什么样的算法?”赵奕马上打字回复。>
刘教授回复:“主要是数据分析,根据系统的数据库里的内容,寻找输入提问的最优解。”>
赵奕表情木然的对着屏幕看了半天。>
上面的一句话每个字、每个词,他都知道是什
本章未完,请翻下一页继续阅读.........