草庐IT

RECURSION

全部标签

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 - map 和泛型的 map

我想创建map的(递归)map。即Map的type的值是另一个与外层map同类型的Map。例如:Map>>>foo;显然,为了做到这一点,我需要一些方法来引用“正在定义的类型”或其他东西。我想我可以这样做:Map>...然后只是@SupressWarnings("unchecked")我自己通过了不可避免的警告,但是有更好的方法吗? 最佳答案 创建一个辅助类或接口(interface)来引用“正在定义的类型”。像这样:classMyMapextendsHashMap{...}或interfaceMyMapextendsMap{}(我

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()

java - 遍历n维空间

我正在尝试编写一种算法,让我可以遍历n维空间内的所有所需点,以找到函数f(x)的最小值,其中x是大小为n的vector。显然,搜索2维或3维空间非常简单,您可以简单地执行以下操作:for(inti=0;i不幸的是,对于我的问题,空间的维数不是固定的(我正在为统计程序中的许多函数编写一个通用的最小值查找器)所以我必须为我想要的每个n值编写循环使用-最终可能会相当大。我一直在努力思考如何使用递归来做到这一点,但看不到解决方案-尽管我确信那里有解决方案。解决方案不一定是递归的,但它必须通用且高效(嵌套循环中最内层的行将被调用很多...)。我表示搜索量的方式是一个二维double组:doubl

Java 选择递归函数

我这里有两个不同的递归函数,用于在Java中反转字符串:Longms1=System.currentTimeMillis();Stringstr1=reverse1(str);ms1=System.currentTimeMillis()-ms1;Longms2=System.currentTimeMillis();Stringstr2=reverse2(str);ms2=System.currentTimeMillis()-ms2;System.out.println("Input:"+str);System.out.println("Length:"+str.length());Sy

java - 我如何找到 Java 中递归方法的时间复杂度?

我还没有完全掌握复杂性的概念,我想知道如何在这段代码中为方法f(n)计算它:importjava.util.Random;publicclassMain{publicstaticvoidmain(String[]args){Randomr=newRandom();r.setSeed(System.currentTimeMillis());intn=r.nextInt(20)+1;f(n);}privatestaticvoidf(intn){if(n>0){g(n);System.out.println();f(n-1);}}privatestaticvoidg(intn){if(n>0

java - 定义轮廓是否闭合

我需要一种方法来定义轮廓是代表直线还是闭合形状。在Java中,我有一个对象Shape,它包含再次将其定义为单独对象的所有点。对象Point表示点的坐标。我尝试用递归解析形状,但对于更大的形状,超过150个点,性能非常差。我附上了一张我想要解析的形状的图片,以帮助更好地理解这个问题。我正在放一张图片以便更好地可视化问题。这只是展示了我得到的所有形状。我只想显示两个关闭的。提前致谢。瓦西尔·科塞夫 最佳答案 第一个想法:使用合适的contourtracingalgorithm得到一个有序的轮廓。如果你的轮廓是闭合的,你最终会回到第一点。