解魔方演算法
『壹』 魔方的口訣是什麼
魔方新手入門 魔方教程一步一步公式口訣圖解
一、(第一步)在第一面做一個十字,形成如下的樣子:
『貳』 魔方簡單口訣表,我是個新手。說的簡單點
第一步)在第一面做一個十字,形成如下的樣子:
『叄』 三階魔方的最簡單的公式
鏈接:https://pan..com/s/1U4iWQfn-D-t5NoTRR7-VpA
玩魔方可以鍛煉你的七種能力:
1.眼力;在最初期,玩最基礎的三階魔方時就有多種變化,用眼睛去觀察、辨別每一顆魔方的位置。
2.耐力;玩魔方時,沒有掌握方法,琢磨出方法,我們會一直轉不回來,越著急想轉出來,越不能轉出來。這時候,我們就需要一定的耐心去克服,慢慢去了解。
3.手力;轉魔方需要雙手並用,可以很好的鍛煉手的靈活性和協調能力。
4.記憶力;在開始復原魔方時,就需要很好的記憶力去記住一些公式,在你想提高自己的還原速度時,就會多加練習了。
5.空間判斷能力;轉魔方時,總要去想像,那個魔方怎麼樣能還原,在這樣的想像過程中,你就從中鍛煉了自己的空間判斷能力。
6.注意力;還原魔方的我們,需要專注,如果是自己琢磨,更會樂在其中,沉浸於還原魔法的世界裡。
7.反應速度;在專業魔方比賽競速時,鍛煉選手的反應速度。
魔方尤其能迅速的鍛煉空間思維能力,是一個不可多得的人腦體育活動。玩魔方更是象徵智慧和時尚的休閑活動。
『肆』 魔方陣演算法是怎麼解出來的
麻煩少少,其實你在網上也可以找到些,種類繁多。
奇數用的是常用的斜線填數法
偶數的演算法是:
當n為4的倍數時:採用對稱元素交換法。首先把數1-n^2按行從上至下,從左至右填人方陣的n×n格。然後,把方陣的所有4 ×4子方陣中的兩對角線上位置上的數固定下來不動;所有其它位置上的數關於方陣中心作對稱交換,也就是把元素a(i,j)與元素a(n+1-i,n+ 1-j)的值交換。
當n為非4倍數的偶數(即4m+2形)時:首先把大方陣分解為4個奇數(2m+1階)子方陣。上述奇數階魔方給分解的4個子方陣對應賦值,上左子方最小(i),下右子次小(i+v),下左子方最大(i+3v),上右子方次大(i+2v),即4個子方陣對應元素相差v,其中v=n*n/4,然後作相應的元素交換:
a(i,j)與a(i+u,j)在同一列做對應交換(j<t或j>n-t+2)
a(t,1)與a(t+u,1);a(t,t)與a(t+u,t)兩對元素交換
其中u=n/2,t=(n+2)/4
我寫的程序:(比較傻的方法,因為昨天太晚了不想優化了:P)
include <stdio.h>
#define N 100
void main()
{
void n1(int n);
void n2(int n);
void n3(int n);
int n;
printf("please input n:");
scanf("%d",&n);
printf("\n");
if((n%2)!=0)
n1(n);
else if((n%4)==0)
n2(n);
else
n3(n);
getch();
}
void n1(int n)
{
int i,j,count=0,num[N][N];
for(i=0,j=(n-1)/2;count<n*n;)
{
count++;
num[i][j]=count;
if(count%n==0)
{
i++;
}
else
{
i--;
j++;
}
if(i<0)
i+=n;
if(j>=n)
j-=n;
}
count=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("%5d",num[i][j]);
count++;
if(count%n==0)
printf("\n");
}
}
void n2(int n)
{
int t,i,j,count=0,num[N][N];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
count++;
num[i][j]=count;
}
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{
if(i!=j)
{
t=num[i][j];
num[i][j]=num[n-1-i][n-1-j];
num[n-1-i][n-1-j]=t;
}
}
count=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("%5d",num[i][j]);
count++;
if(count%n==0)
printf("\n");
}
}
void n3(int n)
{
int i,j,m,t,v,count=0,num[N][N];
v=(n+2)/4;
m=n/2;
for(i=0,j=(m-1)/2;count<m*m;)
{
count++;
num[i][j]=count;
if(count%m==0)
i++;
else
{
i--;
j++;
}
if(i<0)
i+=m;
if(j>=m)
j-=m;
}
for(i=m,j=(m-1)/2+m;count<2*m*m;)
{
count++;
num[i][j]=count;
if(count%m==0)
i++;
else
{
i--;
j++;
}
if(i<m)
i+=m;
if(j>=2*m)
j-=m;
}
for(i=0,j=(m-1)/2+m;count<3*m*m;)
{
count++;
num[i][j]=count;
if(count%m==0)
i++;
else
{
i--;
j++;
}
if(i<0)
i+=m;
if(j>=2*m)
j-=m;
}
for(i=m,j=(m-1)/2;count<4*m*m;)
{
count++;
num[i][j]=count;
if(count%m==0)
i++;
else
{
i--;
j++;
}
if(i<m)
i+=m;
if(j>=m)
j-=m;
}
for(i=0;i<m;i++)
{
for(j=0;j<v-1||j>n-v+1;j++)
{
t=num[i][j];
num[i][j]=num[i+m][j];
num[i+m][j]=t;
}
for(j=n-v+2;j<n;j++)
{
t=num[i][j];
num[i][j]=num[i+m][j];
num[i+m][j]=t;
}
}
t=num[v-1][0];
num[v-1][0]=num[v+m-1][0];
num[v+m-1][0]=t;
t=num[v-1][v-1];
num[v-1][v-1]=num[v+m-1][v-1];
num[v+m-1][v-1]=t;
count=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("%5d",num[i][j]);
count++;
if(count%n==0)
printf("\n");
}
}
『伍』 求魔方入門解法
可以去魔方吧或者魔方小站學習 一下給出的可能看不到圖,實在不會可以告訴我你郵件。我給你發一個層先法的詳細教程,也可以加我的QQ:215316135
魔方公式基本都是用字母表示的,以下我把層先法中要學到的幾個公式列舉出來,大家現在不必理睬它,但學會以後,就可以直接從這兒復習了:
第一層角塊: F D F' R'D'R
第二層棱塊: U R U'R'U'F'U F U'F'U F U R U'R'
頂面十字: R'U'F'U F R
頂面和還原側面:R'U'R U'R'U2 R L U L'U L U2 L'
調整第三層角塊:L F'L B2 L'F L B2 L2
學習還原方法之前,我們先來Warm up!(學個單詞,「我母阿婆」是熱身地意思,呵,開個玩笑而已) 大家平時擰魔方是不是真的用「擰」的呢?其實那樣擰魔方對今後的學習是不利的,大家有沒見過高手還原魔方?在他們還原的過程中,你幾乎看不到他們的手肘做大的動作,他們只使用手指和手腕,這樣就大大提高了每個動作間銜接的速度。如果你並不想追求速度,用手指做公式依然很關鍵,適應使用靈活的手(指)法去使用公式,那麼不但提高速度,而且也方便公式的強行記憶。手法對於魔方而言,就相當於《天下無賊》中劉德華的手藝,如果大家都只滿足於做個配角,那麼你也就是路邊的一個小蟊賊了。
想學手法了嗎?想學我也沒法教啊……要能在這插視頻就好了,大家還是自己到視頻上去搜「魔方基本手法」吧。其實手法其實並不是那麼奧意,就是用手指撥動魔方的頂面,用手腕轉動魔方,然後把一些手上的動作連貫在一起。啊,要求有點高了。其實這些對初學者並不重要,如果聽不懂或者沒有專業魔方的話,就跳過這一步吧,雖然這確實是基礎……如果真的很好奇,不如學會還原以後再來修煉。
________________________________________
(第一步)在頂面做一個十字:
首先,你要明確目的。我們要在頂面拼成如圖的一個藍色的四指爪子。注意,棱塊是有兩個面的,所以它也具備有兩種顏色。如圖,我們要使它的兩種顏色分別與和它同色的中心塊對齊。
舉例來說:圈裡的那個帶藍和紅的棱塊,它具備藍色和紅色兩種顏色,我們不僅要把這個棱塊——帶有 藍色的面 和 藍色的中心塊 對接上,而且,還要使它的另一種顏色——紅色面,與 紅色中心塊 對上。
十字由4個棱塊、5個不同顏色的中心塊組成,我們需要做四次這種雙向的對接就可以形成這么個爪子了。拼這一步,如同下象棋,只是棋子的運動規則確實很誇張、很抽象罷了,而且它還具備方向性(講深奧了,其實就是塊的位置對了,顏色卻對不上的情況而已)。我們只要把它想像成棋子,為了到達目的地,讓它分步驟移動。
首先我們找到目標,比如,藍紅棱塊,我們先確定它應該在的位置(免的你像嬰兒一樣亂掰),並找到塊本身(過去我看到過某傻蛋,在那找找找找老久,然後跑來說:「沒有」,這實在是……大家在找塊的時候一定要先明確它帶什麼顏色,找棱塊就老老實實在棱塊里找,角塊在角上找,就那幾個塊,按層次不重復的找,會找5分鍾?還跑來跟我講找不到?不可理喻…);
然後試著把它藍色的面轉到與藍色中心塊對齊的位置,接著把藍色中心塊所在的這個面轉轉,讓藍紅塊的另一個面,紅色面與紅色中心塊對齊。這樣就完成了一個。以經驗來看,我們不一定非要很死板的每次都先對藍色,這就需要大家靈活變通了;也可以先讓紅色(或者別的顏色的棱塊)與中心塊對齊,然後再轉這個面,再把藍色對上。
大家肯定會碰到,為了對另外幾個十字的部分,必須打亂原先對好的部分的情況,這時我們只能臨時打亂一個部分,達到目的立刻回到原位,否則這步就是廢棋,不但白轉一步,而且打亂了原先的部分。大家自己琢磨,我說了還是我的。
對於初次接觸的新手,這第一步看上去似乎不太容易,其實多擰幾下你就會發現,「原來是這樣啊」。它們都是有規律可尋的,主要還是理解。摸索吧,多轉轉(先想後動手,要有目的)。看人了,有的人三分鍾學會,有的人三星期學不會……至於做成這一步的要求,高手在觀察後一般只擰8步而且在3秒之內,這主要還是看今後的練習和總結。(告大家一個提高畫十字速度的練習方法:先花些腦筋想好擰出十字的總步驟,然後一次性擰出十字,最後一直練到用很短的時間觀察考慮,然後閉眼畫十字。不過前提是這一步你已經掌握的很熟練了)
________________________________________
(第二步)對好頂面和頂層周圍:
做好這一步其實你只要學會一招就夠了。那藍色的角色塊,它藍色的面轉來轉去就6種位置,即左圖中字母所示,第F種在AB那個塊的下面壓著體現不出來,我水平有限,只能把它很不協調的標出來了……
我們的目的就是把該小塊調整到有利於還原的魔方的位置,所以叫目標塊,由此看來CED(不是LED點陣字……這里字母所在的面是什麼顏色,字母就用什麼顏色,大家把左圖和右圖的完成圖比較一下看看我字母顏色標注的對不對?)應該是目標小塊正確的位置,E則是目標塊藍色面的正確朝向。(我不會全用顏色表示,因為我和大家一樣做菜鳥的時候也沒人給標出來,免的大家都不變懶,如果學魔方真的那麼容易,一小時就學會,我也就不研究魔方了……)
注意,目標塊藍色面的朝向一定要正確,一定要像完成圖那樣,目標塊的三個面是分別與它所在的魔方的三個面的中心塊的顏色相同的(看傻了,邊看魔方邊看字才能懂……),而不是只要藍色在上面,就萬事大吉。那樣你只能完成一個面,下一步根本沒法進行,如果不理解你可以動手試試。
說明一下,下面的字母大家能理解嗎?比如大寫字母F,F是front的首字母,意為「前面」。在公式中,我們用簡便的字母代替文字說明,公式的每個字母都是一個轉動指令,大家看到「F」就知道要擰魔方的前面了——即前面順時針擰90度。有時字母後加了「』」,它表達的是——逆時針轉90度。比如「F』」本來意義上的前面順時針旋轉90度改成與之方向相反的逆時針旋轉90度。還有時,字母加了個「2」,你就得擰180度了,順著逆著擰180結果都是一樣的,所以不要死板,你怎麼順手就怎麼擰。類似的其他字母也是這樣,大家自己動腦思考,我就不一一列舉了,有比較復雜的字母,大家參照附帶的公式字母說明。
回到第二步的還原思路,我們拿A情況舉例:
F
D
F'
把頂層的目
標塊的位置
轉到底層來
接應藍紅黃角塊 讓藍紅黃角
塊轉到目標位。 轉回頂層。
而對於目標塊的藍色朝向B,怎麼解決呢?是不是反過來了? 其實是一樣的,正的你學會了,它現在反過來了你就也反過來擰。也就是說,A情況是用F D F',反過來作用在B情況上,就得使用R' D' R。
大家能總結嗎?這一步萬變不離其宗。第一步是把目標塊移動到目標位的正下方,而且藍色面不得朝下,否則我們還得想辦法讓藍色到側面來。這樣我們就把所有情況化簡成了A和B兩種,大家想想是不是?!然後我們把十字的一個指頭放下來(目標塊的藍色面在哪個面上我們就擰哪個面,上例里藍色所在的面是中心塊為紅色塊的面,所以我們就把紅色的指頭放下來),讓目標塊鑽進去,然後指頭歸位,目標塊也就到位了。
而對於C、D、E、F位置,你總可以用旋轉側面和底面將其轉到A或B位置。這里是幾個例子 (主要還是理解,如果還不會就把他們背下來,然後再理解):
F D2 F' D' F D F' D' R' D' R D F D F'
當你學完這些,也就基本上熟悉了魔方的結構以及運行規則了。這些需要兩天時間的消化,大概花3,4個小時吧,地基打牢了才能蓋高樓啊。加油吧!
________________________________________
(第三步)放第二層的棱色塊:
由上一步到這一步的圖,大家肯定看出了這步我們要處理的是中間層紅白,紅黃,橙白,橙黃四個棱色塊。這次,你先把魔方翻過來了(如右圖),藍面朝下,綠面朝上,再在頂層(頂層與頂面並不完全相同,這個概念不要混淆)找到帶有紅、黃、橙、白的四種棱塊,隨便選擇一個,我們就從它開始,這里我以紅白棱塊為例(我們在這一步驟中視它為目標塊),如果你發現目標塊不在頂層,而是被夾在第二層的兩個中心塊之間了,不要著急,用R U R' 把它拿出來,再用我們學過的第二步,還原第一層,就會出現左邊兩種中的任意一種情況了。
現在我們把目標塊擰到如圖所示的位置,形成一個同色的T字(只要能連成T字方可,T字左右塊的顏色大可不必理睬)。下一步就是把目標塊插入到上圖紅色箭頭所指的位置。
對於第一種情況,使用下面的演算法,這個演算法可以說是大家學魔方歷程中所學的第一個演算法,不要把它想像成數學公式,它很直觀,而且需要你花一分鍾親手印證它對於解這一步是可行的。第一行的圖上面有一些綠色箭頭,它將告訴你怎麼擰。動手吧!
U
R
U'
R'
U'
F'
U
F
前幾步把兩個小塊組合起來了,就像兩節車廂的那種公交車被接在一起。
讓車向前開一段(藍色是車頭)電梯上來,車倒進來,電梯下去。PS:是不是有點變形金剛的意思。。。
整個演算法是URU'R' 加上U'F'UF(公式1),是不是很有規律?好像後一半U'F'UF正好是 前一半URU'R'的鏡像吧(現在開始解釋下全篇的第一副圖,假想沿對角線切割魔方的面是塊玻璃,那不就是物理上學的平面鏡成像嗎?所謂的鏡像就是這個意思,打個比方:你照鏡子,想讓鏡子里那個人的左手做動作,那麼你是否要抬起右手呢?話說回來就是前四步轉上面和右面,後四步則反過來,轉上面和左面)。其實總結下規律,你只要記住「上面順時針轉一下,右邊順時針轉下,然後上面回來,右邊也回來」基本上就可以記住了,因為後面幾步只是「照鏡子」,總之理解了,一切就都好辦。
如果大家完全掌握並理解了第一種的解法,第二種就不在話下了。對比一下不難看出兩種情況的差別僅僅在於目標塊的顏色不同,一個上白下紅,一個上紅下白。這差別只是一個表象,就好比你從左邊走到中間與你從右邊走到中間一樣,完全是「平面鏡成像」。。。按照第一種解法的原則,我相信你不看公式就可以自己解決它了。考慮到有些人轉不過這個彎(比如我作為初學者的時候時,搞死想不通,硬著頭皮背公式才勉強還原),我把公式留給大家,不過最好先自己試試,如果成功了,你會極其的驕傲!「啊!媽媽,我真是越來越佩服我自己了!」要知道,嘗試與理解才是玩魔方的精神所在,不去思考只照公式擰,還原了也惘然啊:U' F' U F U R U' R'
碰到過左圖的情況嗎?目標塊不在頂層,而被夾在了第二層別的目標塊的位置,甚至是自己的位置,但朝向卻反了。那麼,正如上文中我提到過的,用R U R'加F'U'F把它拿出來,再用剛學的內容放進去。或者你也可以先做別的顏色的目標塊。如果不是如圖的情況,它自己佔了別人的地,也就會被換出來了。
提示:用F2L(高級玩法中一種手法的簡稱),可以將我們剛學的二、三兩步,即插入角塊和棱塊合成一步進行。要問這方法與入門法有什麼區別的話,其實僅僅在於速度了,對於想追求速擰的朋友們,那它便是必修了。偷偷告訴大家一個非常好的提高這兩步速度的秘密,大家不必死板的吭哧半天去還原四個角塊,再折騰半天找到四個棱塊來還原。大家可以在做第二步尋找角塊的同時,找到與之匹配的棱塊,然後還原了這個角塊,直接跳到第三步還原這個棱塊。這樣做四次,我們就把一二兩步中的八個小步驟簡化成了四步。雖然擰的步數一樣多,但在思路和觀察上有明顯的優勢!________________________________________
(第四步)在頂面上畫十字:
下面我們要學一個新的公式,這個公式會使頂層綠色塊在如下的情況中從左到右依次「進化」。(看過數碼寶貝么,這一步就如同是數碼寶貝從最低級的滾球獸(即情況一),進化到亞古獸(二),然後從亞古進化成暴龍獸(三),最後超進化成鋼鐵暴龍獸(情況四)。
情況1 概率1/8 情況2 概率1/4 情況3 概率1/2 情況4 概率1/8
在這一步中我們需要無視角塊,只看頂面棱色塊,比如左圖這樣的,就算是第3種情況。右圖是第2種情況。
那麼,當大家碰到情況一,怎麼辦呢? 進化!
你作為「被選召的孩子」,該怎麼讓你的「數碼寶貝」進化呢?我們也需要「進化鑰匙」。那就是下面的公式2。運用它(至於從哪個面開始擰,這種先邁左腳還是先邁右腳的問題,暫時還是不要討論的好……直接擰),就會把一個綠格在中間的這種情況進化為三個綠格一豎排。果然,情況一變成了情況二。
R'
U'
F'
U
F
R
當魔方頂面情況二出現後,我們就該意識到:要想戰勝敵人,就得再進化!
要想把情況二變成情況三(左圖),其實只要重復上面的公式2即可,便形成了右圖的情況四。那麼這次我們又該從哪個面擰起呢?…… 不是我羅嗦啊,這是個原則性很強的問題。我再次打個比方:
請大家把這個豎杠看成針頭,讓針頭指向自己(無論針頭的哪個磁級指向你,總之不會是因為你有磁性的……所以請不要找針頭的南北級在哪頭,只要指著你就行)。指向你後,再照公式擰,就完成進化了!(想問為什麼要先指向你,再用公式?那就別讓它指著你,直接套公式,擰完後你自然就明白了。……還不明白!我慘叫!怎麼會不明白?因為那樣擰魔方就會被打亂了!說起學魔方的最高境界是什麼?我想大概就是學會教會別人玩魔方吧!)
不廢話了。我們已經解決了情況二,接下來,我們就會看到一個「L」型的綠色的小箭頭了。怎麼辦?還是用這個公式啊,無論你怎麼進化,都得用進化鑰匙才行!那我又要羅嗦了:這回又得從哪開始擰啊?孩子!記住!上次是讓「針頭」指向你,這回針頭變箭頭了,你還是得讓它指向你(正好也是上圖所示的拿法),然後再次套公式2……
頂面十字出現,第四步完成了!
________________________________________
(第五步)還原整個頂面:
在我們的入門玩法中,魔方頂面的(除還原以外)只可能出現以下7種情況。(大家要習慣下面這種魔方情況的表示方法)
先請大家記一個公式:R'U'R U'R'U2 R(公式3)和這個公式的鏡像:L U L'U L U2 L'(公式4)
所謂鏡像,我在前面已經介紹過了,如果你還不懂,很正常,這只能說明我表達能力很悲劇……。不過我想大家自己轉轉看也就應該明白了。
接下來請大家在上面幾種情況中找出自己所遇到的情況,我們來找規律一,然後各個擊破。別看有這么多種情況,其實只用一個公式解決。我們按照從簡單到復雜的順序來講。
如果我們運氣好,就會遇到情況1(第一副圖)大家就把魔方的頂面按照圖上的樣子擺,使你的魔方的頂面能和圖上的重合。當然,首先大家要看出它是情況1還是情況2,它們的確很相似,不過顯然它們確實是不一樣的(如果你還不是很清楚,就轉轉頂面,和圖上的對照一下就清楚了)。雖然很廢話,但這是新手經常搞混的地方。它們既然如此相似,那麼我們就把他們放在一起記,遇到情況1,並與圖1的樣子對齊後,就用上面介紹的公式3。如果碰到情況2,我們同樣要與圖2對齊,然後用公式4。就可以還原頂面了。
有些人會覺得這兒學起來有些吃力,明知道它是哪種情況,可就是擰不對。這樣的人也很常見……我遇到過這樣兩種傻冒:第一種,他總是轉著轉著就把頂面當前面擰了,然後就來找我了。。。如果你習慣擰一下甩甩雙手,再擰一下,再甩甩,然後不動腦子就拿起魔方繼續擰下一步,當然就會出現這種現象了。在沒有特殊要求的情況下,頂面的中心塊始終是綠色的啊!它要始終對著蒼天!……第二種孩子:它分出情況後,脫稿後,卻不知道用哪號公式了。情況1、2的頂面上會有三個格不是綠色,但它們側面始終有一面顏色是綠色。記住,三個塊中位於中間的那個塊的側面也有一側是綠色的,這一側面的綠色,它在哪個平面上,你就從哪個平面擰起,然後把公式順下來。比如情況1,三個帶綠色側面的塊,的中間的那個塊,的綠色側面,在右邊(R)是不是?那麼我們就先擰右邊——R',從右邊開始擰的是哪個公式?公式3吧,然後就把U'R U'R'U2 R順下來。(話很拗口,關鍵還是在實踐和理解,那樣思維就清晰多了)
下面我們來解決情況類似的圖3、4、5。大家會發現他們頂面都有兩個角塊沒被還原成綠色。而圖6、7呢?它們則是頂面有四個角塊沒有被還原成綠色,也就僅僅呈現出一個十字而已。那麼,請大家記一個口訣「二後四左」。什麼意思呢?就是說:頂面如果有兩個角塊沒有被還原成綠色,就讓這兩個角塊中的一個角塊,帶綠色的那個側面(圖中用一杠表示綠色側面的位置),(對於你而言的)要在左後角朝後(如圖3、4、5上已經是正確的擺法);那如果有四個角塊沒有被還原,就讓這四個角塊中的一個,的綠色側面,在左後角的位置上朝左(圖上也已給出了正確擺法)。
然後按照正確的擺法,用公式3(再好奇都不要用二號,因為那是不起作用的!)。轉完公式後,你就會發現,頂面又回到了圖1或圖2了。這里有點用詞不當了,並不是周傑倫的《回到過去》,雖然情況1、2是「過去的畫面」,但其實還原並非「離你而去」,透過現象看本質,其實我們是把這些復雜的情況簡化成情況一和情況二來解決了。
上面的文字看不懂沒關系,使勁看就能看懂了……
一定要注意實踐啊,當自己不確定自己所理解的是不是對的,那就按照自己理解的擰一遍,如果目標達到了,那你的理解基本上沒錯。
提示:直接使用高級演算法中的OLL手法,就可以直接還原頂面了!別以為遇見救星了……既然是高級演算法,有它的方便,自然也有它的難度。
________________________________________
(第六步)調整四角順序:
如何將下面這幾副圖所顯示的情況調整成右圖呢?和前面學到的幾個公式一樣,運用公式前,我們先得了解一下怎麼擺?(即清楚哪個面朝前哪個面朝後哪個朝左哪個朝右,大家學了這么久,對魔方每個面的方位一定要清清楚楚才行)從哪擰?
我們不必立刻在自己的魔方上找上面的四種情況,我們先來找規律。
頂層一圈是由四個長條,每個長條三個格子組成的。大家有沒發現:四個長條中有一種長條(只會同時出現一個,或者四個,甚至有時一個這樣的條都不出現,後面我們會講到,現在你只要知道,這就是規則,除非你把魔方拆了,否則不會出現其它什麼有兩個長條都帶兩邊同色格子的情況),它在兩側的格子是同色的(就類似於上面四副圖中位於前面的長條),位於中間的那一格我們姑且無視它,即便圖三中長條的三個格都同色,我們也不要睬它,關心毫無意義的東西是在浪費時間。
為方便一部分人理解,我又要幼稚地比喻了:我們把長條中兩側同色的格子看成轎車後面的尾燈;既然是尾燈(沒車不要緊,總見過車吧,車的屁股後面的兩側有兩個倒車用的警示燈,這就是傳說中的尾燈,明白了吧),當我們正對著車時,尾燈無論是紅的、黃的、還是橙的、白的,它就是沒亮,也是在車後面的。
魔方也是這樣,我們把「尾燈」放在魔方的背面,然後用下面的公式:
有個孩子問我:初始情況里怎麼看不到尾燈?——因為它在魔方背面! L
F'
L
B2
L'
F
L
B2
L2
如果你是左撇子(很不人性化的就是,沒有專門教左撇子玩魔方的內容,在這里意思一下),也可以用這個公式的鏡像:R' F R' B2 R F' R' B2 R2
前面括弧里還提到了另外兩種情況:頂層長條四個面都是「尾燈」(即這一步的第一副圖,也是學習這一步最終形成的情況);第二種是沒有一個長條帶尾燈的。如果你還沒進行這一步,就已經是這一步所形成的「終結版」,那麼你運氣真好……如果你遇到的是第二種,其實也很簡單:你暫時不必顧忌從哪擰,沒有道理的說——沒有尾燈的車,無論哪個面都算後面。直接擰上面的公式就可以把它變成帶尾燈的情況了,然後按一般讓尾燈朝後,重復上面的公式,就解決了!
________________________________________
(第七步)調整棱塊,還原整個魔方!
最後一步了,你離還原魔方只差最後一步了!「這是你還原魔方的一小步,但對於還原整個魔方而言卻是一大步!」 昨天,周圍的同學還在鄙視地說你是嬰幼兒,而今天,你即將「脫貧至富」,你的IQ也將從50一下升到150!此時,你完全有理由說:「全是我自己看會的!」 朋友們將用無比佩服的眼光看你;如果還有不服的,來,給他個把月的時間研究,讓他也還原試試!
不要激動的太早,雖然這一步只要重復使用兩次第五步學到的公式,但還是有一少部分人吭哧老半天。閑話少說,進入正題:
此時呈現在我們面前的魔方,一般是帶有三個尾燈和一個「頭燈」。尾燈的意象大家應該都很清楚了,怎麼又來個「頭燈」呢?
在這里,我再次為方便少部分人理解而打個比方,頭燈代指「車前頭的燈」(沒辦法,水平有限,我想不到更恰當的詞……)。其實頭燈在上一步中大家已經見過了;上一步中,在沒有發現尾燈只有頭燈(圖3)的情況下,頭燈就是尾燈,為了不混淆初學者,我上一步就沒引進如此神經的詞了,希望學會上一步的朋友不要在這里又搞混了……
那麼,這種情況該怎麼還原它們呢?
重復老話題,怎麼擺,從哪擰?記住,我們面對魔方,把它想成四面都有燈的車(我確實也沒見過這樣的車……拜託,想像一下),讓車的頭燈朝向自己(如讓右圖中的黃色長條朝自己)。然後使用我們學過的公式3。使用過後,我們發現頂面和頂層變成了第五步中的圖2,此時又不禁使人想起學第五步時的《回到過去》,同樣的,這里也已是「物是人非」了,先別急著「欲語淚先流」,再按照第五步的解法做。
痛苦的學習,終於有了成果,你解脫了……
等下!
你先別急著把魔方砸開……
雖然你已經還原三階魔方了,但其實最後一步還有兩種特殊情況你還不清楚該如何解決。如下圖,他們的棱塊位置還不正確,你需要「無所顧忌地」使用公式3和4把它們簡化成上面的情況,再重復公式3、4,也就還原了!
我又來了:高級演算法中的PLL手法,可以直接從第5步還原整個魔方,正如我上面所說,想學高級演算法,談何容易,想掌握整個高級演算法,保守的說也得需要半年時間。
『陸』 魔方的計算公式是什麼
魔方的計算公式是還原公式方法如下:
1、底棱歸位,又稱之為 Cross,英文的意思是十字還原,選擇白色面做底面,在魔方的底層架十字。還原棱就是在每一個面上都拼出個十字,拼十字時不是按面來的,而是按層來的。先還第一層的,也就是在第一面上拼出個十字。
『柒』 解魔方的步驟
術語 [編輯] 書寫規定 在書寫魔方轉動步驟的時候,有一些國際約定需要注意:層表示約定:F、B、L、R、U、D分別代表前、後、左、右、上、下層,另外還有f、b、l、r、u、d符號,意為兩層一起轉。 轉動約定:如果為順時針轉動90度,則層符號後無內容;若逆時針轉動90度,則記為層符號+「'」或是「i」,比如上方第一層逆時針轉動90度,則記為U'或Ui;如果轉動180度,則記為層符號+「2」,比如上方第一層轉動180度,記為U2。 [編輯] 基本術語 階:階數是指魔方每個邊所具有的塊數,比如三階魔方每個邊就有3個小塊。 復原:指魔方從非原始狀態到原始狀態的過程。 POP:指在復原中魔方的某些組成部分從魔方上面脫離的情況,如果是出現在比賽中,參賽者可選擇修理魔方繼續比賽,或者放棄而被判DNF。 DNF:是「Did Not Finish」的縮寫,指停止計時器時方塊尚未復原(魔方復原失敗),或者魔方復原者感覺無法在滿意的時間內完成魔方而棄權的情況,在比賽中可以有一次DNF,在多次嘗試取平均成績的比賽中算作最差成績。 DNS:是「Did Not Start」的縮寫 ,指參賽選手在一輪中放棄嘗試機會而並未開始還原,多次嘗試取平均成績的比賽中算作最差成績。 SUB-X:SUB是「Subtraction」的縮寫,意思就是少於的意思,在這就是「在X秒以下」之意。例:三階方塊SUB-20,就是指平均速度在20秒以下。 Fridrich Method:這是由一位叫Jessica Fridrich女士發明的一種速解法,是目前世界上最流行的方塊解法。 CROSS:字面上的意思為「十字」,是Fridrich Method中的第一步驟。 F2L:是「First 2 Layer」的縮寫,意思為「一、二層」,是Fridrich Method中的第二步驟。 OLL:是「Orientation of Last Layer」的縮寫,意思為「最後一層的取向」,這是Fridrich Method中的第三個步驟。 PLL:是「Permutation of Last Layer」的縮寫,意思為「最後一層的排序」,這是Fridrich Method中的第四步驟。 CFOP:是Fridrich Method的的別稱,就是四個步驟「Cross、F2L、OLL、PLL」原文的第一個字母合起來而成的。 CROSSF2LOLLPLLLBL:是「Layer By Layer」的縮寫,意思是「一層一層解」,也就是學魔術方塊最基礎的解法。 CE-PAIR:是「Corner & Edge PAIR」的縮寫,是F2L中主要的觀念,就是由角(Corner)和邊(Edge)所組成的小區塊,又稱PAIR。 ZBF2L:這是一個比較有技巧性的F2L,一般的F2L完成後,頂層的OLL一共有57種變化,但是使用ZBF2L後,完成最後一組的CE-PAIR時,頂層的十字會順便完成,所以剩下的OLL的情況,就縮減到7種。 COLL:這是一個比較具有技巧性的OLL,一般的OLL完成時,所出現的PLL一共有21種變化,但是使用COLL後,可以把OLL和四個角的位置一次歸位,所以OLL只剩下「邊」的情況,就會縮減到5種。 LARS:這是一種解魔術方塊的方法,發明人為Lars Petrus,號稱步驟比Fridrich Method少的解法。 [編輯] 快速解法 魔方的解法有很多種,以下是其中幾種解法。[編輯] 層先(LBL:Layer By Layer) 這類解法分為以下幾個步驟:選擇一個顏色作為底面色,然後使用基本公式將其拼成一層。 將第二層歸位。 將最上層轉出一個「十」字。 將最上層利用公式填滿同一種顏色。 角塊歸位、對色。 邊塊歸位。 由於其公式少(可以簡化為7個),所以一般為初學者使用。一般人在經過練習後,使用一個好魔方可以達到1分鍾之內復原的水平。[編輯] 角先(Corner First) 角先方法是先將魔方的八個角歸位定色,然後再填補棱色,最後完成復原。這種方法記憶的公式比較多,所以速度會較層先快。最快的角先魔方高手可以在30秒之內復原魔方。[編輯] 棱先 棱先方法是先將棱塊歸位定色,然後填補底層和上層的角塊的方法。棱先法 解法教學 [編輯] Fridrich Method Fridrich Method(簡稱CFOP)其實是層先的變種,但是由於其歸納出了可能出現的各種情況,所以在記憶量上面要增大許多倍(119個公式),但同時也能有效的增加速度。其步驟分為以下幾個:將底層轉出一個符合色塊分布的十字 (Cross) 同時將底層角塊和相對應棱塊歸位 (F2L,First 2 Layers) 41個公式 最上層利用公式將顏色統一 (OLL,Orientation of Last Layer)57個公式 將最上層側面的顏色統一 (PLL,Permutation of Last Layer)21個公式 現在絕大多數魔方高手都使用Fridrich Method,因為相對於它能達到的速度來說,119個公式的記憶量就顯得不多了。快速還原解法java動畫教學-Fridrich method(cfop)快速還原解法(分步視頻動畫) [編輯] 8355 Method 由台灣的許技江老師所規劃出來的解法,強調以理解的方法去解出魔術方塊,期望能消除新手對於「解方塊需要大量公式記憶」的疑慮。將方塊分成單層8 個角、第二層3 個邊、第三層5 個邊歸位後再將剩下5 個角歸位並轉正。8:和LBL法類似,將第一層完成,只是刻意留下一個角沒解開,留做「工作區(Working Area)」 3:利用工作區將第二層的3 個邊塞入,不像LBL法需要背兩個鏡向動作的「八步法」 5:利用工作區將頂層與工作區的5 個邊歸位,不像LBL法需要背「六步法」以及兩個鏡象OLL公式 5:此時剩下頂層與工作區的5 個角,利用簡單的去返動作,即可達到位置送換,以及翻動方向,此時一顆方塊即解答完成。 其後面兩段"五邊"和"五角"的解法,可以用在Megaminx正十二面體魔術方塊的最後一層解法上,不需要做調整改變,依然適用。8355 解法教學-許技江老師網頁 (8355 Method Introction) 8355 Method java動畫教學-三階魔方還原方法-8355 Method [編輯] 橋式解法 先在兩個側面下方各形成正確的2X3兩塊, 使頂面的四個角塊歸位 調整中間四個棱塊和側面兩個棱塊的朝向 左右側面頂部的棱塊歸位 中間棱塊和中心快歸位 快速還原解法java動畫教學-三階魔方橋式快速還原解法教程(公式+圖+視頻+java) [編輯] 電腦解法 由於電腦沒有記憶公式的困難,因此可以獲得更佳的解。但是由於魔方的模型空間巨大,使用窮舉法還是不實用。目前廣泛使用的演算法步驟如下:雙轉歸原:如果限制每次旋轉,除了兩個相對的面(比如左邊和右邊)之外都是180度,那麼能夠轉出來的花樣就少了很多。把魔方從任何狀態歸位到這些花樣之一,就是雙轉歸原。 復原 在前一步驟的基礎上進行復原。 用電腦程序進行搜索,雙轉歸原一般需要12步來完成。而復原的步驟則需要18步。但是如果能進一步優化,使得雙轉歸原的結果避開那些需要較長步驟復原的狀態,一般可以得到更短的復原步驟。通過運用電腦,Tomas Rokicki於2008年宣布證明了任何魔方可以在25步以內解開[1]。而隨後,這一結果改進為22步[2
『捌』 魔方的演算法是怎麼計算出來的
早期完全是人腦思考,現在是有電腦解法了。
人腦解法就是先劃分局部目標,利用抵消和循環動作不破壞已經拼好的部分,然後逐步完成全部。在嘗試中積累到更多經驗的時候,就可以逐漸減少局部目標的數量,同時難度也提高了,不過總步數卻減少了。減少步數就是最終方向了,它說明了思考更具全局性。
我無法預測人腦最後能不能進化成完全立足全局進行思考,但我知道那很遙遠,因為人們太不注重優生了,總是隨便湊一對解決性飢渴就行了,然後就一輩子捆上了。
我不知道別人是在什麼樣的狀態下解出魔方,我是在快樂的忘我狀態下解魔方的,也許是「入定」也許不是,培養起持續思考的能力的人應該各有各的狀態吧。我是沿襲了解殘棋時養成的習慣,思考時有腦內按摩的快感。不過現在快感的閾值總在提高,殘棋早已沒有快感了。
我嘗試了用自己所能想出的所有順序去拼魔方,也就是進行各種不同的局部目標劃分,因此可能積累的經驗要比多數人稍多一點,不過這一定只是解法中微小到無限的部分。我不確定解法無限,但確定再高的智商也一生研究不完。因此,棋和魔方我都不會花一生時間沉醉其中,適當用來娛樂就行了。
提一下中心塊吧,6塊相對位置是不變的,但有原地轉的自由。因此6色魔方和拼圖魔方是有些不同,6面帶圖案的是真復原,6色的通常由人腦來處理就不是真復原。3階魔方解法也就這兩類,各種還原順序都不能算類,包括一些蒙眼小丑的表演都不能算類。
不多說了,最後糾正一下你的認識。一般人就可以解魔方,只要培養起思考方法。
『玖』 二階魔方公式口訣7步公式是什麼
魔方公式口訣7步公式:
第一種情況公式是:(上順,右順,上逆,右逆,上逆,前逆,上順,前順)
第二種情況公式是:(上逆,前逆,上順,前順,上順,右順,上逆,右逆)
1、前順,右順,上順,右逆,上逆,前逆。
2、右順,上順,右逆,上順,右順,上順,上順,右逆。
3、上順,右順,上逆,左逆,上順,右逆,上逆,左順。
4、右逆,下逆,右順,下順
可重復多遍。
二階魔方的最遠復原距離(即最需要最多步驟復原的狀態)為11次全旋轉,或者14次普通旋轉,此結果可以用計算機使用暴力窮舉演算法計算出。