python数独代码_python 实现计算数独

输入文件格式:

008309100

900060004

007504800

036000540

001000600

042000970

005907300

600010008

004608200

输出结果:

yuan

********************

0 0 8 3 0 9 1 0 0

9 0 0 0 6 0 0 0 4

0 0 7 5 0 4 8 0 0

0 3 6 0 0 0 5 4 0

0 0 1 0 0 0 6 0 0

0 4 2 0 0 0 9 7 0

0 0 5 9 0 7 3 0 0

6 0 0 0 1 0 0 0 8

0 0 4 6 0 8 2 0 0

********************

result

********************

4 2 8 3 7 9 1 6 5

9 5 3 8 6 1 7 2 4

1 6 7 5 2 4 8 3 9

8 3 6 7 9 2 5 4 1

7 9 1 4 3 5 6 8 2

5 4 2 1 8 6 9 7 3

2 8 5 9 4 7 3 1 6

6 7 9 2 1 3 4 5 8

3 1 4 6 5 8 2 9 7

1 cellArray=[]2 rowMax=9

3 columnMax=9

4 defpre():5 with open(r"C:\Python27\sd.txt") as infile:6 l=[s for s ininfile]7 for i inrange(rowMax):8 rowArray=[]9 for j inrange(columnMax):10 c=Cell(i,j)11 c.value=int(l[i][j])12 rowArray.append(c)13 cellArray.append(rowArray)14

15 defmynext(c):16 if c.row+1<17 row="c.row+1</p">

18 column=c.column19 returncellArray[row][column]20 elif c.column+1<21 row="022" column="c.column+1</p">

23 returncellArray[row][column]24 else:25 returnNone26

27 classCell:28 def __init__(self,row,column):29 self.row=row30 self.column=column31 self.value=032 def __str__(self):33 return str(self.row)+":"+str(self.column)+":"+str(self.value)34

35 defsetCellValue(cell):36 if cell==None:37 returnTrue38 if cell.value==0:39 canList=[1,2,3,4,5,6,7,8,9]40 blockCheck(canList,cell)41 rowCheck(canList,cell)42 columnCheck(canList,cell)43 if len(canList) ==0:44 returnFalse45 for canNum incanList:46 cell.value=canNum47 res=setCellValue(mynext(cell))48 ifres:49 returnTrue50 cell.value=051 returnFalse52 else:53 returnsetCellValue(mynext(cell))54 defblockCheck(canList,cell):55 blockrow=cell.row/3

56 blockcolumn=cell.column/3

57 for i in range(blockrow*3,(blockrow+1)*3):58 for j in range(blockcolumn*3,(blockcolumn+1)*3):59 cvalue=cellArray[i][j].value60 if cellArray[i][j].value==0:61 continue

62 if cvalue incanList:63 canList.remove(cvalue)64

65 defrowCheck(canList,cell):66 for i inrange(columnMax):67 cvalue=cellArray[cell.row][i].value68 if cvalue==0:69 continue

70 if cvalue incanList:71 canList.remove(cvalue)72

73 defcolumnCheck(canList,cell):74 for i inrange(rowMax):75 cvalue=cellArray[i][cell.column].value76 if cvalue==0:77 continue

78 if cvalue incanList:79 canList.remove(cvalue)80

81 print 'yuan'

82 print '*'*20

83 pre()84 for i inrange(rowMax):85 for j inrange(columnMax):86 printstr(cellArray[i][j].value),87 print "\n"

88

89 print '*'*20

90 print 'result'

91 print '*'*20

92 setCellValue(cellArray[0][0])93 for i inrange(rowMax):94 for j inrange(columnMax):95 printstr(cellArray[i][j].value),96 print "\n"

21>17>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyEclipse配色字体等配置的解决方案

Myeclipse黑色配色方案&#xff08;精心修改版&#xff09; http://download.csdn.net/detail/rehongchen/6579945 如何改变Myeclipse编辑区背景色 http://my.oschina.net/epiclight/blog/465506 -------------------------------------------------------------------------…

android studio内置终端,Android Studio Terminal xx不是内部或者外部命令

背景在使用AS工具自带命令面板Terminal的时候&#xff0c;相信你有碰到过&#xff1a;xx不是内部或者外部命令&#xff0c;也不是可运行程序。解决办法就是配置环境变量一、在 Terminal 中使用 adb&#xff0c;报 adb 不是内部或者外部命令&#xff0c;也不是可运行的程序。解决…

python pp模块_python常用模块

1、re模块re模块用于对python的正则表达式的操作1.1 什么是正则正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说&#xff1a;正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中&#xff0c;并通过 re 模块实现。正…

[Leetcode]@python 90. Subsets II.py

题目链接 https://leetcode.com/problems/subsets-ii/ 题目原文 Given a collection of integers that might contain duplicates, nums, return all possible subsets. Note: Elements in a subset must be in non-descending order. The solution set must not contain dupli…

android glu,我可以使用glu与Android NDK

Does OpenGL ES not have glu?OpenGL ES 1.1&#xff1a;#include #include OpenGL ES 2.0&#xff1a;#include #include Is there a port I can use?是的&#xff0c;Android的部分端口为GLU – GLU ES(支持gluErrorString&#xff0c;gluPerspective和许多其他功能)&#…

线程间通信 GET POST

线程间通信有三种方法&#xff1a;NSThread GCD NSOperation 进程&#xff1a;操作系统里面每一个app就是一个进程、 一个进程里面可以包含多个线程&#xff0c;并且我们每一个app里面有且仅有一条主线程。scrollViewDelegate 的方法 &#xff1a; &#xff08;UIView *&…

android 恢复app 到前台,android手机把app disable了,怎么恢复

程序源代码如下:main(){int i,j,k;printf("\n");for(i1;i<5;i)    &#xff0f;*以下为三重循环*/for(j1;j<5;j)for (k1;k<5;k){if (i!k&&i!j&&j!k)    /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}main(){…

python mount回调函数_为python回调函数设置argtype

我对Python很在行&#xff0c;所以希望我能正确地表达这个问题。在整个问题涉及从Python调用C例程。我可以通过把一些相关的问题/答案凑在一起来接近&#xff0c;但我似乎不能把事情安排得很好。有两个方面&#xff1a;第一个是用指针调用C例程&#xff0c;第二个是使用回调函数…

参考 备份

原链接http://help.jd.com/Vender/question-1004.html 京东开放平台招商基础资质标准 一、基础资质标准&#xff1a; 注&#xff1a;商家可以选择京东质检平台中的第三方机构检测服务&#xff0c;申请地址&#xff1a;http://fw.jd.com/ser/list.action?page1&cid400 店铺…

android透明像素效率,android-非透明像素上的ImageView ColorFilter.夹

我有一个带位图的ImageView.该位图具有Alpha通道和透明像素.当我尝试将ColorFiter与Mode.OVERLAY(由于蜂窝)一起使用时-提供的颜色覆盖了整个imageview(整个矩形),但是我只想覆盖非透明像素.我如何裁剪imageview的画布以在需要的地方执行过滤器&#xff1f;更新我在png中有灰色…

svm预测结果为同一个值_SVM算法总结

一、1.感知机模型&#xff1a;感知器模型是SVM、神经网络、深度学习等算法的基础;感知器模型就是试图找到一条直线&#xff0c;能够把所有的“1”类和“-1”类分隔开&#xff0c;如果是高维空间中&#xff0c;感知器模型寻找的就是一个超平面&#xff0c;能够把所有的二元类别分…

iOS 动画绘制线条颜色渐变的折线图

效果图 .................... 概述 现状 折线图的应用比较广泛&#xff0c;为了增强用户体验&#xff0c;很多应用中都嵌入了折线图。折线图可以更加直观的表示数据的变化。网络上有很多绘制折线图的demo&#xff0c;有的也使用了动画&#xff0c;但是线条颜色渐变的折线图的…

python股票交易模型_如何用Python建模GGM模型并对股票估值?

内容首发乐学偶得(http://lexueoude.com) 公众号&#xff1a; 乐学Fintech用代码理解分析解决金融问题首先我们快速了解一下什么是GGM模型。GGM模型又叫做“戈登增长模型”(Gordon Growth Model&#xff0c;GGM)是用于对公司进行估值的工具。该理论假设公司的内在价值就是将所有…

android android 修改 jpg exif 属性,Android开发之使用ExifInterface获取拍照后的图片属性...

本文实例讲述了Android开发之使用ExifInterface获取拍照后的图片属性。分享给大家供大家参考&#xff0c;具体如下&#xff1a;ExifInterface exif new ExifInterface(file.getPath());String widthStr exif.getAttribute(ExifInterface.TAG_IMAGE_WIDTH);String heightStr …

[Selenium] 最大化或自定义浏览器的大小

driver.manage().window().maximize(); //将浏览器设置为最大化的状态driver.manage().window().setSize(new Dimension(600, 400)); //将浏览器的大小自定义为600*400转载于:https://www.cnblogs.com/MasterMonkInTemple/p/5212721.html

python中如何替换某列特定数值_python 怎么根据两列值,修改对应的某列值,其中一列的为需要修改的列标题...

自己造了些数据&#xff0c;不知道是否符合题主的意思。原始数据&#xff1a;no wrong_item0 001 a1 003 a2 002 b3 004 c处理后结果&#xff1a;Out[1]:no a b c0 001 1 0 02 002 0 1 01 003 1 0 03 004 0 0 1具体代码如下&#xff1a;import pandas as pd# 创建dataframe,或者…

android怎么ota升级,Android OTA升级过程

通过网络或直接本地获取到OTA升级包之后&#xff0c;通过程序就可开始Android的升级。本文描述这一过程。在获取到OTA升级包之后&#xff0c;可以直接通过android.os.RecoverySystem.installPackage()开启OTA升级。RecoverySystem.installPackage()是在API-8之后加入的&#xf…

进阶学习js中的执行上下文

在js中的执行上下文&#xff0c;菜鸟入门基础 这篇文章中我们简单的讲解了js中的上下文&#xff0c;今天我们就更进一步的讲解js中的执行上下文。 1、当遇到变量名和函数名相同的问题。 var a 10; function a(){console.log(1); } a(); //报错 如果你觉得函数a会覆盖变量a那你…

android使碎片切换界面,玩转Android中的碎片Fragment

引言&#xff1a;在Android开发中&#xff0c;我们都知道一些界面的展示经常会用到的就是Activity,但是Activity存在着很大的局限性,比如说手机上的界面显示在平板上面就会发生各种变形的问题,Activity也无法实现局部的数据刷新,所以Android3.0之后出来了Fragment,Fragment通常…

python123阶乘累加_使用多线程计算阶乘累加 1!+2!+3!+...+19!+20!。其中一个线程计算阶乘,另一线程实现累加并输出结果。...

运用多线程的信号灯法进行边加边计算&#xff01;代码如下public class JieChen {public static void main(String args[]){Sum sum new Sum();new Play(sum).start();new Add(sum).start();}}class Play extends Thread{Sum sum;public Play(Sum sum){this.sumsum;}Overridep…