首页 > 编程知识 正文

python实现解数独的简单介绍

时间:2023-12-24 21:58:48 阅读:322145 作者:OGWQ

本文目录一览:

python能做什么有趣的东西

python能做什么有趣的东西?下面给大家介绍35个Python实例:

1. Python3 实现图片识别

2. Python3 图片隐写术

3. 200 行 Python 代码实现 2048

4. Python实现3D建模工具

5. 使用 Python 定制词云

相关推荐:《Python教程》

6. Python3 智能裁切图片

7.微信变为聊天机器人

8. 使用 Python 解数学方程

9. 使用 Python 创建照片马赛克

10. Python 基于共现提取《釜山行》人物关系

11. Python 气象数据分析:《Python 数据分析实战》

12. NBA常规赛结果预测:利用Python进行比赛数据分析

13. Python 的循环语句和隐含波动率的计算

14. K-近邻算法实现手写数字识别系统

15. 数独游戏的 Python 实现与破解

16. 基于 Flask 与 MySQL 实现番剧推荐系

17. Python 实现英文新闻摘要自动提取

18. Python 解决哲学家就餐问题

19. Ebay 在线拍卖数据分析

20. 神经网络实现人脸识别任务

21. 使用 Python 解数学方程

22. Python3 实现火车票查询工具

23. Python 实现端口扫描器

24. Python3 实现可控制肉鸡的反向Shell

25. Python 实现 FTP 弱口令扫描器

26. 基于PyQt5 实现地图中定位相片拍摄位置

27. Python实现网站模拟登陆

28.Python实现简易局域网视频聊天工具

29. 基于 TCP 的 python 聊天程序

30. Python3基于Scapy实现DDos

31. 高德API + Python 解决租房问题

32. 基于 Flask 与 RethinkDB 实现TODO List

33. Python3 实现简单的 Web 服务器

34. Python 实现 Redis 异步客户端

35. 仿 StackOverflow 开发在线问答系统

数独人造解法的一些技巧及其python实现怎么解决

总共有十几种解题技巧,其中最直接的是显式唯一数法和隐式唯一数法。所谓显式唯一数法,是指某个格只有一个候选数可选,这个格自然就只能填这个候选数了。

而隐式唯一数法的意思则是,某一行、列或宫只有一个位置可以填某个候选数,当然,这个位置肯定就填这个候选数了。

python可以做哪些有趣的事情

1. Python3 实现色情图片识别

2. Python3 图片隐写术

3. 200 行 Python 代码实现 2048

4. Python实现3D建模工具

5. 使用 Python 定制词云

6. Python3 智能裁切图片

7.微信变为聊天机器人

8. 使用 Python 解数学方程

9. 使用 Python 创建照片马赛克

10. Python 基于共现提取《釜山行》人物关系

11. Python 气象数据分析:《Python 数据分析实战》

12. NBA常规赛结果预测:利用Python进行比赛数据分析

13. Python 的循环语句和隐含波动率的计算

14. K-近邻算法实现手写数字识别系统

15. 数独游戏的 Python 实现与破解

16. 基于 Flask 与 MySQL 实现番剧推荐系

17. Python 实现英文新闻摘要自动提取

18. Python 解决哲学家就餐问题

19. Ebay 在线拍卖数据分析

20. 神经网络实现人脸识别任务

21. 使用 Python 解数学方程

22. Python3 实现火车票查询工具

23. Python 实现端口扫描器

24. Python3 实现可控制肉鸡的反向Shell

25. Python 实现 FTP 弱口令扫描器

26. 基于PyQt5 实现地图中定位相片拍摄位置

27. Python实现网站模拟登陆

28.Python实现简易局域网视频聊天工具

29. 基于 TCP 的 python 聊天程序

30. Python3基于Scapy实现DDos

31. 高德API + Python 解决租房问题

32. 基于 Flask 与 RethinkDB 实现TODO List

用Python判断数独是否正确

#coding=utf-8

num_list=[

[5, 3, 4, 6, 7, 8, 9, 1, 2],

[6, 7, 2, 1, 9, 5, 3, 4, 8],

[1, 9, 8, 3, 4, 2, 5, 6, 7],

[8, 5, 9, 7, 6, 1, 4, 2, 3],

[4, 2, 6, 8, 5, 3, 7, 9, 1],

[7, 1, 3, 9, 2, 4, 8, 5, 6],

[9, 6, 1, 5, 3, 7, 2, 8, 4],

[2, 8, 7, 4, 1, 9, 6, 3, 5],

[3, 4, 5, 2, 8, 6, 1, 7, 9]

]

tmp = [1,2,3,4,5,6,7,8,9]

def check_shudu(num_list):

    #

    if len(num_list)9:

        return -1

    #

    for j in num_list:

        if sorted(j)tmp:

            return -1

    #

    for i in range(9):

        if sorted([j[i] for j in num_list])tmp:

            return -1

    #

    for n in range(3):

        for k in range(3):

            jiu = []

            for i in range(n*3,n*3+3):

                for j in range(k*3,k*3+3):

                    jiu.append(num_list[i][j])

            if sorted(jiu)tmp:

                return -1

    return 1

print check_shudu(num_list)

怎么用python解数独的算法题,给个矩阵里面填充了若干数,用程序自动给填充完整

class Solution:

    # @param board, a 9x9 2D array

    # Solve the Sudoku by modifying the input board in-place.

    # Do not return any value.

    def solveSudoku(self, board):

        self.board = board

        self.solve()

    

    def findUnassigned(self):

        for row in range(9):

            for col in range(9):

                if self.board[row][col] == ".":

                    return row, col

        return -1, -1

    

    def solve(self):

        row, col = self.findUnassigned()

        #no unassigned position is found, puzzle solved

        if row == -1 and col == -1:

            return True

        for num in ["1","2","3","4","5","6","7","8","9"]:

            if self.isSafe(row, col, num):

                self.board[row][col] = num

                if self.solve():

                    return True

                self.board[row][col] = "."

        return False

                

    def isSafe(self, row, col, ch):

        boxrow = row - row%3

        boxcol = col - col%3

        if self.checkrow(row,ch) and self.checkcol(col,ch) and self.checksquare(boxrow, boxcol, ch):

            return True

        return False

    

    def checkrow(self, row, ch):

        for col in range(9):

            if self.board[row][col] == ch:

                return False

        return True

    

    def checkcol(self, col, ch):

        for row in range(9):

            if self.board[row][col] == ch:

                return False

        return True

       

    def checksquare(self, row, col, ch):

        for r in range(row, row+3):

            for c in range(col, col+3):

                if self.board[r][c] == ch:

                    return False

        return True

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。