 # 数独解法.zip

• 散步的云
了解作者
• VBA
开发工具
• 51KB
文件大小
• zip
文件格式
• 0
收藏次数
• 1 积分
下载积分
• 1
下载次数
• 2018-01-12 15:58
上传日期 • 数独解法
• 数独解法 (完成).xlsm
51.9KB
• 最难数独有解的程序.txt
13.5KB

Sub 数独() '将已知数填入活动表的A1：I9单元格，运行宏即可 '本程序有很多不足，欢迎改进！ Dim i As Byte, t As Byte, r As Byte, x As Byte, y As Byte, zz As Byte Dim ta As Byte, tb As Byte, tc As Byte, td As Byte Dim hh(1 To 9, 1 To 9, 1 To 9) As Byte, hh2(1 To 9, 1 To 9) As Byte Dim g(1 To 9, 1 To 9) As Byte, gg(1 To 9) As Byte '九宫和九宫的和 Dim ypsi(1 To 9, 1 To 9) As Byte, yskn(0 To 9, 1 To 9, 1 To 9) As Byte '原始数组和分叉时保存的数组 81是暂定数 0是起始数,原始可能的数。 Dim jisu(1 To 9, 1 To 9) As Byte '计数数组，由于统计每个单元格可能数字的个数 Dim zsjw(1 To 9) As Byte '中间数组 ' Dim zan(1 To 729, 1 To 2) As Integer '模拟栈 Dim dzan(0 To 729, 1 To 6) As Integer '模拟一个综合栈，记录路径，候选数，历遍标志 Dim gtj As Boolean, htj As Boolean, ltj As Boolean Application.ScreenUpdating = False For y = 1 To 9 For x = 1 To 9 ypsi(y, x) = Cells(y, x) '把原始数据保留到数组 ' dzan(0, y, x, 1, 1) = Cells(y, x) Next Next yskn(0, 1, 1) = 0 zz = 0 ta = 0 tb = 0 tc = 0 E1: For y = 1 To 9 For x = 1 To 9 If Cells(y, x) = 0 Then Cells(y, x) = "" '如果单元格中有0 数组将溢出，此处做技术处理 Next Next g(1, 1) = Cells(1, 1) g(1, 2) = Cells(1, 2) g(1, 3) = Cells(1, 3) g(1, 4) = Cells(2, 1) g(1, 5) = Cells(2, 2) g(1, 6) = Cells(2, 3) g(1, 7) = Cells(3, 1) g(1, 8) = Cells(3, 2) g(1, 9) = Cells(3, 3) g(2, 1) = Cells(1, 4) g(2, 2) = Cells(1, 5) g(2, 3) = Cells(1, 6) g(2, 4) = Cells(2, 4) g(2, 5) = Cells(2, 5) g(2, 6) = Cells(2, 6) g(2, 7) = Cells(3, 4) g(2, 8) = Cells(3, 5) g(2, 9) = Cells(3, 6) g(3, 1) = Cells(1, 7) g(3, 2) = Cells(1, 8) g(3, 3) = Cells(1, 9) g(3, 4) = Cells(2, 7) g(3, 5) = Cells(2, 8) g(3, 6) = Cells(2, 9) g(3, 7) = Cells(3, 7) g(3, 8) = Cells(3, 8) g(3, 9) = Cells(3, 9) g(4, 1) = Cells(4, 1) g(4, 2) = Cells(4, 2) g(4, 3) = Cells(4, 3) g(4, 4) = Cells(5, 1) g(4, 5) = Cells(5, 2) g(4, 6) = Cells(5, 3) g(4, 7) = Cells(6, 1) g(4, 8) = Cells(6, 2) g(4, 9) = Cells(6, 3) g(5, 1) = Cells(4, 4) g(5, 2) = Cells(4, 5) g(5, 3) = Cells(4, 6) g(5, 4) = Cells(5, 4) g(5, 5) = Cells(5, 5) g(5, 6) = Cells(5, 6) g(5, 7) = Cells(6, 4) g(5, 8) = Cells(6, 5) g(5, 9) = Cells(6, 6) g(6, 1) = Cells(4, 7) g(6, 2) = Cells(4, 8) g(6, 3) = Cells(4, 9) g(6, 4) = Cells(5, 7) g(6, 5) = Cells(5, 8) g(6, 6) = Cells(5, 9) g(6, 7) = Cells(6, 7) g(6, 8) = Cells(6, 8) g(6, 9) = Cells(6, 9) g(7, 1) = Cells(7, 1) g(7, 2) = Cells(7, 2) g(7, 3) = Cells(7, 3) g(7, 4) = Cells(8, 1) g(7, 5) = Cells(8, 2) g(7, 6) = Cells(8, 3) g(7, 7) = Cells(9, 1) g(7, 8) = Cells(9, 2) g(7, 9) = Cells(9, 3) g(8, 1) = Cells(7, 4) g(8, 2) = Cells(7, 5) g(8, 3) = Cells(7, 6) g(8, 4) = Cells(8, 4) g(8, 5) = Cells(8, 5) g(8, 6) = Cells(8, 6) g(8, 7) = Cells(9, 4) g(8, 8) = Cells(9, 5) g(8, 9) = Cells(9, 6) g(9, 1) = Cells(7, 7) g(9, 2) = Cells(7, 8) g(9, 3) = Cells(7, 9) g(9, 4) = Cells(8, 7) g(9, 5) = Cells(8, 8) g(9, 6) = Cells(8, 9) g(9, 7) = Cells(9, 7) g(9, 8) = Cells(9, 8) g(9, 9) = Cells(9, 9) For y = 1 To 9 gg(y) = 0 For i = 1 To 9 jisu(y, i) = 0 '对计数数组赋值 ' dzan(zz, y, i, 1, 1) = Cells(y, i) '将节点的数据保存到数组 gg(y) = gg(y) + g(y, i) '对每一宫的数进行合计 For t = 1 To 9 hh(y, i, t) = t Next Next Next '''分段3 For y = 1 To 9 For x = 1 To 9 If Cells(y, x) > 0 And Cells(y, x) < 10 Then '如果宫格里的数已经确定则将该数读入列 For i = 1 To 9 hh(y, x, i) = 0 Next Else For i = 1 To 9 If Cells(y, i) <> "" Or Cells(y, i) <> 0 Then r = Cells(y, i) '去掉行里有的数 hh(y, x, r) = 0 End If Next For t = 1 To 9 If Cells(t, x) <> "" Or Cells(t, x) <> 0 Then r = Cells(t, x) '去掉列里有的数 hh(y, x, r) = 0 End If Next If y = 1 Or y = 2 Or y = 3 Then ''A If x = 1 Or x = 2 Or x = 3 Then For t = 1 To 9 '去掉宫1里有的数 If g(1, t) <> 0 Then r = g(1, t) hh(y, x, r) = 0 End If Next Else If x = 4 Or x = 5 Or x = 6 Then For t = 1 To 9 '去掉宫2里有的数 If g(2, t) <> 0 Then r = g(2, t) hh(y, x, r) = 0 End If Next Else For t = 1 To 9 '去掉宫3里有的数 If g(3, t) <> 0 Then r = g(3, t) hh(y, x, r) = 0 End If Next End If End If ''''''''''''' Else ''1 If y = 4 Or y = 5 Or y = 6 Then If x = 1 Or x = 2 Or x = 3 Then ''''3 For t = 1 To 9 '去掉宫4里有的数 If g(4, t) <> 0 Then r = g(4, t) hh(y, x, r) = 0 End If Next Else If x = 4 Or x = 5 Or x = 6 Then For t = 1 To 9 '去掉宫5里有的数 If g(5, t) <> 0 Then r = g(5, t) hh(y, x, r) = 0 End If Next Else For t = 1 To 9 '去掉宫6里有的数 If g(6, t) <> 0 Then r = g(6, t) hh(y, x, r) = 0 End If Next End If End If ''''3 Else If y = 7 Or y = 8 Or y = 9 Then If x = 1 Or x = 2 Or x = 3 Then ''''3 For t = 1 To 9 '去掉宫7里有的数 If g(7, t) <> 0 Then r = g(7, t) hh(y, x, r) = 0 End If Next Else If x = 4 Or x = 5 Or x = 6 Then For t = 1 To 9 '去掉宫8里有的数 If g(8, t) <> 0 Then r = g(8, t) hh(y, x, r) = 0 End If Next Else For t = 1 To 9 '去掉宫9里有的数 If g(9, t) <> 0 Then r = g(9, t) hh(y, x, r) = 0   相关推荐
• SIM800C_MQTT.rar
使用SIM800C模块，使用MQTT协议，连接中国移动onenet平台，能实现数据的订阅、发布、存储等
讲述android 开机流程 从boot rom---bootloader---init--zygote---systemserver---ams 并附上自己整理的每个流程的流程图 ，清晰熟悉android 启动流程
• 飞轮储能系统MATLAB仿真
基于MATLAB的储能飞轮电源系统仿真，电网侧电机侧都有
• matlabpam代码-dsp-library:用于光通信的MATLABDSP函数库
matlab pam代码 DSP库 该项目包含几种不同的功能，可将DSP算法应用于光通信。 这些功能适用于相干和非相干（PAM，DMT）光通信。 大多数功能是相互独立的。 因此，该代码中的功能可以轻松使用，并与其他DSP功能结合使用。 用法 功能列表以及简短说明在文件中。 输入和输出参数的描述在每个函数的标题中。 讯号 通常，输入（和输出）信号在第一维度上具有时间（例如，列向量），而第二维度用于一次管理多个信号（例如，不同的极化，不同的参数等）。 之所以选择这种约定，是因为MATLAB通过将列保留在内存的连续部分中来存储矩阵，因此，这种约定比其他方法（行向量）要快。 参数 大多数功能使用参数结构作为输入参数。 函数中使用的参数的描述通常在标头中，而coherent-dsp函数的默认参数在文件中。 参考 执照 此代码在下发布。
• 有关多目标跟踪的PHD滤波的一些资料
一些关于多目标跟踪的新的文献，主要是有关概率假设密度（PHD）的
• 基于python开发的全国新工商采集工具 v1.2版本
这个软件是通过scrapy爬虫框架结合代理IP池再加上request模拟请求技术以及验证码识别技术，可以做到日更新采集全国新工商信息。采集的数据自动存储在mysql数据库表里，可下载全量1.8亿多企业工商基本信息和36维度的详细信息.支持sql和excel导出数据包格式。
• 卷积神经网络
这是卷积神经网络的一个实际用例，已经调试好了，能够在matlab上成功运行，适合从事卷积神经网络（CNN）研究的人员学习使用。
• matlab匹配滤波代码-matlab_for_thesis:Matlab博士学位论文代码
matlab匹配滤波代码博士论文的MATLAB代码 博士论文的MATLAB代码的一部分，“井田双色散水下声通道中的多载波通信”。 函数下的func_JingTian文件夹 FUNC_JINGTIAN包含多载波通信中一些通常需要的功能： OFDM调制/解调模块，包括几种数据辅助的信道估计方法和差分解调； 快速实现GFDM和C-FBMC调制/解调，分别包括时域和频域的迫零（ZF）和匹配滤波（MF）均衡； 为OFDM信道估计中使用的压缩感测方法计算字典的功能； 增加信道效应，施加宽带多普勒失真的功能； 通过线性调频Z变换（CZT）以任意精度对频域中的信号进行重采样; Hermite函数合成的信号之间的交叉歧义函数的计算。 演示文件夹 以下列出了四个演示 demo1：使用基本追踪（BP）算法形式的压缩感知方法对OFDM进行稀疏2-D信道估计； demo2：比较基本数据辅助OFDM信道估计算法，包括常规频域插值和基于IDFT的变换域方法； demo3：圆形滤波器组多载波（C-FBMC / OQAM）的基于DFT特征向量的原型滤波器合成； demo4：用于广义频分复用（GFDM）的辅助日期辅助无干
• Aerosim Blockset
The AeroSim aeronautical simulation blockset provides a complete set of tools for the rapid development of nonlinear 6-degree of freedom aircraft dynamic models. In addition to the basic aircraft dynamics blocks, the library also includes complete aircraft models which can be customized through parameter files.