数独(SuDoku)介绍

http://blog.csdn.net/lihongzhai/

日期:2005-10-11 04:49:24

数独(日语:数独 すうどく)是一种源自18世纪末的瑞士,后在美国发展、并在日本得以发扬光大的数学智力拼图游戏。拼图是九宫格(即3格宽×3格高)的正方形状,每一格又细分为一个九宫格。在每一个小九宫格中,分别填上1至9的数字,让整个大九宫格每一列、每一行的数字都不重复

数独的玩法逻辑简单,数字排列方式千变万化。不少教育者认为数独是锻炼脑筋的好方法。

一.历史

如今数独的雏型首先于1970年代由美国的一家数学逻辑游戏杂志发表,当时名为Number Place。现今流行的数独于1984年由日本游戏杂志《パズル通信ニコリ》发表并得了现时的名称。数独本是“独立的数字”的简称,因为每一个方格都填上一个个位数。

数独冲出日本成为英国当下的流行游戏,多得曾任香港高等法院法官的高乐德Wayne Gould)。2004年,他在日本旅行的时候,发现杂志的这款游戏,便带回伦敦向《泰晤士报》推介并获得接纳。英国《每日邮报》也于三日后开始连载,使数独在英国正式掀起热潮。其他国家和地区受其影响也开始连载数独。

二.规则

在9×9的格子中,用1到9共9个阿拉伯数字填满整个格子,要求符合:

每一行都用到1,2,3,4,5,6,7,8,9,位置不限;

每一列都用到1,2,3,4,5,6,7,8,9,位置不限;

每3×3的格子都用到1,2,3,4,5,6,7,8,9,位置不限;

三.解法举例

先注意其中一个方格,限定该方格内可以填写的数字。

注意其中一列(或者其中一个小九宫格),寻找填写某数字的方格。

学过“资料结构”的人,可以尝试用Backtrack试试。

数独的通解方法及步骤:

根据以下方法可以确保最终得到数独的解,而且通过手工运算的时间基本可以控制在1.5个小时,不论难易程度,所以此方法可以作为取得数独答案的一般解法。

1、根据横列、竖列和方格的限制条件排除各个点不可能的数字,并从1-9将各个可能的数字用小字体逐个写进每个空白的格子。(该步骤大约需要15-20分钟,这是求解的初始,务必确保没有遗漏)。

2、审视第一步骤的结果,如果发现某个空格只有一个数字,即确定该空格为这个数字。并根据该数字审视其相关的横列、竖列和方格,并划除相同的数字。(该情况出现的可能往往不多,除了较简单的数独题,但这是一个必要的过程,而且在随后的过程中要反复使用此方法。)

3、审视各个横列、竖列和方格中罗列出的可能的数字结果,若发现某一个数字在各个横列、竖列或方格中出现的次数仅一次,则可以确定该空格的解为此数字。并根据第二条的方法排除与此空格相关列或方格中相同的数字。

4、审视各个横列、竖列和方格中罗列的各个可能的结果,找出相对称的两个数组合的空格(或3个、4个组合),并确定这两个空格(或3个、4个)的数字只可能为这两个数字,即两个数字在这两个空格的位置可以交换,但不可能到该行、该列或该方格的其他位置。根据此结果可以排除相关列或方格罗列出相关数字的可能,并缩小范围。(该步骤处理的难度相对复杂,需要在积累一定经验的基础上进行,也是最终求解的关键)

5、反复使用2、3、4提到的步骤,逐步得到一个一个空格的解,并将先前罗列的各种可能的结果一个一个排除,使可能的范围越来越小,直至得到最后结果。

数独(SuDoku)介绍相关推荐

  1. 谈谈数独(Sudoku)

    谈谈 Sudoku (数独) 除特别说明外,本文提到的Sudoku是指9x9的经典Sudoku.本文大量参考了维基百科的相关条目. Sudoku 介绍 Sudoku 是一种数学游戏,把一个9行9列的棋 ...

  2. BIT软件工程个人项目——数独sudoku

    BIT软件工程个人项目--数独sudoku 目录: (点击可页内跳转) 1. 项目地址 2. PSP表格 3. 解题思路描述 --3.1初期思考 --3.2数独终局生成 --3.3求解数独 4. 设计 ...

  3. 数独(sudoku)游戏的程序求解

    9x9的正方形方格可以分成9个3×3的九宫格. 数独游戏是在这样的正方形中,首先事先给某些方格填入1-9的数字,然后要求在余下的方格中也填入1-9的数字,要求每一行,每一列,以及每个九宫格中,都正好包 ...

  4. 【软件工程基础】个人数独项目介绍及制作流程

    一.项目介绍 首先附上项目的GitHub地址:https://github.com/Nevermore5421/PersonalProjectSudoku 拿到题目后,发现该项目的需求与数独有关,要求 ...

  5. 数独Sudoku(DFS)

    题目: 数独是一种填数字游戏,英文名叫 Sudoku. 玩家需要根据 9×9盘面上的已知数字,推理出所有剩余位置的数字,并满足每一行.每一列.每一个粗线九宫格内的数字包含有 1-9 的数字,且不重复. ...

  6. 【2019.09.19】数独(Sudoku)游戏之我见(软工实践第三次作业)

    Github项目地址:https://github.com/MokouTyan/suduku_131700101 [2019.09.20]更新:代码经过Code Quality Analysis工具的 ...

  7. “笨兔数独” 解数独软件 介绍及使用指南

    最近使用C语言+win32对话框写了一个解数独题目的小软件.在这里可以下载:笨兔数独V1. 现在对软件的功能及如何使用做一个简要的介绍. 程序界面 1>.程序各个按钮说明 start按钮 你可以 ...

  8. LeetCode 37. 解数独 Sudoku Solver

    编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 3x3 ...

  9. 【趣味数学】数独 Sudoku

    在线数独计算器:https://shudu.gwalker.cn/ 数独(shù dú)是源自18世纪瑞士的一种数学游戏.是一种运用纸.笔进行演算的逻辑游戏.玩家需要根据9×9盘面上的已知数字,推理出 ...

  10. java数独游戏_java 数独sudoku游戏

    有大佬帮帮看下这个数独游戏程序么,检测为空.有效都成功了,就是不能把赋值更新到数组里面,一直重复打印原数组 package pro1; import java.util.Scanner; public ...

最新文章

  1. CLOSE_WAIT 和TCP_KEEPALIVE
  2. 走读OpenSSL代码----从一张奇怪的证书说起(五)
  3. 导入之后再执行一个方法_种花生再撒点儿石灰,掌握这两个方法之后,提高产量基本没问题!...
  4. factorybean 代理类不能按照类型注入_Spring注解驱动开发之四——@Import快速导入组件、FactoryBean 定义工厂注册组件...
  5. android 仿qq 功能,Android 仿QQ界面的实现
  6. Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。...
  7. Silverlight 2.5D RPG游戏技巧与特效处理:(五“.NET研究”)圣赞之HLSL渲染动画
  8. 北京公司买车,都需要什么手续?摇号有什么特殊要求?
  9. 解决 uniapp 打包次数限制
  10. C语言(爱心表白代码)
  11. 码农故事1——受惠寄居遇驴友 维艰窘境见人心
  12. 机器学习的L1、L2损失函数
  13. 计算机应用中兴5G通讯是什么,中兴通讯自曝5G成绩单:承建全国三成以上5G网络...
  14. python从入门到实践19章答案
  15. 微信企业向个人账户提现
  16. 开源二维码QR CODE编码/解码(识别)库
  17. CTP穿透式监管怎么实现代码, 穿透测试API
  18. easymock平台语法初体验
  19. 趣味Python | 223 段代码助你从入门到大师
  20. 5款轻量级小软件,第一款更是近期必备!

热门文章

  1. 《Effective Morden C++》Item 7: Distinguish between () and {} when creating objects
  2. InnoDB存储引擎中有页(Page)的概念
  3. MATLAB保存数据为txt或dat格式
  4. 搭建K8S集群之node节点部署
  5. Arduino 入门学习笔记7 I2C LCD1602液晶显示实验 及 超声波传感器距离检测
  6. VVIC api接口 Alex19970108016
  7. respond.min.js/respond.js下载
  8. git 忽视修改过的文件
  9. 7天入门数据库 day23 - 数据表的CURD
  10. 经典的足球明星广告--[困兽斗]