魔方狀態


/*標題:魔方狀態

二階魔方就是只有2層的魔方,只由8個小塊組成。
如圖p1.png所示。

小明很淘氣,他只喜歡3種顏色,所有把家里的二階魔方重新塗了顏色,如下:

前面:橙色
右面:綠色
上面:黃色
左面:綠色
下面:橙色
后面:黃色

請你計算一下,這樣的魔方被打亂后,一共有多少種不同的狀態。

如果兩個狀態經過魔方的整體旋轉后,各個面的顏色都一致,則認為是同一狀態。

請提交表示狀態數的整數,不要填寫任何多余內容或說明文字。
將魔方看作一個平面*/
package test;

import java.util.ArrayList;
import java.util.*;
public class 魔方狀態 {
    static int[] v = new int[8];
    static int[] s = new int[8];
    static ArrayList<String> a = new ArrayList<String>();
    public static void main(String[] args) {
        s(0);
        System.out.println(a.size());
    }
    public static void s(int code){
        if(code==8){
            String t = "";
            String t1 = "";//t正序,t1倒序
            for (int i = 0; i < s.length; i++) {
                t += s[i]+"";
                t1 += s[s.length-1-i]+"";
            }
            if(!a.contains(t)&&!a.contains(t1)){
                a.add(t);
            }
            return;
        }
        for (int i = 0; i < 8; i++) {//用i選擇方格
            if(v[i]==0){
                v[i] = 1;
                if(i<4){//四個黃綠橙
                    s[code] = 1;
                }
                else if(i<6){//兩個黃綠
                    s[code] = 2;
                }
                else if(i<8){//兩個橙綠
                    s[code] = 3;
                }
                s(code+1);
                v[i] = 0;//回溯
            }
        }
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM