雪凌寒霜 发表于 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;
    =find(A==j);%如果这里是写成find(A,j)会报错;
                     %=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
        =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

很有趣
页: [1]
查看完整版本: 洛书法“九宫飞星”