1 9*9的两个数独,一个100多秒,同样的代码,一个只需要不到1秒,所以和递归时尝试的数据顺序有关,具有随机性 别太在意速度

2 逻辑就是 某个位置元素的可选范围 = set(1..9) - set(当前行所有数据) - set(当前列所有数据) - set(当前模块)

3 使用深度遍历,就是假设第一个空时x,测试下一个空,如果后面的空没有选择范围,则抛出错误代码,上一级重新更换value重新测试下一级;


# 设置参数
# 宫是 xx X yy
# 这里表示分块依据是 2行3列
import time# xx = 3
# yy = 3start = time.time()# 数独维度9
# 未知位置个数:60
# 次数:61963
# 耗时0.4959676265716553s
# xx = 3
# yy = 3
# list_ = [
#     [8, 0, 0, 0, 0, 0, 0, 0, 0],
#     [0, 0, 3, 6, 0, 0, 0, 0, 0],
#     [0, 7, 0, 0, 9, 0, 2, 0, 0],
#     [0, 5, 0, 0, 0, 7, 0, 0, 0],
#     [0, 0, 0, 0, 4, 5, 7, 0, 0],
#     [0, 0, 0, 1, 0, 0, 0, 3, 0],
#     [0, 0, 1, 0, 0, 0, 0, 6, 8],
#     [0, 0, 8, 5, 0, 0, 0, 1, 0],
#     [0, 9, 0, 0, 0, 0, 4, 0, 0]
# ]
# 结果
# [8, 1, 2, 7, 5, 3, 6, 4, 9]
# [9, 4, 3, 6, 8, 2, 1, 7, 5]
# [6, 7, 5, 4, 9, 1, 2, 8, 3]
# [1, 5, 4, 2, 3, 7, 8, 9, 6]
# [3, 6, 9, 8, 4, 5, 7, 2, 1]
# [2, 8, 7, 1, 6, 9, 5, 3, 4]
# [5, 2, 1, 

python3 数独解法 深度遍历相关推荐

  1. 根据keyName(如:result.data.name),无限深度遍历获取keyValue

    /*根据keyName(如:result.data.name),无限深度遍历获取keyValue*/ function getValueByDepthKeyName(jsonObj, keyName) ...

  2. C语言基本数据结构之三(图的广度及深度遍历,求单源最短路径的Dijkstra算法)

    上一篇主要讲了二叉树的先序,中序,后序遍历算法以及深度和节点的算法,这篇就讲一讲图的基本算法. 一.图的基本概念 1.1有向图G1: 有向图G是由两个集合V(G)和E(G)组成的,其中:V(G)是顶点 ...

  3. C/C++实现图的广度和深度遍历

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> # ...

  4. Python实现二叉树的三种深度遍历方法!

    python代码实现了二叉树,这次将会实现二叉树的几种遍历方法,来更好的解析二叉树的结构特点.分别是一种广度遍历,和三种深度遍历方法:先序遍历,中序遍历,后序遍历.下面是代码实现: 1.先序遍历 遍历 ...

  5. 数据结构——无向图创建邻接表以及深度遍历、广度遍历(C语言版)

    摘自:数据结构--无向图创建邻接表以及深度遍历.广度遍历(C语言版) 作者:正弦定理 发布时间:2020-12-22 20:55:12 网址:https://blog.csdn.net/chinese ...

  6. [Leetcode][第100题][JAVA][相同的树][二叉树][深度遍历][递归]

    [问题描述][中等] [解答思路] 深度遍历/递归 终止条件与返回值: 当两棵树的当前节点都为 null 时返回 true 当其中一个为 null 另一个不为 null 时返回 false 当两个都不 ...

  7. sdut 图的深度遍历

    图的深度遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 请定一个无向图 ...

  8. java多线程 文件夹_Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合

    复习IO操作,突然想写一个小工具,统计一下电脑里面的Java代码量还有注释率,最开始随手写了一个递归算法,遍历文件夹,比较简单,而且代码层次清晰,相对易于理解,代码如下:(完整代码贴在最后面,前面是功 ...

  9. File对象的深度遍历以及删除练习。

    在深度遍历目录时,当有目录就会去继续深度遍历该目录,当遍历完该子目录时,在接着刚才在该父目录的遍历继续遍历.主要涉及递归的思想. package Filelist;import java.io.Fil ...

  10. python来进行图的深度遍历和广度遍历

    python来进行图的深度遍历和广度遍历 # -*- coding: utf-8 -*- """ Created on Sat Sep 14 18:01:27 2019@ ...

最新文章

  1. [转]英语飙升的好方法
  2. FlushMode属性与transaction(spring注入的事务)
  3. 矩阵的LU分解 c++
  4. beanfactorypostprocessor_Spring源码分析(六)容器的扩展点(BeanFactoryPostProcessor)
  5. 如何做一场高质量的分享
  6. c语言 socket 断开自动连接,如何优雅地断开TCP连接?
  7. hwui opengl VS skia opengl VS skia vulkan?
  8. 人体姿态估计综述 2020最全
  9. 大型石油公司联手银行推出能源商品交易区块链平台
  10. 怎样让超星图书浏览器不会过期 (转)
  11. Windows 序列号查看
  12. 光影精灵usb安装linux,惠普光影精灵5笔记本怎么装win10系统(uefi+gpt)
  13. 英语四级口语测试软件,2021年大学英语四级口语测试题
  14. 微软word如何插入页码_如何在Microsoft Word中插入,删除和管理超链接
  15. Android studio插件GsonFormat 的使用
  16. 渠道二维码的基础玩法总结
  17. 罗切斯特大学将研究未来执行军事任务的量子计算
  18. thinkphp3的模型类字段
  19. 全向轮移动平台运动模型
  20. MongoDB数据库运维工具的使用

热门文章

  1. PEM 与 DER 格式详解
  2. Supervisor管理springboot应用
  3. Medusa学习Medusa参数使用
  4. mysql 时间 本周 本月_MySQL日期查询:本周、本月、本季、本年
  5. ios 网速监控_IOS_网速流量实时监控
  6. python不好找工作怎么办信用卡_利用python进行信用卡欺诈检测
  7. js事件冒泡与事件捕获、阻止事件冒泡和浏览器默认行为
  8. mysql 脏页刷新_InnoDB脏页刷新机制
  9. 用k-mer分析进行基因组调查:(一)基本原理
  10. 瀚高数据库命令备份还原