【magic是什么意思】a=magic(5)什么意思

发布时间:2021-04-04 14:52:48

a=magic(5)什么意思 数学

网友回答

【答案】 MATLAB中的?
  跟magic函数的算法有关.这算法是这样的:
  将三阶魔方的中数5填入正中央,然后其上填1,再按照向前一个数的右上角依次填数2.3.4……
  如填到顶端则移至最下
  如填到最右则移至最左相应位子
  如所填格子已有数则填入该数的下方空格子
  你仔细看看是不是这样
  magic(1)=1
  magic(n)产生代码:
  n = floor(real(double(n(1))));
  % Odd order.
  if mod(n,2) == 1
   [J,I] = meshgrid(1:n);
   A = mod(I+J-(n+3)/2,n);
   B = mod(I+2*J-2,n);
   M = n*A + B + 1;
  % Doubly even order.
  elseif mod(n,4) == 0
   [J,I] = meshgrid(1:n);
   K = fix(mod(I,4)/2) == fix(mod(J,4)/2);
   M = reshape(1:n*n,n,n)';
   M(K) = n*n+1 - M(K);
  % Singly even order.
  else
   p = n/2;
   M = magic(p);
   M = [M M+2*p^2; M+3*p^2 M+p^2];
   if n == 2, return, end
   i = (1:p)';
   k = (n-2)/4;
   j = [1:k (n-k+2):n];
   M([i; i+p],j) = M([i+p; i],j);
   i = k+1;
   j = [1 i];
   M([i; i+p],j) = M([i+p; i],j);
  end
以上问题属网友观点,不代表本站立场,仅供参考!