• 首页
  • 资料下载
  • IT书店
  • 论坛交流
  • 最新文章
  • 更多
    • 壁纸大全
    • 天气预报
    • QQ群联盟
    • 网址导航
    • 团队博客
    • 联系我们
设软件水平考试网为首页 | 注册 | 登陆

  • 财会类
    • 财会类
    • 会计从业
    • 中级会计
    • 经济师
    • 注册税务师
    • 银行从业
    • 内审师
    • 资产评估
    • 统计师
    • 审计师
    • 更多>>
  • 建筑类
    • 建筑类
    • 一级建造师
    • 二级建造师
    • 造价工程师
    • 咨询工程师
    • 监理工程师
    • 房地产估价
    • 结构工程师
    • 注册建筑师
    • 土地估价师
    • 更多>>
  • 职业资格
    • 职业资格
    • 证券从业
    • 期货从业
    • 司法考试
    • 教师资格
    • 秘书资格
    • 保险从业
    • 导游资格
    • 人力资源
    • 电子商务
    • 更多>>
  • 公务员
    • 公务员
    • 行测
    • 申论
    • 面试
    • 真题大全
    • 公考心得
    • 公考辅导
    • 招警
    • 更多>>
  • 外贸类
    • 外贸类
    • 报关员
    • 报检员
    • 国际商务师
    • 单证员
    • 货运代理
    • 外销员
    • 更多>>
  • 医药类
    • 医药类
    • 执业护士
    • 中药师
    • 西药师
    • 临床医师
    • 临床助理
    • 中医医师
    • 口腔医师
    • 公共卫生
    • 更多>>
  • 外语类
    • 外语类
    • CET4
    • CET6
    • 职称英语
    • 托福
    • 雅思
    • BEC
    • 金融英语
    • 小语种
    • 更多>>
  • 学历考试
    • 学历考试
    • 高考
    • 成考
    • 考研
    • 自考
    • 中考
    • 考博
    • 在职硕士
    • 更多>>
  • 计算机类
    • 计算机类
    • 计算机二级
    • 计算机等级
    • 软件水平
    • 微软认证
    • 思科认证
    • 更多>>
  • 全部分类
    • 全部分类
    • 所有考试
    • 更多>>

 下载|书店 | 论坛|(QQ群:32090693)
  • 优易学品牌推荐:
  • 软件资料下载
  • 软件图书购买
软考首页
考试书店 | 资讯 | 报考指南 | 初级 | 中级 | 高级 | 备考辅导 | 历年真题 | 模拟题 | IT技术 | 专业英语 | 心得 | 资料中心 | 论坛交流
您现在的位置: 优易学 >> 计算机 >> 软件水平考试 >> 初级资格 >> 程序员 >> 正文
 
站内搜索:
数独求解算法
来源:优易学  2011-1-1 11:07:46   【优易学:中国教育考试门户网】   资料下载   IT书店
  在上海乘坐地铁的朋友都知道,上海地铁站免费赠阅的时代报上,经常会刊登有数独这个益智游戏。如果用纸和笔人工去算的话,恐怕你要花上老半天功夫了,有时候还不一定能解出来,心中一定很郁闷吧?网上也有一些数独游戏的求解计算器,不过我想与其直接拿来主义,还不如自己研究编一个呢!所以,花了大概有一个多月的时间来编写了这样一个数独求解软件。由于不是利用所谓的穷举算法,所以如果数独游戏非唯一解的话,它就只提供最先找到的那个解。不过,请放心,肯定是正确的!下面我就来详述一下这个算法的精要。
  1、定义一个类,代表数独游戏中的每一个数。它有如下属性: #region 属性
  ///
  /// 数值
  ///

  public int Num
  {
  set
  {
  if (UnFilled)
  {
  _num = value;
  _unfilled = false;
  Choices.Clear();
  SetNumEvent(this);
  }
  }
  get { return _num; }
  }
  ///
  /// 行坐标
  ///

  public int Xpos
  {
  set { _x = value; }
  get { return _x; }
  }
  ///
  /// 列坐标
  ///

  public int Ypos
  {
  set { _y = value; }
  get { return _y; }
  }
  ///
  /// 是否已填充的标记
  ///

  public bool UnFilled
  {
  get { return _unfilled; }
  }
  ///
  /// 候选数列表
  ///

  public List Choices
  {
  set { _choices = value; }
  get { return _choices; }
  }
  #endregion
  2、在求解的主类里,根据游戏的规则,设计这样一套算法。当某一个数值被设定以后,与它同行或同列的以及在同一个九宫里的数的候选数列里都要去掉这个数本身。数独游戏中出现的数为已知数,需要我们填补的则是未知数。未知数需要我们去试解,不过在试解之前先要备份初始化以后的数组矩阵,以备在前一次试解失败以后进行恢复再进行下一次试解,直到试解成功为止。
  3、算法本身看上去不是太复杂,但是涉及到一个遍历和回滚的问题。所以,在编程的时候还是要注意一下的。
  下面我就来简单介绍一下这个数独求解软件的操作和使用方法:
  软件总体来说还是操作比较简单的,但是由于当时编写的时候只是想给自己用的,所以并没有设计菜单和帮助文档。用户在输入初始数据的时候可以用上下左右方向键或者ASDF来进行跳格。如果数错了,在按确定按钮以前可以按Back Space或Delete键进行修改;一旦按了确定按钮,就只得按F5清空后重新输入了。
  软件下载地址:http://download.csdn.net/source/512093
  源码下载地址:http://download.csdn.net/source/512102

责任编辑:小草

  • 上一个文章: 发现和调用Dll里的函数
  • 下一个文章: CRC32算法实现原理
文章搜索:
 相关文章
2009年11月软件水平考试试题:程序员(下午)
2009年11月软件水平考试试题:程序员(上午)
如何衡量程序员的工作效率
程序员应避免的十个糟糕行为
程序员:JTabbedPane刷新Jpanel面板的遍历
程序员:javaAES算法
程序员:快速排序算法Python
资讯推荐
热点资讯
考试资讯
初级辅导
  • 全国各省软考办的地址及联系方式
  • 江西2007年11月软件水平考试成绩公布查询开始
  • 山东2007年11月软件水平考试成绩公布查询开始
  • 新疆2007年11月软件水平考试成绩公布查询开始
  • 湖北省2008年软件水平考试报名预计2月下旬开始
  • 软考、职称、职称资格的解读与三者之间的联系
  • 2009年下半年软件水平考试各科目考试时间表
  • 2009年上半年软件水平考试各科目考试时间表
  • 上海市2010年计算机软件水平考试报名通知
  • 浙江省2009年下半年计算机软件水平考试成绩查询
  • 广域网加速,如何选择网络产品
  • 应对年底网络运维危机
  • ip地址和MAC地址在三层交换机上的绑定
  • VLAN间的单向通信established命令
  • 发现和调用Dll里的函数
  • 递推关系算法
  • 稳步实施IPv6七大原则
  • 中小企业应该如何选型IP电话交换系统
  • 教你揪出伪装木马并清除
  • AES算法的数学基础
辅导专区
中级辅导
模拟试题
历年真题
  • [网络工程]AAA的概念和思科IOS对其配置的简要分析
  • [电子商务]选购防火墙当心5大误区
  • [软件设计]通用权限实现的核心设计思想
  • [网络工程]VPN内无法访问某些WEB站点故障
  • [网络工程]路由技术IP路由选择协议
  • [电子商务]PS高手秘技:如何在设计中出类拔萃
  • [电子商务]CIO选信息化合作伙伴的三个关键条件
  • [电子商务]经济危机中最受CIO青睐的五种技术
  • [软件设计]SharePoint工作流开发的一些概念
  • [软件设计]SharePoint工作流开发:HelloWorldSeque
  • 2009年5月份软考网络管理员每日一练试题 (12月31日
  • 2009年5月份软考网络管理员每日一练试题 (12月30日
  • 2009年上半年软考网络管理员每日一练试题 (12月29
  • 2009年上半年软考网络管理员每日一练试题 (12月28
  • 2009年上半年软考网络管理员每日一练试题 (12月27
  • 2009年上半年软考网络管理员每日一练试题 (12月26
  • 2009年上半年软考网络管理员每日一练试题 (12月25
  • 2009年上半年软考网络管理员每日一练试题 (12月23
  • 2009年上半年软考网络管理员每日一练试题 (12月22
  • 2008年12月软考软件设计师每日一练(12月20日)答
  • 2008年下半年软考信息处理技术员考试上午试题答案
  • 2008年下半年软考网络管理员考试上午试题评析(专家
  • 2008年下半年软考网络工程师考试上午试题评析(专家
  • 2007年上半年软考网络工程师考试下午试题
  • 2007年上半年软考网络工程师考试上午试题
  • 2008年下半年软考软件设计师上午试题参考答案(完整
  • 2008年下半年软考软件设计师下午试题参考答案(完整
  • 2008年下半年软考信息处理技术员真题上午试题专家
  • 2008年下半年软考网络工程师上午试题专家解读
  • 2008年下半年软考网络管理员真题下午试题专家版答
热门课程培训
更多
  • 鐠猴拷濞村吋淇洪鍛婄鎼存繄鐟归柤鏉垮暢閻︻垳鍒掗幑鎰靛敼闁绘繐鎷�
  • 鐠猴拷闁告帗绻勬鍥ㄥ濮樻剚鍚€闁煎崬鐬艰ⅷ濞e洦绻嗙换鍐偟閿燂拷
  • 鐠猴拷闁告帗绻勬鍥ㄥ濮樻剚鍚€闁煎崬鐬艰ⅷ闁兼澘鍟抽惁顖滃垝閹规劦鍞归柣婵撴嫹
  • 鐠猴拷濞戞搩鍘炬鍥ㄥ濮樻剚鍚€闁煎崬鐬艰ⅷ閻熸瑥妫濋。鑸垫綇閸涱収鍤�
  • 鐠猴拷婵炲鍔岄崬鑺ュ濮樻剚鍚€閻㈩垰鐗愰埀顒€鍟抽惁顖涙綇閸涱収鍤�
  • 鐠猴拷婵炲鍔岄崬鐣岀矙鎼粹€愁潳閻㈩垰鐗愰宕囩矙鐎n厾绐¢悗纰夋嫹
  • 鐠猴拷閻犙冨妤犲洨鎷犻崟顏勫挤閻㈩垰鐗嗛崯鍧楀礆鏉炴壆鐦庡Λ鐗堘缚瑜帮拷
  • 鐠猴拷濡ゅ倹岣挎鍥ㄥ濮樻剚鍚€閻㈩垰鐗愰埀顒€鍟抽惁顖涚▕閻樻椿鏆柣婵撴嫹
  • 鐠猴拷缂備礁绻戠粊鍦暜閸絺鍋撻崘顓犳Ц閻熸瑥妫濋。鑸垫綇閸涱収鍤�
  • 鐠猴拷閻犲洣绀侀崺婊勭鎼存繄鐟归柤鏉垮暢閻︻垳鎷犻崜褉鏌ら弶鍫濇噹椤曪拷
  • 鐠猴拷闁告劕鎳庨鍝ユ暜閸絺鍋撻崘顓犳Ц閻熸瑥妫濋。鑸垫綇閸涱収鍤�
  • 鐠猴拷闂佺偓鍎奸、鎴炵鎼存繄鐟归柤鏉垮暢閻︻垱娼诲⿰鍛煠閺夊牆鎳庨锟�
论坛新帖

关于我们 ┊ 合作加盟 ┊ 广告联系 ┊ 联系我们 ┊ 网站地图 ┊ 网站声明 ┊ 友情链接 ┊ 优易学QQ群联盟 ┊ 最新更新 ┊ 团队博客
热线:010-52880094  传真:010-52880094
投诉意见,请点这里在线提交或24小时QQ热线:53882478
Copyright © 2005-2012 YouYiXue.com All Rights Reserved 京ICP备09036865号-3