找回密码
 注册
Simdroid-非首页
查看: 179|回复: 10

趣味填字!

[复制链接]
发表于 2010-1-4 14:12:32 | 显示全部楼层 |阅读模式 来自 北京海淀
在H20版出了个填字趣味题,太冷清没人应,这儿的高手看看:

http://forum.simwe.com/thread-913619-1-1.html


用1到18这18个数组成两个方程组等式如下,每个数只能也必须用一次,如何求解?

( )/( )( )+( )/( )( )+( )/( )( )=1
( )/( )( )+( )/( )( )-( )/( )( )=0.5

用其它软件也行:思路、方法、代码
发表于 2010-1-13 07:15:27 | 显示全部楼层 来自 山东淄博
Simdroid开发平台
我用Forcal求出了似乎是不重复的全部解,用时20多分钟,以下是结果(结果我没有检查,大家检查一下),过几天给出代码,大家先练练手。

  2  8 12 10 14  5 13  1  4  7 15  6 18  3  9 11 17 16
  3 11  6 13  5  8 18  2  4 10  1  7 15 12 14 17 16  9
  5  2 10 11 12  6 16  1  8  9  4 15 18  3  7 14 17 13
  5  2 17  9 18  6 13  1  4 12 14  8 16  3  7 15 11 10
  5  3  7 12  1  4 14 18 13 11 17 16 15  2  6  9 10  8
  5  3 15  6 10  8 13  1  4 11  2  7 16 14  9 18 12 17
  5  7  6 14 15  2 16  1  9 13 11  8 17  4  3 10 18 12
  5 10  3 15  1  6 17 12 18 13  2  4 14  8 16  7 11  9
  5 10  4  9 11  7 14  1  6 12  2  8 15 18  3 17 16 13
  5 10 15 12  1  4 16 11  6  3 13  7 14  2  9  8 17 18
  5 10 15 12  8  7 18  2  1 14 11  9 17  3  4 16 13  6
  5 10 15 12  8  7 18  2  1 16 13  6 17  3  4 14 11  9
  5 11  4 15 17 10 18  1  9  8  7  6 13  3  2 14 12 16
  5 11  4 15 17 10 18  1  9 13  7  8 14  3  6 12  2 16
  5 12  2 13 11 16 18  1  9 15  3  6 17  7  8 14 10  4
  5 12  6 13 18  2 16  1  8 11  7 15 17  3  4 14  9 10
  5 12  6 13 18  2 16  1  8 14  9 10 17  3  4 11  7 15
  5 12  6 15  2 10 16  1  8 13  3  4 17 11  9 18  7 14
  6  1  2 10 14  8 16  3  7 17  4  5 18 13  9 11 15 12
  6  1  5  9 12 15 16  2  7  8 11 14 17  3  4 13 18 10
  6  1  5  9 12 15 16  2  7 13 18 10 17  3  4  8 11 14
  6  5  9 17  4 13 18  2  1 12 14  8 16  3  7 15 11 10
  6  7  8 11  1  3 13 16  9 15 14  5 17  4  2 10 12 18
  6  7 14 16 11  9 18  2  1 12 10  8 17  3  4 15 13  5
  6  7 14 16 11  9 18  2  1 15 13  5 17  3  4 12 10  8
  6  9  5 12  1  3 14 10 17  4 15  8 13  2  7 11 16 18
  6  9 14 12 18  5 13  1  4 10 11  8 16  3  2 15 17  7
  6  9 14 12 18  5 13  1  4 15 17  7 16  3  2 10 11  8
  6 11  9 13  1  4 15  7 14 17  3  5 18  2 10 12 16  8
  6 15  7 16 11 10 18  1  9  3 12 14 13  2  5  4 17  8
  6 18  9 11  1  8 15  4  2 12 10  7 14  3  5 16 13 17
  7  1 16 11  5  8 18  2  4 12 15  6 17  3  9 13 10 14
  7  3 15 12 10  8 13  1  5  9 11 16 14  2  4 17 18  6
  7  3 15 12 13  5 16  1  8 14  2  9 18 17  4 10 11  6
  7  5  8 15 11  6 18  2  4 12  1 17 16  3  9 13 10 14
  7 11  5 13  1  4 17 16 10  6 15  9 14  2  8 12  3 18
  7 11  5 13  1  4 17 16 10  9 15  6 14  2  8 18  3 12
  7 11  5 13  1  4 17 16 10 12  3 18 14  2  8  6 15  9
  7 11  5 13  1  4 17 16 10 14  2  8 18  3 12  9 15  6
  7 14  6 12  5 11 13  1  4 15  8 10 16  3  2 17  9 18
  7 14  6 12  5 11 13  1  4 16  3  2 17  9 18 15  8 10
  7 14  9 13 15 16 17  1  8 12  4  5 18  6  3 11  2 10
  7 15  2  8 12 16 18  1  9 13 11  4 14  3  6  5 17 10
  7 17  6 13 10 11 18  1  9 12 14  4 15  3  5  2 16  8
  7 18  4 10 11  5 14  1  6  8  9 13 16  3  2 15 17 12
  7 18  4 10 11  5 14  1  6 15 17 12 16  3  2  8  9 13
  7 18  4 12 13  8 14  1  6 15 10  5 16  3  2 17 11  9
  7 18  4 12 13  8 14  1  6 16  3  2 17 11  9 15 10  5
  8  1  4 14 11  2 17  5  6 13 12  9 15  3  7 10 16 18
  8  1  4 15 10  5 18  6  3 14 17 11 16  2  7 13 12  9
  8  1  6 12  2  9 15 17  4 11  5 10 18  3  7 13 16 14
  8  3  9 10  1  5 15 11  7 13 16 12 14  2  4 17 18  6
  8  5  6 15  2  1 17 11  9 12 13  7 18  4  3 10 16 14
  8  7  6 14  1  9 18 11  4 10 12  2 15  3  5 17 16 13
  8 13  6 12 10  2 14  1  7 15  4  5 17  9  3 18 11 16
  8 15  6 11  3  9 14  2  1 12 10  7 18  4  5 16 13 17
  8 16  4 11  6 15 14  1  5  9  3 10 13  2  7 18 17 12
  8 16  4 11  6 15 14  1  5 10 18  7 13  2  9  3 17 12
  9  1  2 13 15  6 14  8  4 10 12 17 18  3  5 16  7 11
  9  1  2 15 10  5 18 16  8  6 12 11 17  3  4  7 14 13
  9  1  2 15 10  5 18 16  8  7 14 13 17  3  4  6 12 11
  9  1  2 15 10  5 18 16  8 13 11  7 17  3  4 14 12  6
  9  1  2 15 10  5 18 16  8 13 11  7 17  3  6 12 14  4
  9  1  2 15 10  5 18 16  8 14 12  6 17  3  4 13 11  7
  9  1  2 15 10  8 16 14  4  5  7 13 18  3  6 12 17 11
  9  1  2 15 10  8 16 14  4 12 17 11 18  3  6  5  7 13
  9  1  4 15  2 10 16  5  6 14  3  8 17 11  7 18 13 12
  9  1  5 10  2  6 11  7 15 16 17  8 18  4  3 12 14 13
  9  1  7 10  8 16 11  2  4 14  3  6 17 13  5 18 12 15
  9  2 16 10  1  6 15  4  5 14  3  8 17 11  7 18 13 12
  9  5  6 10  1  4 16 12  8 11  2 15 17  3  7 14 13 18
  9  7  2 12  1  6 13 10  4 17  3  5 18  8 16 11 14 15
  9 11 17 15  1  7 16 14  6  3 13  5 12  2  4 18  8 10
  9 11 17 15  1  7 16 14  6 12  2  4 18  8 10  3 13  5
  9 12 15 14 13  5 16  1  8  6 10  2 17  3  4 11 18  7
  9 12 15 14 13  5 16  1  8 10 11 18 17  2  6  7  4  3
  9 12 15 14 13  5 16  1  8 11 18  7 17  3  4  6 10  2
  9 13  5 12  1  4 16  2 10  7 11  6 17  3  8 14 18 15
  9 14  4 11  1  2 17  8 16  6 15 10 18  3  5 13  7 12
  9 15 12 10  8  4 14  1  6 13  3  2 18 16  5 11  7 17
  9 15 12 11 16  8 13  1  4  5  2 10 18  3  6 17  7 14
  9 15 12 11 16  8 13  1  4 17  7 14 18  3  6  5  2 10
  9 16  2 13 11  7 15  1  8 10 14  5 18  3  6 12 17  4
  9 16  2 13 11  7 15  1  8 12 17  4 18  3  6 10 14  5
10  1  2 13 16  9 14 15  6 12  5  7 17  3  8 18 11  4
10  1  2 17  7 14 18 12  6 11  3  4 16  8  9  5 15 13
10  1  4 11  6  3 15 13  5 12 16  8 14  2  7 17 18  9
10  1  4 13 11  9 15  8  5  7 14  3 12  2  6 18 17 16
10  1  4 15  9  5 17 13  3  7 14  8 12  2  6 16 18 11
10  1  4 17 11  9 18 12  6  3 16  5 14  2  8 13  7 15
10  1  4 17 11  9 18 12  6 13  7 15 14  2  8  3 16  5
10  1  5 11 13  2 12  4  8 15 18  9 16  3  6 17  7 14
10  1  5 13 11  7 14  6  3  8 16 15 12  2  4  9 18 17
10  1  5 13 11  7 14  6  3  9 18 17 12  2  4  8 16 15
10  1  5 13 15  6 18  7  2 14  3  8 17 11  4 16  9 12
10  1  5 15  6  9 16 13  8 17 14  2 18  4  7  3 11 12
10  1  5 17  7  8 18 15  6 11 14  3 12  2  4 13 16  9
10  1  5 17  7  8 18 15  6 12  2  4 13 16  9 11 14  3
10  1  6 12  4  8 14 11  2  7 16 15 18  3  5 17  9 13
10  1  7 12 15  3 18  5  4 14  2  9 17  8 11  6 16 13
10  1  8 12  3  6 15 13  5 11  2  7 16 14  4 17  9 18
10  1  8 12  3  6 16 14  4 11  2  7 15 13  5 17  9 18
10  1  8 12  3  9 16 11  7 13  2  6 15 14  5 18 17  4
10  1  8 12  3  9 16 11  7 13  2  6 18 17  4 15 14  5
10  1  8 14  6  3 16  7  2 17  4  5 18 13  9 11 15 12
10  1  9 12 11  4 14  3  8 13  2  6 15 16  5 17 18  7
10  1  9 12 11  4 14  3  8 13  2  6 17 18  7 15 16  5
10  3  5 12  2  1 17 11  9 13  4  7 16  6  8 18 15 14
10  4  5 12  2 16 13  1  8 17  3  9 18 11  7 14 15  6
10  4  5 12 18  9 15  2  1 13 11  7 17  3  6 14 16  8
10  8  5 13  1  7 18 15  3 12 17  4 16  2  9 14 11  6
10  9  8 13 14  7 17  2  1 15  6 11 18  3  5 16  4 12
10 11  4 12  5 13 16  1  8 14  3  9 18  7  2 17 15  6
10 12  6 13 11  7 17  2  1 15  3  5 18 14  4  9 16  8
10 13  5 11  1  2 14 15 12  9  3  6 16  4  7 17 18  8
10 14  7 12  1  8 13  4  9 15  3  6 18 17  2 11  5 16
10 15  4 12  1  3 17 14 18  9  2  7 13  5  6 11 16  8
10 15  6 12  1  8 14  5  2  9  4 17 18  3  7 13 16 11
10 16  6 11 17 12 14  1  5 13  3  9 18  4  8 15  7  2
10 18  3 11  9 15 14  1  5  4 17  8 13  2  6 16  7 12
10 18  3 11  9 15 14  1  5 13  2  6 16  7 12  4 17  8
11  1  2 13 16 12 14 18  6  5  7  9 17  3  4 10 15  8
11  1  2 13 16 12 14 18  6 10 15  8 17  3  4  5  7  9
11  1  4 12 16  8 15 10  5  9  2  3 18 13  7 14  6 17
11  1  8 12  5  4 16  9  6 14  2  7 17 13 15 10  3 18
11  1  8 13 12  6 14  4  9 15  2 10 17  3  7 16  5 18
11  1  8 14 12  6 15  5  4  3 17 13 16  2  9 10 18  7
11  4  9 12  1  8 16 14  7 10 17  5 13  2  6 18  3 15
11  4  9 12  1  8 16 14  7 13  2  6 18  3 15 10 17  5
11  4 18 15  5 13 17  1  8  7 16  9 12  2  6  3 10 14
11  6  9 14 13  8 17  2  3 12  1 15 18  4  5  7 16 10
11  7  5 16  1  9 17 15 14 12 10  8 18  2  4 13  3  6
11  9  2 12  1  6 18 13  8 14  7  3 17  5  4 10 15 16
11 10  5 12  3 15 18  2  1 14  9  8 17  4  7  6 13 16
11 13  3 12  1  9 16  5  6 15  4  2 18 10  8 17  7 14
11 16  8 12  9  6 17  2  1 13  3  4 15 10  5 18  7 14
12  1  6 15  9  4 17 18  8  7 16 10 14  2  3 13 11  5
12  1  7 15  8  5 16 13  6 17 10  4 18  3  9 14 11  2
12  1  7 15 10  5 18 11  9  3 14  4 13  2  6 17  8 16
12  1  7 15 10  5 18 11  9 13  2  6 17  8 16  3 14  4
12  1  8 13 11  7 14  6  3 16 15  2 18  4  5  9 17 10
12  1  8 14  6  3 15 13  5  9  2  7 18 10  4 11 17 16
12  1 14 13  5  7 16  2  4 11 10  8 15  3  6 17  9 18
12  1 17 15  6  5 16  2  4 11  3  9 18  7  8 13 10 14
12  1 17 16  2  4 18  7  8 11  3  9 15  6  5 13 10 14
12  2  3 16  4  6 18 13  8 10  1  9 11 17  5 14 15  7
12  3  6 13  1 17 15  2  7 16 14  8 18  4  5  9 11 10
12  4  6 14  2  3 18 13  8  7 15 11 10  1  9 16  5 17
12  4  8 15  3  6 17  5  1 14  2  9 18  7 11 13 16 10
12  5  4 13 11  7 14  2  1 17  3  9 18 10  8 16 15  6
12  7  2 13  1  8 16 14  4 15 10  5 18  3  6 17 11  9
12  7  2 13  1  8 16 14  4 17 11  9 18  3  6 15 10  5
12  7  6 14  1  9 16 15  2 10 11  4 17  3  8 18  5 13
12  7  6 15  2  1 17 13  3 16 14  8 18  4  5  9 11 10
12  7 14 15 11  9 18  2  1 10  8  5 17  3  4 16 13  6
12  7 14 15 11  9 18  2  1 13  3  6 16  5  4 17 10  8
12  7 14 15 11  9 18  2  1 16 13  6 17  3  4 10  8  5
12  9  6 13  7  8 17  2  4 10 15  5 14  3  1 18 11 16
12  9  6 17  2  4 18 10  8 15  5  3 16  7  1 11 13 14
12  9 18 13  1  7 14  6  3 11  2  4 15 10  5 17 16  8
12  9 18 13  1  7 14  6  3 15  4  2 17 11  5  8 16 10
12 11  4 13  1  9 16  7  6 10 17  5 14  2  8 18  3 15
12 11  4 13  1  9 16  7  6 14  2  8 18  3 15 10 17  5
12 11  4 13  5  7 14  2  1 17  3  9 18 10  8 16 15  6
12 13  8 14  2  1 17  6  9 11 18  7 16  3  4 15  5 10
13  1  5 14 11  4 17 16 15  9  2  7 12  3  6 18 10  8
13  1  5 14 11  4 17 16 15 12  3  6 18  7  2  9 10  8
13  1  5 14 11  4 18 17 10  6  7  9 16  3  2 12 15  8
13  1  5 14 11  4 18 17 10  9  2  7 15  6  3 12 16  8
13  1  5 14 11  4 18 17 10 12  3  9 16  7  8  2 15  6
13  1  5 14 11  4 18 17 10 12  9  6 16  3  8  7 15  2
13  1  5 14 11  4 18 17 10 12 15  8 16  3  2  6  7  9
13  1  5 14 11  4 18 17 10 15  7  8 16  2  6 12  3  9
13  1  5 14 12  2 17  9 15  7 16  4 18  3  8 10  6 11
13  1  8 16  6  3 17  7 14 12 11  9 18  4  2 15  5 10
13  1  9 14  7  6 15 11  4 17  3  5 18  2 10 12 16  8
13  2  4 16 12  8 17  5  1 11  7 15 18  3  6 14  9 10
13  2  4 16 12  8 17  5  1 14  9 10 18  3  6 11  7 15
13  3  6 14 15 12 17  2  7  9  1  8 10 11  5 16 18  4
13  3  6 14 15 12 17  2  7  9  1  8 16 18  4 10 11  5
13  3 12 15  1  6 17  8 16 10  2  7 11  5  4 14 18  9
13  9  6 15  1  8 16  5 12 11  2  3 17  7 10  4 18 14
13 10 14 15  2  6 16  3  9 12  1  8 17 11  4 18  5  7
13 11  7 15 18  9 17  2  1 12  3  6 16  5  4 14 10  8
13 16  9 14  1  8 17 11  7  5 10  6 12  2  4 15  3 18
13 16  9 14  1  8 17 11  7  6 10  5 12  2  4 18  3 15
13 16  9 14  1  8 17 11  7 10  3  5 15  4  2 18 12  6
13 16  9 14  1  8 17 11  7 12  2  4 15  3 18  5 10  6
13 16  9 14  1  8 17 11  7 12  2  4 18  3 15  6 10  5
13 17 18 14  2  5 16  3  7  9 15 12 10  1  6 11  8  4
14  1  5 16  4 10 17  6 15  7  2 11 18  3  8  9 13 12
14  1  8 15 13  5 18 16  2 12 10  4 17  3  9  6 11  7
14  1  9 15 10  5 16 13  3 11  7  2 18  4  8 17  6 12
14  2  1 16  8  4 17 11  9  6 15 10 18  3  5 13  7 12
14  2  6 15 11  7 16  4  8  3 17 10 12  1  9 18 13  5
14  2  8 16  3  4 18  6 12 13  1  9 15 17 10 11  5  7
14  5  6 15  1 16 18  2  9 12 10  8 17  3  4 13 11  7
14  5  6 15  1 16 18  2  9 13 11  7 17  3  4 12 10  8
14  5 16 15  1  8 18 12  9 11  7  2 17  3  6 13 10  4
14 11  4 16  1  9 18  5 13 10  7  6 17  3  8 12 15  2
14 11  4 16  1  9 18  5 13 12  2  7 17 15  3  6 10  8
14 11  4 16  1  9 18  5 13 12  7  2 17  3  6 15 10  8
15  1  8 16  9 12 17 11  4  5 14 13 18  3  2  7 10  6
15  1  8 17 12  9 18  5 16 10  3  6 14  4  2 13 11  7
15  2  1 16  9  8 18 14  7  5 10 11 17  3  4  6 12 13
15  2  1 16  9  8 18 14  7  6 12 13 17  3  4  5 10 11
15  3  5 17 11  9 18  4  2 10  1  7 12  8 16 14 13  6
15 14  5 17 11  6 18  2  4  9  1  7 10  8 16 13  3 12

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-13 14:27:14 | 显示全部楼层 来自 北京
1:楼上是用什么方法?贫举法还是某种优化算法?
2:重复的结果太多,该问题即有排列也有组合
3:大概验证了几组,不少组并非正解,即使目标函数值小于1E-20,应该精确为0.
回复 不支持

使用道具 举报

发表于 2010-1-13 16:59:06 | 显示全部楼层 来自 山东淄博
1:楼上是用什么方法?贫举法还是某种优化算法?
2:重复的结果太多,该问题即有排列也有组合
3:大概验证了几组,不少组并非正解,即使目标函数值小于1E-20,应该精确为0.
shamohu 发表于 2010-1-13 14:27

1、优化的贫举法。
2、重复结果是怎样定义的?以下两组不是重复吧?因为位置不一样,一个减号前,一个在减号后。
13 16  9 14  1  8 17 11  7 12  2  4 15  3 18  5 10  6
13 16  9 14  1  8 17 11  7 12  2  4 18  3 15  6 10  5
3、因为在求解时精度取1e-6,故不少组并非正解。重新取精度1e-12,得到136组解,大家再验证一下,看结果有什么问题。这一次看清了,用了28分钟。

  2  8 12 10 14  5 13  1  4  7 15  6 18  3  9 11 17 16
  5  2 17  9 18  6 13  1  4 12 14  8 16  3  7 15 11 10
  5  3  7 12  1  4 14 18 13 11 17 16 15  2  6  9 10  8
  5 10 15 12  8  7 18  2  1 14 11  9 17  3  4 16 13  6
  5 10 15 12  8  7 18  2  1 16 13  6 17  3  4 14 11  9
  5 11  4 15 17 10 18  1  9  8  7  6 13  3  2 14 12 16
  5 11  4 15 17 10 18  1  9 13  7  8 14  3  6 12  2 16
  5 12  6 13 18  2 16  1  8 11  7 15 17  3  4 14  9 10
  5 12  6 13 18  2 16  1  8 14  9 10 17  3  4 11  7 15
  5 12  6 15  2 10 16  1  8 13  3  4 17 11  9 18  7 14
  6  5  9 17  4 13 18  2  1 12 14  8 16  3  7 15 11 10
  6  7  8 11  1  3 13 16  9 15 14  5 17  4  2 10 12 18
  6  7 14 16 11  9 18  2  1 12 10  8 17  3  4 15 13  5
  6  7 14 16 11  9 18  2  1 15 13  5 17  3  4 12 10  8
  6 11  9 13  1  4 15  7 14 17  3  5 18  2 10 12 16  8
  7  1 16 11  5  8 18  2  4 12 15  6 17  3  9 13 10 14
  7  3 15 12 10  8 13  1  5  9 11 16 14  2  4 17 18  6
  7  3 15 12 13  5 16  1  8 14  2  9 18 17  4 10 11  6
  7  5  8 15 11  6 18  2  4 12  1 17 16  3  9 13 10 14
  7 11  5 13  1  4 17 16 10  6 15  9 14  2  8 12  3 18
  7 11  5 13  1  4 17 16 10  9 15  6 14  2  8 18  3 12
  7 11  5 13  1  4 17 16 10 12  3 18 14  2  8  6 15  9
  7 11  5 13  1  4 17 16 10 14  2  8 18  3 12  9 15  6
  7 14  6 12  5 11 13  1  4 15  8 10 16  3  2 17  9 18
  7 14  6 12  5 11 13  1  4 16  3  2 17  9 18 15  8 10
  7 15  2  8 12 16 18  1  9 13 11  4 14  3  6  5 17 10
  7 18  4 12 13  8 14  1  6 15 10  5 16  3  2 17 11  9
  7 18  4 12 13  8 14  1  6 16  3  2 17 11  9 15 10  5
  8  3  9 10  1  5 15 11  7 13 16 12 14  2  4 17 18  6
  8 13  6 12 10  2 14  1  7 15  4  5 17  9  3 18 11 16
  9  1  2 15 10  5 18 16  8 13 11  7 17  3  4 14 12  6
  9  1  2 15 10  5 18 16  8 13 11  7 17  3  6 12 14  4
  9  1  2 15 10  5 18 16  8 14 12  6 17  3  4 13 11  7
  9  1  7 10  8 16 11  2  4 14  3  6 17 13  5 18 12 15
  9 12 15 14 13  5 16  1  8  6 10  2 17  3  4 11 18  7
  9 12 15 14 13  5 16  1  8 10 11 18 17  2  6  7  4  3
  9 12 15 14 13  5 16  1  8 11 18  7 17  3  4  6 10  2
  9 15 12 11 16  8 13  1  4  5  2 10 18  3  6 17  7 14
  9 15 12 11 16  8 13  1  4 17  7 14 18  3  6  5  2 10
  9 16  2 13 11  7 15  1  8 10 14  5 18  3  6 12 17  4
  9 16  2 13 11  7 15  1  8 12 17  4 18  3  6 10 14  5
10  1  2 13 16  9 14 15  6 12  5  7 17  3  8 18 11  4
10  1  2 17  7 14 18 12  6 11  3  4 16  8  9  5 15 13
10  1  4 11  6  3 15 13  5 12 16  8 14  2  7 17 18  9
10  1  4 13 11  9 15  8  5  7 14  3 12  2  6 18 17 16
10  1  4 17 11  9 18 12  6  3 16  5 14  2  8 13  7 15
10  1  4 17 11  9 18 12  6 13  7 15 14  2  8  3 16  5
10  1  5 11 13  2 12  4  8 15 18  9 16  3  6 17  7 14
10  1  5 13 15  6 18  7  2 14  3  8 17 11  4 16  9 12
10  1  5 17  7  8 18 15  6 11 14  3 12  2  4 13 16  9
10  1  5 17  7  8 18 15  6 12  2  4 13 16  9 11 14  3
10  1  8 12  3  6 15 13  5 11  2  7 16 14  4 17  9 18
10  1  8 12  3  6 16 14  4 11  2  7 15 13  5 17  9 18
10  1  8 12  3  9 16 11  7 13  2  6 15 14  5 18 17  4
10  1  8 12  3  9 16 11  7 13  2  6 18 17  4 15 14  5
10  1  9 12 11  4 14  3  8 13  2  6 15 16  5 17 18  7
10  1  9 12 11  4 14  3  8 13  2  6 17 18  7 15 16  5
10  4  5 12  2 16 13  1  8 17  3  9 18 11  7 14 15  6
10  4  5 12 18  9 15  2  1 13 11  7 17  3  6 14 16  8
10  8  5 13  1  7 18 15  3 12 17  4 16  2  9 14 11  6
10 11  4 12  5 13 16  1  8 14  3  9 18  7  2 17 15  6
10 12  6 13 11  7 17  2  1 15  3  5 18 14  4  9 16  8
10 13  5 11  1  2 14 15 12  9  3  6 16  4  7 17 18  8
10 14  7 12  1  8 13  4  9 15  3  6 18 17  2 11  5 16
10 18  3 11  9 15 14  1  5  4 17  8 13  2  6 16  7 12
10 18  3 11  9 15 14  1  5 13  2  6 16  7 12  4 17  8
11  1  2 13 16 12 14 18  6  5  7  9 17  3  4 10 15  8
11  1  2 13 16 12 14 18  6 10 15  8 17  3  4  5  7  9
11  1  8 13 12  6 14  4  9 15  2 10 17  3  7 16  5 18
11  4  9 12  1  8 16 14  7 10 17  5 13  2  6 18  3 15
11  4  9 12  1  8 16 14  7 13  2  6 18  3 15 10 17  5
11  4 18 15  5 13 17  1  8  7 16  9 12  2  6  3 10 14
11  6  9 14 13  8 17  2  3 12  1 15 18  4  5  7 16 10
11 10  5 12  3 15 18  2  1 14  9  8 17  4  7  6 13 16
11 13  3 12  1  9 16  5  6 15  4  2 18 10  8 17  7 14
11 16  8 12  9  6 17  2  1 13  3  4 15 10  5 18  7 14
12  1  6 15  9  4 17 18  8  7 16 10 14  2  3 13 11  5
12  1  7 15  8  5 16 13  6 17 10  4 18  3  9 14 11  2
12  1  7 15 10  5 18 11  9  3 14  4 13  2  6 17  8 16
12  1  7 15 10  5 18 11  9 13  2  6 17  8 16  3 14  4
12  1  8 13 11  7 14  6  3 16 15  2 18  4  5  9 17 10
12  1  8 14  6  3 15 13  5  9  2  7 18 10  4 11 17 16
12  1 14 13  5  7 16  2  4 11 10  8 15  3  6 17  9 18
12  1 17 15  6  5 16  2  4 11  3  9 18  7  8 13 10 14
12  1 17 16  2  4 18  7  8 11  3  9 15  6  5 13 10 14
12  3  6 13  1 17 15  2  7 16 14  8 18  4  5  9 11 10
12  5  4 13 11  7 14  2  1 17  3  9 18 10  8 16 15  6
12  7  2 13  1  8 16 14  4 15 10  5 18  3  6 17 11  9
12  7  2 13  1  8 16 14  4 17 11  9 18  3  6 15 10  5
12  7  6 14  1  9 16 15  2 10 11  4 17  3  8 18  5 13
12  7  6 15  2  1 17 13  3 16 14  8 18  4  5  9 11 10
12  7 14 15 11  9 18  2  1 10  8  5 17  3  4 16 13  6
12  7 14 15 11  9 18  2  1 13  3  6 16  5  4 17 10  8
12  7 14 15 11  9 18  2  1 16 13  6 17  3  4 10  8  5
12  9  6 13  7  8 17  2  4 10 15  5 14  3  1 18 11 16
12  9 18 13  1  7 14  6  3 11  2  4 15 10  5 17 16  8
12  9 18 13  1  7 14  6  3 15  4  2 17 11  5  8 16 10
12 11  4 13  1  9 16  7  6 10 17  5 14  2  8 18  3 15
12 11  4 13  1  9 16  7  6 14  2  8 18  3 15 10 17  5
12 11  4 13  5  7 14  2  1 17  3  9 18 10  8 16 15  6
12 13  8 14  2  1 17  6  9 11 18  7 16  3  4 15  5 10
13  1  5 14 11  4 17 16 15  9  2  7 12  3  6 18 10  8
13  1  5 14 11  4 17 16 15 12  3  6 18  7  2  9 10  8
13  1  5 14 11  4 18 17 10  6  7  9 16  3  2 12 15  8
13  1  5 14 11  4 18 17 10  9  2  7 15  6  3 12 16  8
13  1  5 14 11  4 18 17 10 12  3  9 16  7  8  2 15  6
13  1  5 14 11  4 18 17 10 12  9  6 16  3  8  7 15  2
13  1  5 14 11  4 18 17 10 12 15  8 16  3  2  6  7  9
13  1  5 14 11  4 18 17 10 15  7  8 16  2  6 12  3  9
13  1  8 16  6  3 17  7 14 12 11  9 18  4  2 15  5 10
13  1  9 14  7  6 15 11  4 17  3  5 18  2 10 12 16  8
13  2  4 16 12  8 17  5  1 11  7 15 18  3  6 14  9 10
13  2  4 16 12  8 17  5  1 14  9 10 18  3  6 11  7 15
13  3  6 14 15 12 17  2  7  9  1  8 10 11  5 16 18  4
13  3  6 14 15 12 17  2  7  9  1  8 16 18  4 10 11  5
13  3 12 15  1  6 17  8 16 10  2  7 11  5  4 14 18  9
13 10 14 15  2  6 16  3  9 12  1  8 17 11  4 18  5  7
13 11  7 15 18  9 17  2  1 12  3  6 16  5  4 14 10  8
13 16  9 14  1  8 17 11  7  5 10  6 12  2  4 15  3 18
13 16  9 14  1  8 17 11  7  6 10  5 12  2  4 18  3 15
13 16  9 14  1  8 17 11  7 10  3  5 15  4  2 18 12  6
13 16  9 14  1  8 17 11  7 12  2  4 15  3 18  5 10  6
13 16  9 14  1  8 17 11  7 12  2  4 18  3 15  6 10  5
14  1  8 15 13  5 18 16  2 12 10  4 17  3  9  6 11  7
14  1  9 15 10  5 16 13  3 11  7  2 18  4  8 17  6 12
14  2  6 15 11  7 16  4  8  3 17 10 12  1  9 18 13  5
14  2  8 16  3  4 18  6 12 13  1  9 15 17 10 11  5  7
14  5  6 15  1 16 18  2  9 12 10  8 17  3  4 13 11  7
14  5  6 15  1 16 18  2  9 13 11  7 17  3  4 12 10  8
14  5 16 15  1  8 18 12  9 11  7  2 17  3  6 13 10  4
14 11  4 16  1  9 18  5 13 10  7  6 17  3  8 12 15  2
14 11  4 16  1  9 18  5 13 12  2  7 17 15  3  6 10  8
14 11  4 16  1  9 18  5 13 12  7  2 17  3  6 15 10  8
15  1  8 17 12  9 18  5 16 10  3  6 14  4  2 13 11  7
15  3  5 17 11  9 18  4  2 10  1  7 12  8 16 14 13  6
15 14  5 17 11  6 18  2  4  9  1  7 10  8 16 13  3 12
回复 不支持

使用道具 举报

发表于 2010-1-13 18:55:56 | 显示全部楼层 来自 山东淄博
看来这个问题不是很难,我将此问题转贴到csdn,很快就有了结果(与Forcal一致):http://topic.csdn.net/u/20100113/07/1bff0e7a-f8e1-4a48-9d59-ff5e8656b9ec.html?94423

下面是Forcal代码。 算法很简单:穷举,同时去掉没有必要的循环。
大家看还能否优化?同时检查一下这种算法有没有遗漏其他解?
看有没有更好的算法?

  1. main(:A,i,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15,i16,i17,i18,s)=
  2. {
  3.   A="\[19]",
  4.   i=1,(i<=1).while{setw(A+i,i++)},  //Unicode静态字符数组初始化
  5.   i=0,
  6.   i1=1,(i1<=16).while{
  7.     setw(A+i1,0),    //setw(A+i1,0)将地址A+i1的单元置0
  8.     i2=1,(i2<=18).while{
  9.       if[!getw(A+i2),i2++,continue()],    //getw(A+i2)得到地址A+i2的单元的值
  10.       setw(A+i2,0),
  11.       i3=1,(i3<=18).while{
  12.         if[!getw(A+i3),i3++,continue()],
  13.         if{i1/[which(i3<=9,i2*10,i2*100)+i3]>=1,i3++,continue()},
  14.         setw(A+i3,0),
  15.         i4=1,(i4<=18).while{
  16.           if[!getw(A+i4) | getw(A+i4)<i1,i4++,continue()],    //单元A+i4为0时不能进入循环;getw(A+i4)<i1时不进入循环,可去掉重复解
  17.           setw(A+i4,0),
  18.           i5=1,(i5<=18).while{
  19.             if[!getw(A+i5),i5++,continue()],
  20.             setw(A+i5,0),
  21.             i6=1,(i6<=18).while{
  22.               if[!getw(A+i6),i6++,continue()],
  23.               if{i1/[which(i3<=9,i2*10,i2*100)+i3]+i4/[which(i6<=9,i5*10,i5*100)+i6]>=1,i6++,continue()},  //which是一个选择计算函数
  24.               setw(A+i6,0),
  25.               i7=1,(i7<=18).while{
  26.                 if[!getw(A+i7) | getw(A+i7)<i4,i7++,continue()],
  27.                 setw(A+i7,0),
  28.                 i8=1,(i8<=18).while{
  29.                   if[!getw(A+i8),i8++,continue()],
  30.                   setw(A+i8,0),
  31.                   i9=1,(i9<=18).while{
  32.                     if[!getw(A+i9),i9++,continue()],
  33.                     if{abs{i1/[which(i3<=9,i2*10,i2*100)+i3]+i4/[which(i6<=9,i5*10,i5*100)+i6]+i7/[which(i9<=9,i8*10,i8*100)+i9]-1}>1e-12,i9++,continue()},
  34.                     setw(A+i9,0),
  35.                     i10=1,(i10<=18).while{
  36.                       if[!getw(A+i10),i10++,continue()],
  37.                       setw(A+i10,0),
  38.                       i11=1,(i11<=18).while{
  39.                         if[!getw(A+i11),i11++,continue()],
  40.                         setw(A+i11,0),
  41.                         i12=1,(i12<=18).while{
  42.                           if[!getw(A+i12),i12++,continue()],
  43.                           setw(A+i12,0),
  44.                           i13=1,(i13<=18).while{
  45.                             if[!getw(A+i13) | getw(A+i13)<i10,i13++,continue()],
  46.                             setw(A+i13,0),
  47.                             i14=1,(i14<=18).while{
  48.                               if[!getw(A+i14),i14++,continue()],
  49.                               setw(A+i14,0),
  50.                               i15=1,(i15<=18).while{
  51.                                 if[!getw(A+i15),i15++,continue()],
  52.                                 s=i10/[which(i12<=9,i11*10,i11*100)+i12]+i13/[which(i15<=9,i14*10,i14*100)+i15],
  53.                                 if{s<=0.5,i15++,continue()},
  54.                                 setw(A+i15,0),
  55.                                 //
  56.                                 i16=1,(i16<=18).while{if[getw(A+i16),break()],i16++},
  57.                                 i17=i16+1,(i17<=18).while{if[getw(A+i17),break()],i17++},
  58.                                 i18=i17+1,(i18<=18).while{if[getw(A+i18),break()],i18++},
  59.                                 if{abs{s-i16/[which(i18<=9,i17*10,i17*100)+i18]-0.5}<1e-12, i++,
  60.                                    printff{"{1,i,3}{2,i,3}{3,i,3}{4,i,3}{5,i,3}{6,i,3}{7,i,3}{8,i,3}{9,i,3}{10,i,3}{11,i,3}{12,i,3}{13,i,3}{14,i,3}{15,i,3}{16,i,3}{17,i,3}{18,i,3}\r\n",i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15,i16,i17,i18}
  61.                                 },
  62.                                 if{abs{s-i16/[which(i17<=9,i18*10,i18*100)+i17]-0.5}<1e-12, i++,
  63.                                    printff{"{1,i,3}{2,i,3}{3,i,3}{4,i,3}{5,i,3}{6,i,3}{7,i,3}{8,i,3}{9,i,3}{10,i,3}{11,i,3}{12,i,3}{13,i,3}{14,i,3}{15,i,3}{16,i,3}{17,i,3}{18,i,3}\r\n",i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15,i16,i18,i17}
  64.                                 },
  65.                                 if{abs{s-i17/[which(i16<=9,i18*10,i18*100)+i16]-0.5}<1e-12, i++,
  66.                                    printff{"{1,i,3}{2,i,3}{3,i,3}{4,i,3}{5,i,3}{6,i,3}{7,i,3}{8,i,3}{9,i,3}{10,i,3}{11,i,3}{12,i,3}{13,i,3}{14,i,3}{15,i,3}{16,i,3}{17,i,3}{18,i,3}\r\n",i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15,i17,i18,i16}
  67.                                 },
  68.                                 if{abs{s-i17/[which(i18<=9,i16*10,i16*100)+i18]-0.5}<1e-12, i++,
  69.                                    printff{"{1,i,3}{2,i,3}{3,i,3}{4,i,3}{5,i,3}{6,i,3}{7,i,3}{8,i,3}{9,i,3}{10,i,3}{11,i,3}{12,i,3}{13,i,3}{14,i,3}{15,i,3}{16,i,3}{17,i,3}{18,i,3}\r\n",i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15,i17,i16,i18}
  70.                                 },
  71.                                 if{abs{s-i18/[which(i17<=9,i16*10,i16*100)+i17]-0.5}<1e-12, i++,
  72.                                    printff{"{1,i,3}{2,i,3}{3,i,3}{4,i,3}{5,i,3}{6,i,3}{7,i,3}{8,i,3}{9,i,3}{10,i,3}{11,i,3}{12,i,3}{13,i,3}{14,i,3}{15,i,3}{16,i,3}{17,i,3}{18,i,3}\r\n",i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15,i18,i16,i17}
  73.                                 },
  74.                                 if{abs{s-i18/[which(i16<=9,i17*10,i17*100)+i16]-0.5}<1e-12, i++,
  75.                                    printff{"{1,i,3}{2,i,3}{3,i,3}{4,i,3}{5,i,3}{6,i,3}{7,i,3}{8,i,3}{9,i,3}{10,i,3}{11,i,3}{12,i,3}{13,i,3}{14,i,3}{15,i,3}{16,i,3}{17,i,3}{18,i,3}\r\n",i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15,i18,i17,i16}
  76.                                 },
  77.                                 //
  78.                                 setw(A+i15,i15++)
  79.                               },
  80.                               setw(A+i14,i14++)
  81.                             },
  82.                             setw(A+i13,i13++)
  83.                           },
  84.                           setw(A+i12,i12++)
  85.                         },
  86.                         setw(A+i11,i11++)
  87.                       },
  88.                       setw(A+i10,i10++)
  89.                     },
  90.                     setw(A+i9,i9++)
  91.                   },
  92.                   setw(A+i8,i8++)
  93.                 },
  94.                 setw(A+i7,i7++)
  95.               },
  96.               setw(A+i6,i6++)
  97.             },
  98.             setw(A+i5,i5++)
  99.           },
  100.           setw(A+i4,i4++)
  101.         },
  102.         setw(A+i3,i3++)
  103.       },
  104.       setw(A+i2,i2++)
  105.     },
  106.     setw(A+i1,i1++)    //setw(A+i1,i1++)将地址A+i1的单元置i1,然后i1++
  107.   },
  108.   i //解的个数
  109. };
复制代码
回复 不支持

使用道具 举报

发表于 2010-1-14 18:59:51 | 显示全部楼层 来自 湖南湘潭
期待看到Matlab的代码。
回复 不支持

使用道具 举报

发表于 2010-1-17 17:39:21 | 显示全部楼层 来自 湖南湘潭
抛砖引玉,期待有更好的Matalb代码。
% Elapsed time is 16848.621450 seconds.
x(1)从x1数组中选择,x(2)从x2数组中选择,从x1中删除x(1)即得x2数组,其余类推。

clear all;
clc;
tic
x1 = 1:18;
for id1 = 1:16
    x2 = x1; x2(id1) = [];
    for id2 = 1:17
        x3 = x2; x3(id2) = [];
        for id3 = 1:16
            if x3(id3)>9; p1 = 2;else p1 = 1;end
            if x1(id1)/(x2(id2)*10^p1+x3(id3)) >= 1;continue;end
            x4 = x3; x4(id3) = [];
            for id4 = 1:15
                if x4(id4) < x1(id1);continue;end;
                x5 = x4; x5(id4) = [];
                for id5 = 1:14
                    x6 = x5; x6(id5) = [];
                    for id6 = 1:13
                        if x6(id6)>9; p2 = 2; else p2 = 1;end
                        if x4(id4)/(x5(id5)*10^p2+x6(id6)) >=1;continue;end
                        if x1(id1)/(x2(id2)*10^p1+x3(id3))+x4(id4)/(x5(id5)*10^p2+x6(id6)) >=1 ;continue;end
                        x7 = x6; x7(id6) = [];
                        for id7 = 1:12
                            if x7(id7) < x4(id4);continue;end;
                            x8 = x7; x8(id7) = [];
                            for id8 = 1:11
                                x9 = x8; x9(id8) = [];
                                for id9 = 1:10
                                    if x9(id9)>9; p3 = 2; else p3 = 1;end
                                    if x7(id7)/(x8(id8)*10^p3+x9(id9)) >= 1;continue;end
                                    if abs(x1(id1)/(x2(id2)*10^p1+x3(id3))+x4(id4)/(x5(id5)*10^p2+x6(id6))+x7(id7)/(x8(id8)*10^p3+x9(id9))-1)>eps;
                                        continue;
                                    end
                                    x10 = x9; x10(id9) = [];
                                    for id10 = 1:9
                                        x11 = x10; x11(id10) = [];
                                        for id11 = 1:8
                                            x12 = x11; x12(id11) = [];
                                            for id12 = 1:7
                                                x16 = x12; x16(id12) = [];
                                                for id16 = 1:6
                                                    x17 = x16; x17(id16) = [];
                                                    for id17 = 1:5
                                                        x18 = x17; x18(id17) = [];
                                                        for id18 = 1:4
                                                            if x12(id12)>9; p4 = 2; else p4 = 1;end
                                                            if x18(id18)>9; p6 = 2; else p6 = 1;end
                                                            if x10(id10)/(x11(id11)*10^p4+x12(id12)) - x16(id16)/(x17(id17)*10^p6+x18(id18)) >= 0.5;
                                                                continue; % 实际上可以用...来判断。x10(id10)/(x11(id11)*10^p4+x12(id12))+x13(id13)/(x14(id14)*10^p5+x15(id15))<= 0.5;
                                                            end
                                                            x13 = x18; x13(id18) = [];
                                                            for id13 =1:3
                                                                if x13(id13) < x10(id10); continue; end;
                                                                x14 = x13; x14(id13) = [];
                                                                for id14 = 1:2
                                                                    x15 = x14; x15(id14) = [];
                                                                    for id15 = 1:1
                                                                        if x15(id15)>9; p5 = 2; else p5 = 1;end
                                                                        if abs(x10(id10)/(x11(id11)*10^p4+x12(id12))+x13(id13)/(x14(id14)*10^p5+x15(id15))-x16(id16)/(x17(id17)*10^p6+x18(id18))-0.5)<eps
                                                                            fprintf('%d\t',[x1(id1),x2(id2),x3(id3),x4(id4),x5(id5),x6(id6),x7(id7),x8(id8),x9(id9),x10(id10),x11(id11),x12(id12),x13(id13),x14(id14),x15(id15),x16(id16),x17(id17),x18(id18)]);%%%%%%%%%%%%%%%
                                                                            fprintf('\n');
                                                                        end
                                                                    end
                                                                end
                                                            end
                                                        end
                                                    end
                                                end
                                            end
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end
end
toc
% 2        8        12        10        14        5        13        1        4        7        15        6        18        3        9        11        17        16        
% 5        2        17        9        18        6        13        1        4        12        14        8        16        3        7        15        11        10        
% 5        3        7        12        1        4        14        18        13        11        17        16        15        2        6        9        10        8        
% 5        10        15        12        8        7        18        2        1        14        11        9        17        3        4        16        13        6        
% 5        10        15        12        8        7        18        2        1        16        13        6        17        3        4        14        11        9        
% 5        11        4        15        17        10        18        1        9        8        7        6        13        3        2        14        12        16        
% 5        11        4        15        17        10        18        1        9        13        7        8        14        3        6        12        2        16        
% 5        12        6        13        18        2        16        1        8        11        7        15        17        3        4        14        9        10        
% 5        12        6        13        18        2        16        1        8        14        9        10        17        3        4        11        7        15        
% 5        12        6        15        2        10        16        1        8        13        3        4        17        11        9        18        7        14        
% 6        5        9        17        4        13        18        2        1        12        14        8        16        3        7        15        11        10        
% 6        7        8        11        1        3        13        16        9        15        14        5        17        4        2        10        12        18        
% 6        7        14        16        11        9        18        2        1        12        10        8        17        3        4        15        13        5        
% 6        7        14        16        11        9        18        2        1        15        13        5        17        3        4        12        10        8        
% 6        11        9        13        1        4        15        7        14        17        3        5        18        2        10        12        16        8        
% 7        1        16        11        5        8        18        2        4        12        15        6        17        3        9        13        10        14        
% 7        3        15        12        10        8        13        1        5        9        11        16        14        2        4        17        18        6        
% 7        3        15        12        13        5        16        1        8        14        2        9        18        17        4        10        11        6        
% 7        5        8        15        11        6        18        2        4        12        1        17        16        3        9        13        10        14        
% 7        11        5        13        1        4        17        16        10        6        15        9        14        2        8        12        3        18        
% 7        11        5        13        1        4        17        16        10        9        15        6        14        2        8        18        3        12        
% 7        11        5        13        1        4        17        16        10        12        3        18        14        2        8        6        15        9        
% 7        11        5        13        1        4        17        16        10        14        2        8        18        3        12        9        15        6        
% 7        14        6        12        5        11        13        1        4        15        8        10        16        3        2        17        9        18        
% 7        14        6        12        5        11        13        1        4        16        3        2        17        9        18        15        8        10        
% 7        15        2        8        12        16        18        1        9        13        11        4        14        3        6        5        17        10        
% 7        18        4        12        13        8        14        1        6        15        10        5        16        3        2        17        11        9        
% 7        18        4        12        13        8        14        1        6        16        3        2        17        11        9        15        10        5        
% 8        3        9        10        1        5        15        11        7        13        16        12        14        2        4        17        18        6        
% 8        13        6        12        10        2        14        1        7        15        4        5        17        9        3        18        11        16        
% 9        1        2        15        10        5        18        16        8        13        11        7        17        3        6        12        14        4        
% 9        1        2        15        10        5        18        16        8        13        11        7        17        3        4        14        12        6        
% 9        1        2        15        10        5        18        16        8        14        12        6        17        3        4        13        11        7        
% 9        1        7        10        8        16        11        2        4        14        3        6        17        13        5        18        12        15        
% 9        12        15        14        13        5        16        1        8        6        10        2        17        3        4        11        18        7        
% 9        12        15        14        13        5        16        1        8        10        11        18        17        2        6        7        4        3        
% 9        12        15        14        13        5        16        1        8        11        18        7        17        3        4        6        10        2        
% 9        15        12        11        16        8        13        1        4        5        2        10        18        3        6        17        7        14        
% 9        15        12        11        16        8        13        1        4        17        7        14        18        3        6        5        2        10        
% 9        16        2        13        11        7        15        1        8        10        14        5        18        3        6        12        17        4        
% 9        16        2        13        11        7        15        1        8        12        17        4        18        3        6        10        14        5        
% 10        1        2        13        16        9        14        15        6        12        5        7        17        3        8        18        11        4        
% 10        1        2        17        7        14        18        12        6        11        3        4        16        8        9        5        15        13        
% 10        1        4        11        6        3        15        13        5        12        16        8        14        2        7        17        18        9        
% 10        1        4        13        11        9        15        8        5        7        14        3        12        2        6        18        17        16        
% 10        1        4        17        11        9        18        12        6        3        16        5        14        2        8        13        7        15        
% 10        1        4        17        11        9        18        12        6        13        7        15        14        2        8        3        16        5        
% 10        1        5        11        13        2        12        4        8        15        18        9        16        3        6        17        7        14        
% 10        1        5        13        15        6        18        7        2        14        3        8        17        11        4        16        9        12        
% 10        1        5        17        7        8        18        15        6        11        14        3        12        2        4        13        16        9        
% 10        1        5        17        7        8        18        15        6        12        2        4        13        16        9        11        14        3        
% 10        1        8        12        3        6        15        13        5        11        2        7        16        14        4        17        9        18        
% 10        1        8        12        3        6        16        14        4        11        2        7        15        13        5        17        9        18        
% 10        1        8        12        3        9        16        11        7        13        2        6        18        17        4        15        14        5        
% 10        1        8        12        3        9        16        11        7        13        2        6        15        14        5        18        17        4        
% 10        1        9        12        11        4        14        3        8        13        2        6        17        18        7        15        16        5        
% 10        1        9        12        11        4        14        3        8        13        2        6        15        16        5        17        18        7        
% 10        4        5        12        2        16        13        1        8        17        3        9        18        11        7        14        15        6        
% 10        4        5        12        18        9        15        2        1        13        11        7        17        3        6        14        16        8        
% 10        8        5        13        1        7        18        15        3        12        17        4        16        2        9        14        11        6        
% 10        11        4        12        5        13        16        1        8        14        3        9        18        7        2        17        15        6        
% 10        12        6        13        11        7        17        2        1        15        3        5        18        14        4        9        16        8        
% 10        13        5        11        1        2        14        15        12        9        3        6        16        4        7        17        18        8        
% 10        14        7        12        1        8        13        4        9        15        3        6        18        17        2        11        5        16        
% 10        18        3        11        9        15        14        1        5        4        17        8        13        2        6        16        7        12        
% 10        18        3        11        9        15        14        1        5        13        2        6        16        7        12        4        17        8        
% 11        1        2        13        16        12        14        18        6        5        7        9        17        3        4        10        15        8        
% 11        1        2        13        16        12        14        18        6        10        15        8        17        3        4        5        7        9        
% 11        1        8        13        12        6        14        4        9        15        2        10        17        3        7        16        5        18        
% 11        4        9        12        1        8        16        14        7        10        17        5        13        2        6        18        3        15        
% 11        4        9        12        1        8        16        14        7        13        2        6        18        3        15        10        17        5        
% 11        4        18        15        5        13        17        1        8        7        16        9        12        2        6        3        10        14        
% 11        6        9        14        13        8        17        2        3        12        1        15        18        4        5        7        16        10        
% 11        10        5        12        3        15        18        2        1        14        9        8        17        4        7        6        13        16        
% 11        13        3        12        1        9        16        5        6        15        4        2        18        10        8        17        7        14        
% 11        16        8        12        9        6        17        2        1        13        3        4        15        10        5        18        7        14        
% 12        1        6        15        9        4        17        18        8        7        16        10        14        2        3        13        11        5        
% 12        1        7        15        8        5        16        13        6        17        10        4        18        3        9        14        11        2        
% 12        1        7        15        10        5        18        11        9        3        14        4        13        2        6        17        8        16        
% 12        1        7        15        10        5        18        11        9        13        2        6        17        8        16        3        14        4        
% 12        1        8        13        11        7        14        6        3        16        15        2        18        4        5        9        17        10        
% 12        1        8        14        6        3        15        13        5        9        2        7        18        10        4        11        17        16        
% 12        1        14        13        5        7        16        2        4        11        10        8        15        3        6        17        9        18        
% 12        1        17        15        6        5        16        2        4        11        3        9        18        7        8        13        10        14        
% 12        1        17        16        2        4        18        7        8        11        3        9        15        6        5        13        10        14        
% 12        3        6        13        1        17        15        2        7        16        14        8        18        4        5        9        11        10        
% 12        5        4        13        11        7        14        2        1        17        3        9        18        10        8        16        15        6        
% 12        7        2        13        1        8        16        14        4        15        10        5        18        3        6        17        11        9        
% 12        7        2        13        1        8        16        14        4        17        11        9        18        3        6        15        10        5        
% 12        7        6        14        1        9        16        15        2        10        11        4        17        3        8        18        5        13        
% 12        7        6        15        2        1        17        13        3        16        14        8        18        4        5        9        11        10        
% 12        7        14        15        11        9        18        2        1        10        8        5        17        3        4        16        13        6        
% 12        7        14        15        11        9        18        2        1        13        3        6        16        5        4        17        10        8        
% 12        7        14        15        11        9        18        2        1        16        13        6        17        3        4        10        8        5        
% 12        9        6        13        7        8        17        2        4        10        15        5        14        3        1        18        11        16        
% 12        9        18        13        1        7        14        6        3        11        2        4        15        10        5        17        16        8        
% 12        9        18        13        1        7        14        6        3        15        4        2        17        11        5        8        16        10        
% 12        11        4        13        1        9        16        7        6        10        17        5        14        2        8        18        3        15        
% 12        11        4        13        1        9        16        7        6        14        2        8        18        3        15        10        17        5        
% 12        11        4        13        5        7        14        2        1        17        3        9        18        10        8        16        15        6        
% 12        13        8        14        2        1        17        6        9        11        18        7        16        3        4        15        5        10        
% 13        1        5        14        11        4        17        16        15        9        2        7        12        3        6        18        10        8        
% 13        1        5        14        11        4        17        16        15        12        3        6        18        7        2        9        10        8        
% 13        1        5        14        11        4        18        17        10        6        7        9        16        3        2        12        15        8        
% 13        1        5        14        11        4        18        17        10        9        2        7        15        6        3        12        16        8        
% 13        1        5        14        11        4        18        17        10        12        3        9        16        7        8        2        15        6        
% 13        1        5        14        11        4        18        17        10        12        9        6        16        3        8        7        15        2        
% 13        1        5        14        11        4        18        17        10        12        15        8        16        3        2        6        7        9        
% 13        1        5        14        11        4        18        17        10        15        7        8        16        2        6        12        3        9        
% 13        1        8        16        6        3        17        7        14        12        11        9        18        4        2        15        5        10        
% 13        1        9        14        7        6        15        11        4        17        3        5        18        2        10        12        16        8        
% 13        2        4        16        12        8        17        5        1        11        7        15        18        3        6        14        9        10        
% 13        2        4        16        12        8        17        5        1        14        9        10        18        3        6        11        7        15        
% 13        3        6        14        15        12        17        2        7        9        1        8        16        18        4        10        11        5        
% 13        3        6        14        15        12        17        2        7        9        1        8        10        11        5        16        18        4        
% 13        3        12        15        1        6        17        8        16        10        2        7        11        5        4        14        18        9        
% 13        10        14        15        2        6        16        3        9        12        1        8        17        11        4        18        5        7        
% 13        11        7        15        18        9        17        2        1        12        3        6        16        5        4        14        10        8        
% 13        16        9        14        1        8        17        11        7        5        10        6        12        2        4        15        3        18        
% 13        16        9        14        1        8        17        11        7        6        10        5        12        2        4        18        3        15        
% 13        16        9        14        1        8        17        11        7        10        3        5        15        4        2        18        12        6        
% 13        16        9        14        1        8        17        11        7        12        2        4        15        3        18        5        10        6        
% 13        16        9        14        1        8        17        11        7        12        2        4        18        3        15        6        10        5        
% 14        1        8        15        13        5        18        16        2        12        10        4        17        3        9        6        11        7        
% 14        1        9        15        10        5        16        13        3        11        7        2        18        4        8        17        6        12        
% 14        2        6        15        11        7        16        4        8        3        17        10        12        1        9        18        13        5        
% 14        2        8        16        3        4        18        6        12        13        1        9        15        17        10        11        5        7        
% 14        5        6        15        1        16        18        2        9        12        10        8        17        3        4        13        11        7        
% 14        5        6        15        1        16        18        2        9        13        11        7        17        3        4        12        10        8        
% 14        5        16        15        1        8        18        12        9        11        7        2        17        3        6        13        10        4        
% 14        11        4        16        1        9        18        5        13        10        7        6        17        3        8        12        15        2        
% 14        11        4        16        1        9        18        5        13        12        2        7        17        15        3        6        10        8        
% 14        11        4        16        1        9        18        5        13        12        7        2        17        3        6        15        10        8        
% 15        1        8        17        12        9        18        5        16        10        3        6        14        4        2        13        11        7        
% 15        3        5        17        11        9        18        4        2        10        1        7        12        8        16        14        13        6        
% 15        14        5        17        11        6        18        2        4        9        1        7        10        8        16        13        3        12        
% Elapsed time is 16848.621450 seconds.

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-1-17 18:15:41 | 显示全部楼层 来自 浙江杭州
嗯,很好,一共用了4个多小时?

我一直觉得用穷举法来求解这个问题不太适合用Matlab,所以一直没有来用Matlab来求解。


抛砖引玉,期待有更好的Matalb代码。
% Elapsed time is 16848.621450 seconds.
x(1)从x1数组中选择,x(2)从x2数组中选择,从x1中删除x(1)即得x2数组,其余类推。

clear all;
clc;
tic
x1 = 1:18;
for id1  ...
lin2009 发表于 2010-1-17 17:39
回复 不支持

使用道具 举报

发表于 2010-1-17 18:48:19 | 显示全部楼层 来自 广西贵港
wanglu兄,试试方程通分,化为乘法和加减法运算,不需要精度控制了。。
1、优化的贫举法。
2、重复结果是怎样定义的?以下两组不是重复吧?因为位置不一样,一个减号前,一个在减号后。
13 16  9 14  1  8 17 11  7 12  2  4 15  3 18  5 10  6
13 16  9 14  1  8 17 11  7 12  2  ...
wanglu 发表于 2010-1-13 16:59
回复 不支持

使用道具 举报

发表于 2010-1-17 19:45:19 | 显示全部楼层 来自 湖南湘潭
8# messenger
是的,最初用setdiff函数得到新的数组时,用时可能要几天。
改用[]后,大大缩短了用时。
有没可能再优化程序、或算法、或用高效的函数/算符,以缩短时间。
回复 不支持

使用道具 举报

发表于 2010-1-18 15:09:13 | 显示全部楼层 来自 山东淄博
wanglu兄,试试方程通分,化为乘法和加减法运算,不需要精度控制了。。

shunfly 发表于 2010-1-17 18:48

谢谢shunfly !应该是这样的,因现在已得到了结果,故没有再尝试。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-13 09:00 , Processed in 0.056743 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表