草庐IT

递归方程

全部标签

java - @Retention 注解的递归使用,怎么可能?

在java中的@Retention注解的源代码中,@Retention是在其定义本身中使用的,这怎么可能。连RetentionPolicy都设置在RUNTIME,那么它怎么可能在它还没有准备好运行之前就被执行呢。packagejava.lang.annotation;@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public@interfaceRetention{/***Returnstheretentionpolicy.*@returntheretentionpoli

java - Horner 的小数部分递归算法 - Java

我正在尝试创建一种递归方法,该方法使用Horner算法将以n为底的小数转换为以10为底的小数。我在这里和所有地方都进行了搜索,但找不到任何地方详细处理小数部分。提醒一下,我在递归方面很弱,因为我还没有在我的编程课上正式学习它,但已经被另一个类(class)分配了。我能够创建一个方法来处理数字的整数部分,而不是小数部分。我觉得我写的方法相当接近,因为它让我的测试数字的答案加倍(可能是因为我正在测试基数2)。传递的第一个参数是一个填充有系数的int数组。我不太关心系数的顺序,因为我正在使所有系数相同以对其进行测试。第二个参数是基础。第三个参数初始化为系数数减1,我也将其用于整数部分方法。我

java - Java 中的这段递归 lambda 调用是如何工作的

我最近在Java中看到了这段代码。它涉及函数和打印斐波那契数,并且有效。publicclassAppLambdaSubstitution{publicstaticFunctionY(Function,Function>f){returnx->f.apply(Y(f)).apply(x);}publicstaticvoidmain(String[]args){Functionfib=Y(func->x->{if(x让我感到困惑的部分是returnx->f.apply(Y(f)).apply(x);。Y(f)不是递归调用Y方法吗?我们一直使用函数f作为参数调用它。对我来说,这个递归调用没有

java - Hibernate递归查询

我想要的查询是获取属于某个类别的类(class)对象列表。我的对象如下:publicclassCourse{Stringname;Listcategories;}publicclassCategory{Stringname;Categoryparent;}由于类别相互引用,它们可以有无限的深度:AA.AA.A.AA.A.BA.BA.B.ABB.AB.BC如何查询类别“A.A”中的类(class),并返回与A.A、A.A.A和A.A.B关联的所有类(class)? 最佳答案 如果您愿意使用nativeSQL并且您的数据库支持递归公用表

java - 数独生成器的递归求解

我正在尝试编写一种算法,以使用Java或Javascript创建合法的数独板。两者都不起作用,我不完全确定为什么。本质上,这两个程序中的问题是x或y的增量超过了应有的增量(跳过正方形)。我一辈子都弄不明白这是怎么回事。如果需要,我可以提供完成JS解决方案的HTML。我最好的猜测是它与我如何使用递归创建堆栈有关,但据我所知,它应该有效。在我的旧代码中有一个不正确的for循环,我知道这一点。我粘贴了一个旧版本,现在已修复。java:importjava.util.*;publicclassSudokuGenerator{//credit:cachao//http://stackoverfl

java - 递归地将线程添加到 Java 线程池

我正在为我的Java并发类(class)编写教程。目标是使用线程池并行计算素数。该设计基于埃拉托色尼筛法。它有一个包含n个boolean值的数组,其中n是您要检查的最大整数,数组中的每个元素代表一个整数。真为素数,假为非素数,数组初始全为真。线程池使用固定数量的线程(我们应该试验池中的线程数并观察性能)。一个线程被赋予一个整数倍来处理。然后线程找到数组中第一个不是线程整数倍数的真元素。然后该线程在线程池中创建一个新线程,该线程被赋予找到的编号。新线程形成后,现有线程继续将数组中所有它的整数倍数设置为false。主程序线程以整数“2”启动第一个线程,然后等待所有派生的线程完成。然后它会吐

java - 递归算法的调试

我的问题是是否有一些聪明的方法可以调试复杂的递归算法。假设我们有一个复杂的(不是在每次“嵌套迭代”中减少递归计数器的简单情况)。我的意思是在可能出现循环时递归遍历图。我需要检查我是否没有在某处陷入无限循环。仅使用调试器执行此操作并不能给出确定的答案(因为我不确定算法是否处于无限循环中或只是按应有的方式处理)。没有具体的例子很难解释。但是我需要的是...'检查无限循环是否不会发生在让我们说复杂的递归算法中'。 最佳答案 您需要形成一个理论来解释为什么您认为算法会终止。理想情况下,将理论证明为数学定理。您可以寻找在每次递归调用时都减少的

java - 递归 Karatsuba 乘法不起作用?

我正在尝试实现Karatsubamultiplication通过递归调用。下面的代码应该可以工作,但我总是得到错误的答案。有什么想法吗?publicstaticlongkaratsuba(longx,longy){//basecase:if(x下面是一些测试用例:1)karatsuba(1234,5678)>>>6952652*应该是70066522)karatsuba(4589,7831)>>>34649459*应该是359364593)karatsuba(911,482)>>>44722*应该是472842 最佳答案 您的方法有

Java:主类中的递归调用子类方法而不是它自己的方法

例子:classMainClass{publicdoIt(){...elsedoIt();}}classSubClassextendsMainClass{@OverridepublicdoIt(){super.doIt();...}}现在的问题是:我调用SubClass.doIt()MainClass.doIt()被调用MainClass.doIt()进行递归调用doIt()但是:调用SubClass.doIt()而不是MainClass.doIt()这是非常奇怪的行为,问题是程序化的!我试图用this.doIt()调用递归,但这没有帮助。有人有想法吗?非常感谢您的回答,这个问题已经解

java - 如何将递归转换为迭代?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion这个问题被问过几次,但我仍然发现很难将易于阅读和直观的代码转换为迭代代码。例如,我正在练习一个编码问题,我得到26个整数,表示每个字符在字符串中出现的次数。我应该打印所有可能的字符串。以下是我的递归代码privatestaticvoidcombinatorial(Stringprefix,ArrayListremainingToFill,inttotalLength){if(prefix.length()