数学建模社区-数学中国

标题: 洛书法“九宫飞星” [打印本页]

作者: 雪凌寒霜    时间: 2012-11-2 13:22
标题: 洛书法“九宫飞星”
本帖最后由 雪凌寒霜 于 2012-11-2 13:29 编辑

        偶然在图书馆看到这么个算法名称,很有中国特色。才知道幻方的填法这么多,也蛮有意思的。用它填写奇数幻方真的很有一套,我花了一个小时,用matlab在程序上实现了这个算法,真的还蛮有意思的!
        程序如下:
        %九宫飞星
%求解N(为奇数)次幻方
clear;
N=3;
A=zeros(N,N);
A(N,(N+1)/2)=1;
for i=2:N^2
    j=i-1;
    [x,y]=find(A==j);%如果这里是写成find(A,j)会报错;
                     %[x,y]=find(A,j);这句话的意思是返回在j之前所有非零数的横纵坐标
    x=x-2;
    y=y+1;
    if x<=0
        x=x+N;
    end
    if y==N+1    %y最多只能等于N+1
        y=1;
    end
    if A(x,y)==0
        A(x,y)=i;
    else
        [x,y]=find(A==j);
        A(x-1,y)=i;
    end
end
A

      2012-02-26于中北大学
作者: sdccumcm    时间: 2012-11-2 20:53
支持                       !
作者: 光之仑    时间: 2012-11-5 23:50
很好               
作者: 两个人的梦想    时间: 2012-11-19 14:41
运行了一下,真的好神奇!
作者: yufengxingkong    时间: 2013-8-19 12:09
很有趣
作者: yufengxingkong    时间: 2013-8-19 12:09
很有趣




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5