gpt4 book ai didi

java - 如何构造我的程序以返回递归函数的成功输出?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:59:21 42 4
gpt4 key购买 nike

我正在制作数独解算器(没有演练/算法作弊)。本质上,我的假设函数的工作原理如下:

  1. 以网格为参数,使用基本逻辑(依赖于它们是一个值的唯一可能位置)尽可能解决它,而无需猜测/做更复杂的逻辑。
  2. 一旦到达一个没有明显值的点,找到一个最小可能性为 n(通常为 2)的单元格,克隆网格 n 次并替换将可能性放入单元格中,然后为每个新网格再次调用该函数。
  3. 如果网格出现矛盾,则终止该函数调用。
  4. 如果网格已求解,则将类变量 solvedGrid[][] 设置为求解的网格。

在此设置中,我将创建类、调用函数,然后从 solvedGrid[][] 字段中检索答案。我的递归函数本身有一个 void 返回值,或者我可以将其设为 boolean 以确定已找到解决方案。无论哪种方式,我都想不出返回 byte[][] 的方法,因为我将从 1 个函数实例多次调用该函数。提前谢谢你。

(此外,对于创建过此类程序的任何人 - 我提出的算法是否真的有效?)

最佳答案

返回已解决的网格,如果发现矛盾则返回 null。不需要让返回值成为类成员,我什至会说糟糕的设计。是的,你的算法听起来不错。数独网格空间中的深度优先搜索。

关于java - 如何构造我的程序以返回递归函数的成功输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29957869/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com