recursion相关内容

Python 是否可以在不使用递归的情况下生成排除一组数字的随机数?

我查看了 Python Docs(我可能误解了),但我没有看到有在不调用递归函数的情况下执行此操作的方法(如下所示). 我想做的是生成一个随机值,其中不包括中间值. 换句话说, 假设我希望 X 是一个不在其中的随机数 范围(a - b, a + b) 我可以在第一次通过时这样做吗, 或 1.我是否必须不断生成一个数字, 2. 检查是否在range(), 3.洗涮涮涮? ..
发布时间:2022-01-24 19:48:15 Python

遍历/迭代任意深度的嵌套字典(字典表示目录树)

我几乎可以肯定有一个简单的解决方案,但我现在花了几个小时阅读和重新阅读同一组相关结果,这些结果并不能完全回答我的问题. 这个问题的背景(包括在内,但可以跳过这个) 这是因为我希望用户能够从目录(以及任何子目录)中选择一组文件,不幸的是,Tkinter 在文件对话框中选择多个文件的默认功能在 Windows 7 上被破坏(http://bugs.python.org/issue8010) ..
发布时间:2022-01-24 12:16:46 Python

是否可以加快 PHP 中的递归文件扫描?

我一直在尝试在 PHP 中复制 Gnu Find ("find ."),但似乎不可能接近它的速度.PHP 实现使用至少两倍于 Find 的时间.有没有更快的方法用 PHP 做到这一点? 编辑:我添加了一个使用 SPL 实现的代码示例——它的性能等于迭代方法 EDIT2:当从 PHP 调用 find 时,它实际上比原生 PHP 实现慢.我想我应该对我所拥有的感到满意:) //当直接从 ..
发布时间:2022-01-24 12:16:13 PHP

python中函数的形参和实参

我对如何识别递归函数中的形式参数和实际参数有点困惑.例如在这个获取数字阶乘的代码块中: def 阶乘(n):如果 n == 1:返回 1别的:返回 n * 阶乘(n-1) “阶乘(n-1)"是形式参数,因为它在函数本身内部吗?或者它是实际参数,因为它为函数分配了一个值.另外,“阶乘(n)"也是形式参数吗? 解决方案 函数定义中有形参,即形参.函数调用中的实参,即实参. 所以n在这 ..
发布时间:2022-01-24 12:12:52 Python

关于内存使用的递归与迭代

假设我对某些问题有递归和迭代解决方案(使用堆栈),例如二叉树的前序遍历.对于当前的计算机,内存方面,对于非常大树,使用递归解决方案是否比迭代版本更有优势,反之亦然? 我知道,对于某些子问题重复的递归解决方案,如果使用递归,则会产生额外的时间和内存成本.假设这里不是这种情况.例如, preOrder(节点 n){如果(n == null)返回;打印(n);preOrder(n.left);预 ..
发布时间:2022-01-24 12:11:57 其他开发

不知道如何解决 SICP 练习 1.11

练习 1.11: 函数 f 由 f(n) = n if n 的规则定义.3 和 f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3) 如果 n >3.编写一个通过递归过程计算 f 的过程.编写一个通过迭代过程计算 f 的过程. 递归实现它很简单.但我不知道如何迭代地做到这一点.我尝试与给出的斐波那契示例进行比较,但我不知道如何将其用作类比.所以我放弃了(对我感 ..
发布时间:2022-01-24 12:07:42 其他开发

递归到迭代帕斯卡三角形

我想知道如何将递归函数/类转换为迭代函数/类.我已经制作了一个递归帕斯卡三角形,现在需要将其与迭代进行比较. public class RecursivePascal extends ErrorPascal implements Pascal {私人诠释 n;RecursivePascal(int n) 抛出异常 {超级(n);这.n = n;}公共无效打印帕斯卡(){打印帕斯卡(n,假);}公 ..
发布时间:2022-01-24 12:03:57 Java开发

将迭代转化为递归

我想检查用户输入的string是否有均衡数量的(和)的 例如.()( 不平衡(()) 平衡 def 检查(字符串):计数器=0string=string.replace("","")如果字符串 [0] 是“(":对于字符串中的 x:如果 x 是“(":计数器=计数器+1elif x 是“)":计数器=计数器-1如果 counter1 为 0:打印(“平衡")别的:打印(“不平衡")别的:打 ..
发布时间:2022-01-24 12:02:59 Python

是否可以将列表转换为嵌套的键字典*无需*递归?

假设我有一个如下列表: mylist = ['a','b','c','d'] 是否可以从这个列表中不使用使用递归/递归函数创建以下字典? {'一个': {'b':{'C': {“d":{}}}}} 解决方案 对于简单的情况,简单的迭代和构建,从头到尾都可以: 结果 = {}对于反向名称(mylist):结果 = {名称:结果} 或 结果 = 当前 = {}对于 mylist 中的名 ..
发布时间:2022-01-24 11:56:20 Python

递归和迭代有什么区别?

我正在寻找java中递归和迭代之间的区别.请包含两者的 Java 代码示例. 2.如果我在android中收到消息,我怎样才能打开我打开的应用程序? 如何关闭设备中运行的第三方服务? 解决方案 当方法或函数在其原始参数的子集上调用自身时,就会发生递归.例如,MergeSort - 它将数组分成两半并在这两半上调用自身. 递归看起来像这样,但它是一个非常人为的示例,其工作方 ..
发布时间:2022-01-24 11:55:21 其他开发

如何在不使用递归的情况下找到字符串的所有排列?

谁能帮我解决这个问题:这是一个查找任意长度字符串的所有排列的程序.需要相同的非递归形式.(首选C语言实现) 使用命名空间标准;string swtch(string topermute, int x, int y){字符串 newstring = topermute;新字符串 [x] = 新字符串 [y];新字符串[y] = topermute[x];//避免临时变量返回新字符串;}void p ..
发布时间:2022-01-24 11:53:32 C/C++开发

迭代比递归快,还是不太容易发生堆栈溢出?

我知道您可以使用一个简单的循环来重写递归函数,方法是将数组用作“剩余工作"的先进先出队列.我听说这降低了堆栈溢出的可能性. 但是,如果堆栈溢出不是问题(因为您没有非常深入地递归),是否有任何理由更喜欢迭代而不是递归?是不是更快了? 我对 V8 上的 JavaScript 最感兴趣. 解决方案 在 Javascript 中,不做尾递归优化(不是必需的,也许不能?看评论),递归是两 ..
发布时间:2022-01-24 11:46:31 前端开发

查找加起来为给定字符串的所有子字符串组合

我正在尝试创建一个数据结构,它包含所有可能的子字符串组合,这些组合加起来是原始字符串.例如,如果字符串是 "java",则有效结果将是 "j", "ava", "ja", "v", "a",无效结果将是 "ja", "a" 或 "a", "jav" 我很容易找到所有可能的子字符串 String string = "java";列表substrings = new ArrayLi ..
发布时间:2022-01-24 11:45:10 Java开发