我最近一直致力于回溯数独求解算法,目前我想询问我应该如何将我的solve()方法从void更改为boolean.

我正在使用一个非常简单的回溯算法,它目前工作正常,但我宁愿有一个布尔值而不是一个空格,因为有一个printstack不是很好…

谢谢!

public class Backtracking{

static int backtrack = 0;

//check if valid in row

protected static boolean validInRow(int row,int value)

{

for( int col = 0; col < 9; col++ )

if( board[row][col] == value )

return false ;

return true ;

}

//check if valid in column

protected static boolean validInCol(int col,int value)

{

for( int row = 0; row < 9; row++ )

if( board[row][col] == value )

return false ;

return true ;

}

//check if valid in 3*3

protected static boolean validInBlock(int row,int col,int value)

{

row = (row / 3) * 3 ;

col = (col / 3) * 3 ;

for( int r = 0; r < 3; r++ )

for( int c = 0; c < 3; c++ )

if( board[row+r][col+c] == value )

return false ;

return true ;

}

//call other methods

public void solve(int row,int col) throws Exception

{

if(row > 8)

throw new Exception("Solution found") ;

else

{

while(board[row][col] != 0)

{

if( ++col > 8 )

{

col = 0 ;

row++ ;

if( row > 8 )

throw new Exception( "Solution found" ) ;

}

}

for(int value = 1; value < 10; value++)

{

if(validInRow(row,value) && validInCol(col,value) && validInBlock(row,col,value))

{

board[row][col] = value;

new PrintEvent(board);

if( col < 8 )

solve(row,col + 1);

else

solve(row + 1,0);

backtrack++;

}

}

board[row][col] = 0;

}

}

}

数独输出Java_java – 使用回溯的数独求解器相关推荐

  1. 数独算法-递归与回溯

    1.概述 数独(Sudoku)是一种运用纸.笔进行演算的逻辑游戏.玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含1-9,不重复. 1)终盘 ...

  2. C++数独求解器与生成器

    前几天笔者外出培训,刚刚学习了深度优先搜索,突然想到了数独的求解其实也可以用深搜实现,遂写了数独求解器与生成器. 1 数独求解器 1.1 预备 一开始,当然是头文件~ #include <ios ...

  3. 编程之美之数独求解器的C++实现方法

    编程之美的第一章的第15节,讲的是构造数独,一开始拿到这个问题的确没有思路, 不过看了书中的介绍之后, 发现原来这个的求解思路和N皇后问题是一致的, 但是不知道为啥,反正一开始确实没有想到这个回溯法, ...

  4. 数独生成求解器——软件工程2018年个人作业项目(完成)

    最近更新时间2018.12.29(百忙之中实现了UI界面,另开了一篇) GitHub连接:https://github.com/blingopen/sudoku 部分参考资料链接(有些参考之后忘记贴出 ...

  5. MATLAB 自动数独求解器(导入图片自动求解)

    做了一个导入图片自动求解数独的软件,不过由于目前是通过最小二乘法匹配数字的,所以导入图片中的数字最好不要是手写的..,图片大概就像这样: 使用效果: 完整代码: function sudokuApp ...

  6. 好用的z3数独求解器

    github 上发现一个好用 用z3 编写的数独求解器 传送门: https://github.com/dferri/z3-skyscrapers Generate a skyscrapers puz ...

  7. Python Z3约束求解器解决数独问题

    Z3是由Microsoft Research开发的高性能定理证明器.接下来将使用Python3中的Z3库来实现对数独问题的解决. 关于Python中Z3的使用入门,可以参考这篇博文https://bl ...

  8. c语言数独程序源码,c语言编程:优化回溯解数独程序

    上次在博客上发了一篇<C语言:回溯解数独程序>.实在很粗糙,效率相当差.正如在群里一位朋友说的: 你能不能别像傻瓜式一样从左到右从上到下这样搜索呢?如果你这样,我出第一行是空的数独题,那你 ...

  9. 达摩院自研数学规划求解器发布,最新技术将通过阿里云对外输出

    8月18日消息,阿里巴巴达摩院研发的数学规划求解器参加国际权威榜单测评,在单纯形法测评中排名第一,打破世界纪录.这款拥有自主知识产权的求解器MindOpt现已用于阿里集团多个业务场景,包括云计算资源调 ...

最新文章

  1. 被骗两次?黄仁勋骗过世界的14秒,英伟达押宝未来的元宇宙……
  2. 360度无死角、近距离看「CNN」训练,是种什么体验?网友:美得不真实
  3. AS3中,setTimeOut、setInterval、Timer区别
  4. 我的世界局域网联机找不到服务器,我的世界局域网联机显示无效的会话和搜不到主机...
  5. 详解MySQL基准测试和sysbench工具
  6. 您的MyFitnessPal帐户几乎肯定已被黑客入侵,请立即更改密码
  7. 浅谈面向对象思想下的 C 语言
  8. HHR计划---电商推荐算法
  9. 解决vue addRoutes多次添加路由重复问题。
  10. LeetCode 647 回文子串
  11. paip.分布式应用系统java c#.net php的建设方案
  12. 微信群控,微信云控系统源码之uiautomator框架介绍
  13. 吃着火锅唱着歌学会Docker
  14. 对于百度统计热力点击图的研究
  15. 早期微处理器相关的中文翻译书籍
  16. 平板如何下载鸿蒙系统,鸿蒙系统2.0
  17. 电脑配置怎么看?这3种方法就可以轻松查看
  18. Centos 6.8双网卡配置内外网
  19. 【LGR-(-15) 】SCP 2022 第一轮(初赛 J 组)模拟 题解
  20. C++移动构造函数和移动赋值运算符

热门文章

  1. JavaCore-ClassLoader
  2. 详解EBS接口开发之销售订单挑库发放
  3. colab 跑 deformable-detr 记录:
  4. 项目管理之关键链法VS关键路径法
  5. 【舆情监测平台】舆情危机处置的四大原则。
  6. cef异常处理_cef2623程序在xp下无法启动 出现c06d007f异常的解决方法
  7. Oracle存储过程中游标的简单使用
  8. ros系统操纵机器人_机器人操纵的关键点表示
  9. Cocos Creator 编辑器扩展:Quick Finder
  10. 开发小程序都需要会哪些技术?