前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >回溯法解小学数字填数练习(2)

回溯法解小学数字填数练习(2)

原创
作者头像
孟君
修改2023-08-09 07:51:33
4100
修改2023-08-09 07:51:33
举报
文章被收录于专栏:孟君的编程札记

继上一篇《回溯法解小学数字填数练习(1)》,本文再补充2题。

题目一、填数使大圆圈上的数字相加相等

代码语言:javascript
复制
题目1描述:
把2、4、6、8、10、12、14这七个数填入下图的圆圈里,使两个大圆圈上的四个数相加的和相等。

暴力法

此思路就是将2、4、6、8、10、12、14七个数,随机乱序,尝试填入。判断1、2、3三个节点和4、5、6三个节点的和一致即可

某次尝试给出15个解

代码语言:javascript
复制

第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]个

回溯法

执行一下结果如下:

代码语言:javascript
复制
找到结果 : [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  

题目二、每边三个数的和等于15

代码语言:javascript
复制
题目1描述:
在图中填入数2-9,使得每边三个数的和等于15.

回溯法

以逆时针方向按顺序处理,如下图所示:

执行结果如下

代码语言:javascript
复制

找到结果 : [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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目一、填数使大圆圈上的数字相加相等
  • 题目二、每边三个数的和等于15
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档