继上一篇《回溯法解小学数字填数练习(1)》,本文再补充2题。
题目1描述:
把2、4、6、8、10、12、14这七个数填入下图的圆圈里,使两个大圆圈上的四个数相加的和相等。
暴力法
此思路就是将2、4、6、8、10、12、14七个数,随机乱序,尝试填入。判断1、2、3三个节点和4、5、6三个节点的和一致即可。
某次尝试给出15个解
第1次随机产生的结果: [4, 6, 8, 12, 2, 10, 14]
6 2
8 4 10
12 14
第2次随机产生的结果: [12, 10, 8, 4, 2, 14, 6]
10 2
8 12 14
4 6
第3次随机产生的结果: [12, 8, 10, 4, 6, 14, 2]
8 6
10 12 14
4 2
第4次随机产生的结果: [4, 8, 6, 12, 14, 2, 10]
8 14
6 4 2
12 10
第5次随机产生的结果: [8, 14, 4, 6, 2, 12, 10]
14 2
4 8 12
6 10
第6次随机产生的结果: [12, 14, 6, 2, 10, 4, 8]
14 10
6 12 4
2 8
第7次随机产生的结果: [12, 10, 8, 4, 2, 6, 14]
10 2
8 12 6
4 14
第8次随机产生的结果: [4, 10, 14, 2, 12, 8, 6]
10 12
14 4 8
2 6
第9次随机产生的结果: [4, 12, 8, 6, 10, 2, 14]
12 10
8 4 2
6 14
第10次随机产生的结果: [12, 8, 4, 10, 14, 6, 2]
8 14
4 12 6
10 2
第11次随机产生的结果: [12, 14, 6, 2, 8, 4, 10]
14 8
6 12 4
2 10
第12次随机产生的结果: [12, 4, 10, 8, 6, 14, 2]
4 6
10 12 14
8 2
第13次随机产生的结果: [8, 2, 10, 12, 14, 4, 6]
2 14
10 8 4
12 6
第14次随机产生的结果: [12, 14, 6, 2, 10, 8, 4]
14 10
6 12 8
2 4
第15次随机产生的结果: [12, 10, 8, 4, 14, 6, 2]
10 14
8 12 6
4 2
一共随机[585]次, 共产生满足条件结果[15]个
回溯法
执行一下结果如下:
找到结果 : [4, 2, 10, 14, 6, 8, 12]
2 6
10 4 8
14 12
找到结果 : [4, 2, 10, 14, 6, 12, 8]
2 6
10 4 12
14 8
找到结果 : [4, 2, 10, 14, 8, 6, 12]
2 8
10 4 6
14 12
找到结果 : [4, 2, 10, 14, 8, 12, 6]
2 8
10 4 12
14 6
找到结果 : [4, 2, 10, 14, 12, 6, 8]
2 12
10 4 6
14 8
找到结果 : [4, 2, 10, 14, 12, 8, 6]
2 12
10 4 8
14 6
找到结果 : [4, 2, 14, 10, 6, 8, 12]
2 6
14 4 8
10 12
找到结果 : [4, 2, 14, 10, 6, 12, 8]
2 6
14 4 12
10 8
找到结果 : [4, 2, 14, 10, 8, 6, 12]
2 8
14 4 6
10 12
找到结果 : [4, 2, 14, 10, 8, 12, 6]
2 8
14 4 12
10 6
找到结果 : [4, 2, 14, 10, 12, 6, 8]
2 12
14 4 6
10 8
找到结果 : [4, 2, 14, 10, 12, 8, 6]
2 12
14 4 8
10 6
找到结果 : [4, 6, 8, 12, 2, 10, 14]
6 2
8 4 10
12 14
找到结果 : [4, 6, 8, 12, 2, 14, 10]
6 2
8 4 14
12 10
找到结果 : [4, 6, 8, 12, 10, 2, 14]
6 10
8 4 2
12 14
找到结果 : [4, 6, 8, 12, 10, 14, 2]
6 10
8 4 14
12 2
找到结果 : [4, 6, 8, 12, 14, 2, 10]
6 14
8 4 2
12 10
找到结果 : [4, 6, 8, 12, 14, 10, 2]
6 14
8 4 10
12 2
找到结果 : [4, 6, 12, 8, 2, 10, 14]
6 2
12 4 10
8 14
找到结果 : [4, 6, 12, 8, 2, 14, 10]
6 2
12 4 14
8 10
找到结果 : [4, 6, 12, 8, 10, 2, 14]
6 10
12 4 2
8 14
找到结果 : [4, 6, 12, 8, 10, 14, 2]
6 10
12 4 14
8 2
找到结果 : [4, 6, 12, 8, 14, 2, 10]
6 14
12 4 2
8 10
找到结果 : [4, 6, 12, 8, 14, 10, 2]
6 14
12 4 10
8 2
找到结果 : [4, 8, 6, 12, 2, 10, 14]
8 2
6 4 10
12 14
找到结果 : [4, 8, 6, 12, 2, 14, 10]
8 2
6 4 14
12 10
找到结果 : [4, 8, 6, 12, 10, 2, 14]
8 10
6 4 2
12 14
.。. ... 省略 ... ...
找到结果 : [12, 14, 2, 6, 10, 4, 8]
14 10
2 12 4
6 8
找到结果 : [12, 14, 2, 6, 10, 8, 4]
14 10
2 12 8
6 4
找到结果 : [12, 14, 6, 2, 4, 8, 10]
14 4
6 12 8
2 10
找到结果 : [12, 14, 6, 2, 4, 10, 8]
14 4
6 12 10
2 8
找到结果 : [12, 14, 6, 2, 8, 4, 10]
14 8
6 12 4
2 10
找到结果 : [12, 14, 6, 2, 8, 10, 4]
14 8
6 12 10
2 4
找到结果 : [12, 14, 6, 2, 10, 4, 8]
14 10
6 12 4
2 8
找到结果 : [12, 14, 6, 2, 10, 8, 4]
14 10
6 12 8
2 4
题目1描述:
在图中填入数2-9,使得每边三个数的和等于15.
回溯法
以逆时针方向按顺序处理,如下图所示:
执行结果如下
找到结果 : [2, 6, 7, 5, 3, 8, 4, 9]
2 9 4
6 8
7 5 3
找到结果 : [2, 9, 4, 8, 3, 5, 7, 6]
2 6 7
9 5
4 8 3
找到结果 : [3, 5, 7, 6, 2, 9, 4, 8]
3 8 4
5 9
7 6 2
找到结果 : [3, 8, 4, 9, 2, 6, 7, 5]
3 5 7
8 6
4 9 2
找到结果 : [4, 8, 3, 5, 7, 6, 2, 9]
4 9 2
8 6
3 5 7
找到结果 : [4, 9, 2, 6, 7, 5, 3, 8]
4 8 3
9 5
2 6 7
找到结果 : [7, 5, 3, 8, 4, 9, 2, 6]
7 6 2
5 9
3 8 4
找到结果 : [7, 6, 2, 9, 4, 8, 3, 5]
7 5 3
6 8
2 9 4
先简单记录一下,后续对代码做一个优化。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。