matlab3阶魔方阵,3*3三阶魔方阵解决方法

C/C++ codeint[][] MagicMatrix ( int n )

{

//Odd order.

if ( mod ( n, 2 ) )

[ mj, mi ] = MakeMeshGridSquareMatrix ( n ); // mj : mesh along row,

// while mi : mesh along column

// both mj and mi are square matrix

// matrix operation

A = mod ( mi + mj - ( n + 3 ) / 2.0, n );

B = mod ( mi + 2 * mj - 2, n );

M = n * A + B + 1;

// Doubly even order.

elif ( !mod ( n, 4 ) )

[ mj, mi ] = MakeMeshGridSquareMatrix ( n );

K = ( floor ( mod ( mi, 4 ) / 2.0 ) == floor ( mod ( mj, 4 ) / 2.0 ); // K is a logic matrix

// each element judge by

// mj and mi

M = MakeSquareMatrix ( n ); // to make array which from 1 to n * n as a n * n square

M [ K ] = n * n + 1 - M [ K ]; // modify matrix M each element from matrix K

// Sin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值