airsega 发表于 2008-11-4 11:43

MATLAB中关于幻方矩阵的问题,如何产生随机幻方

比如我要一个10阶幻方,由1到100的整数组成(每个数字不重复),行列和、对角线和都为505,请问这个参数如何来写?用MAGIC(10)也可以用,但是只能产生一种排列方式,但是其实10阶幻方很多种的组合(好像有800多种?),比如:
92 99 1 8 15 67 74 51 58 40
98 80 7 14 16 73 55 57 64 41
4 81 88 20 22 54 56 63 70 47
85 87 19 21 3 60 62 69 71 28
86 93 25 2 9 61 68 75 52 34
17 24 76 83 90 42 49 26 33 65
23 5 82 89 91 48 30 32 39 66
79 6 13 95 97 29 31 38 45 72
10 12 94 96 78 35 37 44 46 53
11 18 100 77 84 36 43 50 27 59

1 98 96 94 89 84 14 15 10 4
6 19 69 42 56 75 29 66 48 95
8 39 52 78 33 63 44 22 73 93
11 80 27 61 50 24 67 37 58 90
18 65 47 20 70 41 55 76 30 83
88 26 72 35 53 82 32 59 45 13
85 38 57 79 28 62 49 23 68 16
99 77 34 64 43 21 74 40 51 2
92 60 46 25 71 36 54 81 31 9
97 3 5 7 12 17 87 86 91 100

3 67 30 93 57 2 68 29 96 60
35 99 43 7 72 34 98 42 6 69
45 12 76 38 82 48 11 73 37 83
78 21 87 49 15 79 22 88 50 16
92 55 18 61 25 89 54 19 64 28
1 65 32 95 58 4 66 31 94 59
33 100 41 8 71 36 97 44 5 70
47 10 75 40 84 46 9 74 39 81
80 23 86 51 14 77 24 85 52 13
91 53 17 63 27 90 56 20 62 26


该用什么指令可以产生以上各种不一样的组合?

sigma665 发表于 2008-11-4 11:59

edit magic
看他是怎么生成的

airsega 发表于 2008-11-4 14:24

有见地,好好研究
页: [1]
查看完整版本: MATLAB中关于幻方矩阵的问题,如何产生随机幻方