第7講 4次および6次魔方陣の作成  
第10話 4次魔方陣作成プログラムその2
コード例#include<iostream>
using namespace std;
using namespace System;
void f();
int main(){
   f();
}
void f(){
   int m[4][4],i,j;
   for(i=0;i<4;i++){
     for(j=0;j<4;j++){
       m[i][j]=4*i+j+1;
       if(m[i][j]<10)cout<<"0"<<m[i][j]<<" ";
       if(m[i][j]>=10)cout<<m[i][j]<<" ";
     }
     cout<<endl;
   }
   cout<<endl;
   cout<<"4次魔方陣作成"<<endl;
   int w;
   for(i=0;i<2;i++){
     w=m[0][i+1];
     m[0][i+1]=m[3][2-i];
     m[3][2-i]=w;
   }
   for(i=0;i<2;i++){
     w=m[i+1][0];
     m[i+1][0]=m[2-i][3];
     m[2-i][3]=w;
   }
   for(i=0;i<4;i++){
     for(j=0;j<4;j++){
       if(m[i][j]<10)cout<<"0"<<m[i][j]<<" ";
       if(m[i][j]>=10)cout<<m[i][j]<<" ";
     }
     cout<<endl;
   }
   cout<<endl;
}

コンソール画面
入門


さて、第7講最後の課題です。

 1  2  3  4  5  6
 7  8  9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36

6次魔方陣は、ピンクは上下を中心に対して対称に線対称移動し、
紺は中心に対して左右に対称に線対称移動してから

 1  5 33  4  2  6
25  8 10  9 11 12
18 20 15 16 17 13
19 14 21 22 23 24
 7 26 27 28 29 30
31 32  3 34 35 36


 1  5 33  4  2  6
25  8 10  9 11 12
18 20 15 16 17 13
19 14 21 22 23 24
 7 26 27 28 29 30
31 32  3 34 35 36

の薄緑の部分を中心に対して点対称移動しても

 1 35 34  3 32  6
30  8 28 27 11  7
24 23 15 16 14 19
13 17 21 22 20 18
12 26  9 10 29 25
31  2  4 33  5 36


 1 35 34  3 32  6
30  8 28 27 11  7
24 23 15 16 14 19
13 17 21 22 20 18
12 26  9 10 29 25
31  2  4 33  5 36

完成します。今度はこの方法で、6次魔方陣を作成してみましょう。



第9話へ 第11話へ


戻る


VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)