python3 数独解法 深度遍历
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 数独解法 深度遍历相关推荐
- 根据keyName(如:result.data.name),无限深度遍历获取keyValue
/*根据keyName(如:result.data.name),无限深度遍历获取keyValue*/ function getValueByDepthKeyName(jsonObj, keyName) ...
- C语言基本数据结构之三(图的广度及深度遍历,求单源最短路径的Dijkstra算法)
上一篇主要讲了二叉树的先序,中序,后序遍历算法以及深度和节点的算法,这篇就讲一讲图的基本算法. 一.图的基本概念 1.1有向图G1: 有向图G是由两个集合V(G)和E(G)组成的,其中:V(G)是顶点 ...
- C/C++实现图的广度和深度遍历
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> # ...
- Python实现二叉树的三种深度遍历方法!
python代码实现了二叉树,这次将会实现二叉树的几种遍历方法,来更好的解析二叉树的结构特点.分别是一种广度遍历,和三种深度遍历方法:先序遍历,中序遍历,后序遍历.下面是代码实现: 1.先序遍历 遍历 ...
- 数据结构——无向图创建邻接表以及深度遍历、广度遍历(C语言版)
摘自:数据结构--无向图创建邻接表以及深度遍历.广度遍历(C语言版) 作者:正弦定理 发布时间:2020-12-22 20:55:12 网址:https://blog.csdn.net/chinese ...
- [Leetcode][第100题][JAVA][相同的树][二叉树][深度遍历][递归]
[问题描述][中等] [解答思路] 深度遍历/递归 终止条件与返回值: 当两棵树的当前节点都为 null 时返回 true 当其中一个为 null 另一个不为 null 时返回 false 当两个都不 ...
- sdut 图的深度遍历
图的深度遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 请定一个无向图 ...
- java多线程 文件夹_Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合
复习IO操作,突然想写一个小工具,统计一下电脑里面的Java代码量还有注释率,最开始随手写了一个递归算法,遍历文件夹,比较简单,而且代码层次清晰,相对易于理解,代码如下:(完整代码贴在最后面,前面是功 ...
- File对象的深度遍历以及删除练习。
在深度遍历目录时,当有目录就会去继续深度遍历该目录,当遍历完该子目录时,在接着刚才在该父目录的遍历继续遍历.主要涉及递归的思想. package Filelist;import java.io.Fil ...
- python来进行图的深度遍历和广度遍历
python来进行图的深度遍历和广度遍历 # -*- coding: utf-8 -*- """ Created on Sat Sep 14 18:01:27 2019@ ...
最新文章
- [转]英语飙升的好方法
- FlushMode属性与transaction(spring注入的事务)
- 矩阵的LU分解 c++
- beanfactorypostprocessor_Spring源码分析(六)容器的扩展点(BeanFactoryPostProcessor)
- 如何做一场高质量的分享
- c语言 socket 断开自动连接,如何优雅地断开TCP连接?
- hwui opengl VS skia opengl VS skia vulkan?
- 人体姿态估计综述 2020最全
- 大型石油公司联手银行推出能源商品交易区块链平台
- 怎样让超星图书浏览器不会过期 (转)
- Windows 序列号查看
- 光影精灵usb安装linux,惠普光影精灵5笔记本怎么装win10系统(uefi+gpt)
- 英语四级口语测试软件,2021年大学英语四级口语测试题
- 微软word如何插入页码_如何在Microsoft Word中插入,删除和管理超链接
- Android studio插件GsonFormat 的使用
- 渠道二维码的基础玩法总结
- 罗切斯特大学将研究未来执行军事任务的量子计算
- thinkphp3的模型类字段
- 全向轮移动平台运动模型
- MongoDB数据库运维工具的使用