|
本帖最后由 tree_new_bee 于 2012-5-22 14:28 编辑
newkid 发表于 2012-5-8 23:07 ![]()
下一个N是23, 人肉来做做看?
能否转换为图的遍历问题?有没有可能在不需要真正遍历的情况下就知道存在一条 ...
对于23, 可以先跟我上面一样找出所有的可能邻点, 这次改用SQL来找:
with t as (SELECT LEVEL n FROM DUAL CONNECT BY LEVEL<=23)
select t1.n, wm_concat(t2.n) from t t1, t t2
where t1.n<>t2.n and t1.n+t2.n in (4,9,16,25,36) group by t1.n
1 3,15,8
2 7,23,14
3 1,22,13,6
4 5,21,12
5 4,20,11
6 3,19,10
7 2,18,9
8 1,17
9 7,16
10 6,15
11 5,14
12 4,13
13 3,23,12
14 2,22,11
15 1,21,10
16 9,20
17 8,19
18 7
19 6,17
20 5,16
21 4,15
22 3,14
23 2,13
可以看出18只有唯一的邻点。
根据相邻关系可以画出一张图来。 然后其实是一个一笔画的问题, 对于23来说,这个图还不算特别复杂, 找出一条路径不是太难。 如下图,可以找到:
18,7,9,16,20,5,11,14,22,3,1,8,17,19,6,10,15,21,4,12,13,23,2
其实,稍仔细点,其它几条路径也不是太难找到。(可以从7往2走, 也可以从14那个地方往左走2的方向)
|
|