个人的第一篇博文,还请多多支持,不当之处,还请多多指教。(以后有精力还会写更多的文章)

本人是一名大一狗,目前为止学了半年python,对python也就有一点点的了解,没事爱编写一些小程序玩,不过都是些简单的小程序啦。。。在大佬面前不值一提。

今天元宵节,早上看了我关注的叫三乐大掌柜的up的一个视频,将1-25无重复的填入5✖5的方格纸中,使每一行、每一列和两条对角线的和都相等。

这题有意思,我想用python程序解之。做程序就要先想一想思路了,我的第一反应就是将25个数进行全排列,但当我算了算25!的时候,我就放弃了

(25!=15511210043330985984000000)。

退一步,解3✖3的吧。

这样,题就简化为:将1-9无重复的填入3✖3的方格纸中,使每一行、每一列和两条对角线的和都相等。

首先得到1-9的排列就难住了我,于是就去CSDN查找有关python排列的文章,这才知道python中有一个叫itertools的库,可以做排列。

只需这样:

import itertools

a = [1, 2, 3, 4]

b = list(itertools.permutations(a))

print(b)

输出:[(1, 2, 3, 4), (1, 2, 4, 3), (1, 3, 2, 4), (1, 3, 4, 2), (1, 4, 2, 3), (1, 4, 3, 2), (2, 1, 3, 4), (2, 1, 4, 3), (2, 3, 1, 4), (2, 3, 4, 1), (2, 4, 1, 3), (2, 4, 3, 1), (3, 1, 2, 4), (3, 1, 4, 2), (3, 2, 1, 4), (3, 2, 4, 1), (3, 4, 1, 2), (3, 4, 2, 1), (4, 1, 2, 3), (4, 1, 3, 2), (4, 2, 1, 3), (4, 2, 3, 1), (4, 3, 1, 2), (4, 3, 2, 1)]

共有24组排列,每个排列都是一个元组。

为了便于描述,先把九个数命名如下:

x11 x12 x13

x21 x22 x23

x31 x32 x33

学过线性代数的小伙伴可以看作一个3✖3的矩阵,接下来就是要填数字了。废话已经不少了,直接上python代码。

import itertools

a = [i for i in range(1, 10)]

b = list(itertools.permutations(a))

#print(b)

for tupl in b:   #填数字

x11 = tupl[0]

x12 = tupl[1]

x13 = tupl[2]

x21 = tupl[3]

x22 = tupl[4]

x23 = tupl[5]

x31 = tupl[6]

x32 = tupl[7]

x33 = tupl[8]

if (x11+x12+x13)\#python支持连等

== (x21+x22+x23)\

== (x31+x32+x33)\

== (x11+x22+x33)\

== (x13+x22+x31)\

== (x11+x21+x31)\

== (x12+x22+x32)\

== (x13+x23+x33):

print(tupl[0 : 3])

print(tupl[3 : 6])

print(tupl[6 : 9])

print(" ") #打印空行

这样就用穷举的方法完成了数独的填写,输出如下:

(2, 7, 6)

(9, 5, 1)

(4, 3, 8)

(2, 9, 4)

(7, 5, 3)

(6, 1, 8)

(4, 3, 8)

(9, 5, 1)

(2, 7, 6)

(4, 9, 2)

(3, 5, 7)

(8, 1, 6)

(6, 1, 8)

(7, 5, 3)

(2, 9, 4)

(6, 7, 2)

(1, 5, 9)

(8, 3, 4)

(8, 1, 6)

(3, 5, 7)

(4, 9, 2)

(8, 3, 4)

(1, 5, 9)

(6, 7, 2)

共有八组解。

这就完成了数独的填写。

(注:python版本为3.7.1)

如有更好的解法,还请私信我。(我的邮箱1569228598@qq.com)

欢迎点赞、投币、转发,更新不及时,谨慎关注。

python解初中题_用python解一道数独小题相关推荐

  1. python数学方程计算_用Python解方程

    一元一次方程 例题1: 这是北师大版小学六年级上册课本95页的一道解方程练习题: 大家可以先口算一下,这道题里面的x的值为200 接下来我们用python来实现,代码如下,每一句代码后面都写有解释语: ...

  2. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  3. python流获取控制台_对Python捕获控制台输出流的方法详解

    有时候我们的代码里可能要调用控制台命令,比如我想用Python写一个批量编译 .java 文件的脚本,用到如下代码 常规用法 os.system import os,traceback try: p ...

  4. python中累加函数_对Python实现累加函数的方法详解

    对Python实现累加函数的方法详解 发布时间:2020-10-26 00:02:44 来源:脚本之家 阅读:120 作者:岚漾忆雨 这个需求比较奇怪,要求实现Sum和MagaSum函数,实现以下功能 ...

  5. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

  6. python语法基础知识第四关第二题_【python基础语法】第4天作业练习题

    """有6道题(通过字典来操作): 1. 某比赛需要获取你的个人信息,设计一个程序, 运行时分别提醒输入 姓名.性别.年龄 ,输入完了,请将数据存储为一个字典, 2.数据 ...

  7. python累乘编程_黄哥Python:编程初学者来做题

    第一题: ''' 求解 ( i + i ) 的累乘.你可以用Python,Java, Go 等语言来写代码. (1+1)*(2+2)*(3+3)*.....(100+100) ​​​​ ''' 特别提 ...

  8. 大学python编程题_大学python题 求大佬解答!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 7-4 计算指数 (5 分) 真的没骗你,这道才是简单题 -- 对任意给定的不超过10的正整数n,要求你输出2n.不难吧? 输入格式: 输入在一行中给出一 ...

  9. python语言程序设计编程题_《python语言程序设计》_第一章编程题

    题目1.1 :显示"welcome to python " 答案:print('welcome to python') 题目1.2:显示"welcome to pytho ...

最新文章

  1. 九度OJ 1336:液晶屏裁剪 (GCD)
  2. Powershell Module for Netapp Data Ontap
  3. JAVA集合(笔记)
  4. DNS原理及其解析过程 精彩剖析
  5. linux脚本中空格怎么显示,linux vim 显示空格
  6. Android中Handler的正确使用
  7. hdu 2527 Safe Or Unsafe
  8. 数据报表体系搭建流程
  9. 【数字电子技术基础】数字电子钟设计
  10. Weekly Recap!相对不平淡的行情 相对冷淡的 DeFi 市场
  11. 史上最全BigDecimal的5种进位方式:ROUND_UP,ROUND_DOWN,ROUND_CEILING,ROUND_FLOOR,ROUND_HALF_UP,ROUND_HALF_DOWN的比较
  12. 静态资源部署分析和实验
  13. 线程安全的对象生命期管理(一)
  14. 【VMCloud云平台】SCAP(四)租户(二)
  15. Delphi图像处理 -- 彩色浮雕
  16. 微信输入就死机问题处理
  17. 查表法求sin和cos
  18. Ubuntu基本使用指南
  19. Andorid屏幕唤醒异常,Power按键无法点亮屏幕的分析
  20. 数据库查找姓李的人_假设某数据库表中有一个姓名字段,查找姓李的记录的准则是( )_学小易找答案...

热门文章

  1. android os于8.1区别,Android-x86 8.1-rc2发布 运行于x86 PC上的安卓OS
  2. centos 7.9密码改密钥登陆
  3. centos7 安装 Minio
  4. 【已解答】Linux ./configure --prefix 命令是什么意思?
  5. 4.5 计算机网络之网络层路由选择协议(自治系统AS、RIP、OSPF、BGP)
  6. java中的Cookie是什么_第74节:Java中的Cookie和Session
  7. vs2010 利用DMP文件、pdb文件查找release下的异常行号的方法
  8. 启明云端分享|sigmastar SSD201 \ SSD202D内存大小问题及flash分区问题解答
  9. html5微信摇一摇api,摇一摇关注JSAPI
  10. 方案接口服务器问题记录