将数字1到9填入下面圆圈里,每个数字只使用一次,使得三角形三条边之和相等。求出所有解。

   OO OO   O
O O O O

这题目怎么解?后来才知道老师靠试的,给出了一个答案。既然靠试,这种苦差事还不如写段小程序来穷举,还能提高孩子学编程的兴趣。

思路是这样的。将所圆圈定义如下:

      a0a1  a8a2      a7
a3  a4  a5  a6

为了避免重复,令:
a0<a3<a6
a1<a2
a4<a5
a7<a8

开始编程,语言Python

#检查是否重复
def unique(a):return a[0] < a[3] and a[3] < a[6]\and a[1] < a[2] and a[4] < a[5]\and a[7] < a[8]#验证三边和是否相等
def verify(a):s = sum(a[6:]) + a[0]return sum(a[0:4]) == s and sum(a[3:7]) == s#输出解
def solution(a):print('   %d' % a[0])print('  %d %d' % (a[1], a[8]))print(' %d   %d' % (a[2], a[7]))print('%d %d %d %d' % (a[3], a[4], a[5], a[6]))print('') # 空一行#用全排列搜索所有解
from itertools import permutationsn = 0 #解的数量
for a in permutations(range(1, 10)):if verify(a) and unique(a):n += 1print('%d# sum=%d' % (n, sum(a[0:4])))solution(a)

答案还不少,18个。

1# sum=1715 79   6
2 4 8 32# sum=1915 89   3
4 2 6 73# sum=1716 98   4
2 5 7 34# sum=1916 98   2
4 3 5 75# sum=2016 78   3
5 2 4 96# sum=2024 79   3
5 1 6 87# sum=1925 69   4
3 1 8 78# sum=2026 97   1
5 3 4 89# sum=1926 98   1
3 4 5 710# sum=2132 69   4
7 1 5 811# sum=2034 98   1
5 2 6 712# sum=2134 78   2
6 1 5 913# sum=2135 96   1
7 2 4 814# sum=2135 87   1
6 2 4 915# sum=2042 79   3
5 1 8 616# sum=2043 98   1
5 2 7 617# sum=2372 46   3
8 1 5 918# sum=2373 65   1
8 2 4 9

将数字1到9填入下面圆圈里,每个数字只使用一次,使得三角形三条边之和相等相关推荐

  1. 数字1-9依次排列填入符号+或-,结果为100

    Q: 数字1-9依次排列:1,2,3,4,5,6,7,8,9:在每两个数之间填"+"或"-",或不填,如:12+3-4+5+6+7+8+9.使它的值恰好等于10 ...

  2. 2014年去哪儿网笔试题--一个10*10的矩阵(可以理解为棋盘),随时生成一组数据填入矩阵,任何一个位置的数字除4进行计算,按余数着色......

    一个10*10的矩阵(可以理解为棋盘),随时生成一组数据填入矩阵,任何一个位置的数字除4进行计算,按余数着色,余数为0着色为red,1为blue,2为green,3为black,可以理解为生成4中颜色 ...

  3. 把1,2,3…n*n 的数字按照顺时针螺旋的形式填入数字矩阵

    从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3-n*n 的数字按照顺时针螺旋的形式填入其中.例如: 输入数字2,则程序输出: 1 2 4 3 输入数字3,则程序输出: 1 2 3 ...

  4. 所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

    所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 这是最基本的思路 #inclu ...

  5. 用1、2、3、4、5、6、7、8、9这9个数字,填入□ 中使等式□□×□□□ = □□□□ 成立,每个数字恰好只用一次。

    用1.2.3.4.5.6.7.8.9这9个数字,填入□ 中使等式□□×□□□ = □□□□ 成立,每个数字恰好只用一次. 以下是所有的7 个答案供参考: 12*483=5796 18*297=5346 ...

  6. 螺旋方阵 螺旋方阵题目描述所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。

    所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 输入 输入在一行中给出一个正整 ...

  7. 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可

    这是一个很好的算法 在leetcode 也曾出现,今天我们详细分析一下: 题目简介: /*** 请你判断一个 9 x 9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可.** ...

  8. excel实现套用模板批量打印_#数据清洗#Excel数据批量填入Word模板

    问题描述:把Excel中数据批量填入Word模板中的特定位置 今天小伙伴,遇到一个问题,他有一份一千多个不同城市的客户资料,同时,有一份word文档,他需要把Excel中的数据一条条填写到word中对 ...

  9. java实现顺时针螺旋填入

    从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把 1,2,3-n*n 的数字按照顺时针螺旋的形式填入其中.例如: 输入数字 2,则程序输出: 1 2 4 3 输入数字 3,则程序输出: 1 ...

最新文章

  1. PyTorch LSTM,batch_first=True对初始化h0和c0的影响
  2. weblogic如何在linux扩容,如何在linux的weblogic上增加启动参数
  3. Python进阶:如何将字符串常量转化为变量?
  4. ad软件中的插座_STM32采集AD的输入阻抗问题(转)
  5. rsync linux 教程,rsync 用法教程
  6. 解决Maven:Cannot resolve com.oracle.ojdbc:ojdbc6:11.2.0.1.0报红找不到问题,解决方案亲测有效详细图文教程 问题描述(ojdbc6)
  7. 多种文件上传绕过手法
  8. 找电影最强攻略,最全资源站
  9. MATLAB中改变默认工作路径的方法
  10. 防盗报警器c语言程序,基于AT89C2051设计的无线防盗报警器 附程序
  11. linux磁盘分区详解
  12. 【年月】-单词学习记录(模板)
  13. win10修改本地密钥服务器,win10密钥服务器
  14. 【过关斩将】小伙子,请做一下自我介绍?
  15. 2020年12月统考练习题
  16. 解决图片处理后旋转问题
  17. Python GUI编程—Tkinter实战一(生日快乐小程序)
  18. 由人眼追踪技术想到的
  19. 微信公众号笔记(二)
  20. 1000个瓶子里面999瓶是水,多少次试验确定哪瓶是毒药

热门文章

  1. 用海伦公式计算三角形的周长与面积
  2. XCP协议和A2L文件–A2L(ASAP2)解析
  3. 2018年1月iOS招人心得(附面试题)- 答案整理
  4. 怎样制作BT种子文件,即torrent后缀的文件?
  5. .net framework MVC ,API, 支持OAS3
  6. java开源运维平台_推荐一个:开源自动化运维开发平台(IT Automatic Develop Platform)...
  7. 原生JS实现雪花飘落的效果
  8. linux 命令总结大全
  9. 凤凰牌老熊对支付的系统讲解
  10. 每日一皮:朋友圈集赞原来还可以这样...