亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實現魔方陣算法(幻方陣 奇魔方 單偶魔方實現)

2020-01-26 15:41:17
字體:
來源:轉載
供稿:網友

例如三階魔方陣為:

魔方陣有什么的規律呢?

魔方陣分為奇幻方和偶幻方。而偶幻方又分為是4的倍數(如4,8,12……)和不是4的倍數(如6,10,14……)兩種。下面分別進行介紹。

2 奇魔方的算法

2.1 奇魔方的規律與算法

奇魔方(階數n = 2 * m + 1,m =1,2,3……)規律如下:

數字1位于方陣中的第一行中間一列;
數字a(1 < a  ≤ n2)所在行數比a-1行數少1,若a-1的行數為1,則a的行數為n;
數字a(1 < a  ≤ n2)所在列數比a-1列數大1,若a-1的列數為n,則a的列數為1;
如果a-1是n的倍數,則a(1 < a  ≤ n2)的行數比a-1行數大1,列數與a-1相同。

2.2 奇魔方算法的C語言實現

復制代碼 代碼如下:

#include <stdio.h>
// Author: http://furzoom.com/
// N為魔方階數
#define N 11

int main()
{
    int a[N][N];
    int i;
    int col,row;

    col = (N-1)/2;
    row = 0;

    a[row][col] = 1;

    for(i = 2; i <= N*N; i++)
    {
        if((i-1)%N == 0 )
        {
            row++;
        }
        else
        {
            // if row = 0, then row = N-1, or row = row - 1
            row--;
            row = (row+N)%N;

            // if col = N, then col = 0, or col = col + 1
            col ++;
            col %= N;
        }
        a[row][col] = i;
    }
    for(row = 0;row<N;row++)
    {
        for(col = 0;col < N; col ++)
        {
            printf("%6d",a[row][col]);
        }
        printf("/n");
    }
    return 0;
}

算法2:階數n = 4 * m(m =1,2,3……)的偶魔方的規律如下:

按數字從小到大,即1,2,3……n2順序對魔方陣從左到右,從上到下進行填充;
將魔方陣分成若干個4×4子方陣,將子方陣對角線上的元素取出;
將取出的元素按從大到小的順序依次填充到n×n方陣的空缺處。

C語言實現

復制代碼 代碼如下:

#include <stdio.h>
// Author: http://furzoom.com/
// N為魔方階數
#define N 12

int main()
{
    int a[N][N];//存儲魔方
    int temparray[N*N/2];//存儲取出的元素
    int i;//循環變量
    int col, row;// col 列,row 行

    //初始化
        i = 1;
        for(row = 0;row < N; row++)
        {
            for(col = 0;col < N; col ++)
            {
                a[row][col] = i;
                i++;
            }
        }
    //取出子方陣中對角線上的元素,且恰好按從小到大的順序排放
    i = 0;
    for(row = 0;row < N; row++)
    {
        for(col = 0;col < N; col ++)
        {
             if((col % 4 == row % 4) || ( 3 == ( col % 4 + row % 4)))
            {
                temparray[i] = a[row][col];
                i++;
            }
        }
    }
    //將取出的元素按照從大到小的順序填充到n×n方陣中
    i = N*N/2 -1;
    for(row = 0;row < N; row++)
    {
        for(col = 0;col < N; col ++)
        {
            if((col % 4 == row % 4) || ( 3 == ( col % 4 + row % 4)))
            {
                a[row][col] = temparray[i];
                i--;
            }
        }
    }
    //輸出方陣
    for(row = 0;row < N; row++)
    {
        for(col = 0;col < N; col ++)
        {
            printf("%5d",a[row][col]);
        }
        printf("/n");
    }
    return 0;
}

3.2 階數n = 4 * m + 2(m =1,2,3……)的魔方(單偶魔方)

算法

設k = 2 * m + 1;單偶魔方是魔方中比較復雜的一個。

將魔方分成A、B、C、D四個k階方陣,如下圖這四個方陣都為奇方陣,利用上面講到的方法依次將A、D、B、C填充為奇魔方。
交換A、C魔方元素,對魔方的中間行,交換從中間列向右的m列各對應元素;對其他行,交換從左向右m列各對應元素。
交換B、D魔方元素,交換

復制代碼 代碼如下:

#include <stdio.h>
// Author: http://furzoom.com/
// N為魔方階數
#define N 10

int main()
{
    int a[N][N] = { {0} };//存儲魔方
    int i,k,temp;
    int col,row;// col 列,row 行

    //初始化
    k = N / 2;
    col = (k-1)/2;
    row = 0;
    a[row][col] = 1;
    //生成奇魔方A
    for(i = 2; i <= k*k; i++)
    {
        if((i-1)%k == 0 )//前一個數是3的倍數
        {
            row++;
        }
        else
        {
            // if row = 0, then row = N-1, or row = row - 1
            row--;
            row = (row+k)%k;

            // if col = N, then col = 0, or col = col + 1
            col ++;
            col %= k;
        }
        a[row][col] = i;
    }

    //根據A生成B、C、D魔方
    for(row = 0;row < k; row++)
    {
        for(col = 0;col < k; col ++)
        {
            a[row+k][col+k] = a[row][col] + k*k;
            a[row][col+k] = a[row][col] + 2*k*k;
            a[row+k][col] = a[row][col] + 3*k*k;
        }
    }

    // Swap A and C
    for(row = 0;row < k;row++)
    {
        if(row == k / 2)//中間行,交換從中間列向右的m列,N = 2*(2m+1)
        {
            for(col = k / 2; col < k - 1; col++)
            {
                temp = a[row][col];
                a[row][col] = a[row + k][col];
                a[row + k][col] = temp;
            }
        }
        else//其他行,交換從左向右m列,N = 2*(2m+1)
        {
            for(col = 0;col < k / 2;col++)
            {
                temp = a[row][col];
                a[row][col] = a[row + k][col];
                a[row + k][col] = temp;
            }
        }
    }

    // Swap B and D
    for(row = 0; row < k;row++)//交換中間列向左m-1列,N = 2*(2m+1)
    {
        for(i = 0;i < (k - 1)/2 - 1;i++)
        {
            temp = a[row][k+ k/2 - i];
            a[row][k+ k /2 -i] = a[row + k][k+k/2 -i];
            a[row + k][k+k/2 -i] = temp;
        }
    }

    //輸出魔方陣
    for(row = 0;row < N; row++)
    {
        for(col = 0;col < N; col ++)
        {
            printf("%5d",a[row][col]);
        }
        printf("/n");
    }

    return 0;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产激情综合五月久久| 国产九九精品视频| 国产亚洲精品久久| 精品久久久久久久久久久久久久| 国产精品999999| 亚洲自拍小视频| 欧美日韩精品二区| 最近日韩中文字幕中文| 亚洲精品日韩丝袜精品| 日韩大胆人体377p| 一个人看的www久久| 国产做受69高潮| 草民午夜欧美限制a级福利片| 亚洲人成在线观看网站高清| 久久精品国产91精品亚洲| 中文字幕精品影院| 久久久久国产视频| 精品国产一区av| 亚洲成av人片在线观看香蕉| 亚洲成人黄色网址| 日韩最新免费不卡| 国模精品视频一区二区三区| 清纯唯美亚洲激情| 97色在线观看| 日韩欧美精品在线观看| 91国产中文字幕| 国产日韩在线看| 亚洲欧洲国产精品| 中文字幕成人在线| 国产成人午夜视频网址| 自拍偷拍免费精品| 久久99精品久久久久久噜噜| 国产精品夫妻激情| 2021久久精品国产99国产精品| 亚洲一区二区三区四区在线播放| 97热精品视频官网| 欧美主播福利视频| 97在线视频一区| 91豆花精品一区| 懂色av影视一区二区三区| 亚洲毛片在线免费观看| 欧美日韩国产精品一区二区三区四区| 国外成人在线播放| 久久国产色av| 美女久久久久久久久久久| 欧美日韩国产中字| 最新中文字幕亚洲| 久久久av一区| 国产精品av免费在线观看| 成人免费网站在线观看| 91在线免费网站| 欧美另类老女人| 成人亚洲欧美一区二区三区| 日韩欧美aⅴ综合网站发布| 国产成人福利夜色影视| 国内精品小视频| 亚洲高清一二三区| 日韩毛片在线观看| 久久人91精品久久久久久不卡| 国产精品午夜视频| 精品久久中文字幕久久av| 日韩av最新在线观看| 92版电视剧仙鹤神针在线观看| 日韩电影免费在线观看中文字幕| 欧美乱大交做爰xxxⅹ性3| 久久久91精品国产| 精品国产拍在线观看| 中文字幕av一区二区| 精品视频在线播放色网色视频| 精品国产一区二区三区久久久狼| 日韩欧美a级成人黄色| 亚洲美女又黄又爽在线观看| 91高潮在线观看| 在线激情影院一区| 91精品国产自产在线观看永久| 国产精品久在线观看| 亚洲精品av在线播放| 亚洲男人第一av网站| 视频一区视频二区国产精品| 5252色成人免费视频| 国产一区av在线| 欧美国产日韩一区二区| 91视频8mav| 91久久精品久久国产性色也91| 91精品国产电影| 国产精品尤物福利片在线观看| 国产精自产拍久久久久久蜜| 欧美裸体xxxx极品少妇软件| 国产精品1区2区在线观看| 18一19gay欧美视频网站| 亚洲国产私拍精品国模在线观看| 色综合久久久888| 亚洲精品有码在线| 欧美日韩国产综合新一区| 国产精品自产拍在线观看中文| 亚洲天堂免费视频| 成人免费观看网址| 欧美成aaa人片在线观看蜜臀| 久久99精品久久久久久青青91| 亚洲色图15p| 国产精品美乳在线观看| 91亚洲永久免费精品| 欧美劲爆第一页| 国产精品精品视频一区二区三区| 日韩成人中文电影| 全球成人中文在线| 国产视频亚洲视频| 欧美最猛性xxxxx(亚洲精品)| 久久久久久久久久久免费精品| 日韩电影免费观看在线| 视频在线一区二区| 亚洲第一综合天堂另类专| 欧美成在线视频| 日韩成人网免费视频| 中文国产成人精品久久一| 欧美亚洲视频在线看网址| 欧美亚洲国产日本| 国产精品久久久av久久久| 欧美大全免费观看电视剧大泉洋| 欧美另类99xxxxx| 久久久久北条麻妃免费看| 日韩中文av在线| 国产成人在线亚洲欧美| 91免费视频网站| 97久久伊人激情网| 国产一区二区精品丝袜| 91精品国产综合久久男男| 在线视频国产日韩| 欧美性一区二区三区| 国产精品自产拍高潮在线观看| 色偷偷噜噜噜亚洲男人的天堂| 第一福利永久视频精品| 96精品久久久久中文字幕| 国产亚洲免费的视频看| 日韩成人av网| 97视频免费观看| 久久久人成影片一区二区三区观看| 亚洲国产精品久久| 国产亚洲激情在线| 国产视频综合在线| 91亚洲国产精品| 中文字幕少妇一区二区三区| zzjj国产精品一区二区| 亚洲天堂日韩电影| 午夜精品久久久久久久99黑人| 欧美国产视频日韩| 国产精品18久久久久久首页狼| 成人激情黄色网| 日韩电影在线观看中文字幕| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产成人+综合亚洲+天堂| 国产精品福利在线观看| 欧美大胆a视频| 亚洲一区二区三区sesese| 国产91精品在线播放| 91精品综合视频| 国产精品扒开腿做爽爽爽视频| 国产精品人人做人人爽| 欧美成人免费在线观看| 亚洲香蕉av在线一区二区三区| 欧美激情免费看| 久久精品免费播放| 国产福利精品在线| 亚洲国产成人av在线|