免费网站下载大全,汕头cms建站,网站wap版怎么做,苏州公司网站建设假设我有一个函数#xff0c;它接受一个输入($x iui$)#xff0c;然后经过一个循环并生成一系列输出($x{I#xff0c;j}$)。然后#xff0c;每个输出可以再次作为同一函数的输入#xff0c;从而产生更多的输出($x{i#xff0c;j#xff0c;k}$)。我试图通过这个函数找到…假设我有一个函数它接受一个输入($x iui$)然后经过一个循环并生成一系列输出($x{Ij}$)。然后每个输出可以再次作为同一函数的输入从而产生更多的输出($x{ijk}$)。我试图通过这个函数找到一组步骤来达到一个特定的结束状态。在这是一个普遍的问题我的问题是python中什么样的代码结构可以处理这个问题。在以下是一些元代码作为示例(尽管在实践中可能更复杂)def f(x):for i in range(n):if some_condition:yield g(x,i)yield false然后对于一些$x\u 0$和一些$y$我们要寻找一个序列$x\u 0x_1\ldotsx_k$这样$x_ky$而$x{j1}g(x_ji_j)$对于{0\ldotsk-1}$。在要使用深度优先搜索来实现这一点首先要计算$f(f(\ldots f(x)\ldots))$直到它生成目标结果或为false。然后后退一步从$f$得到第二个结果然后重复(这是一个粗略的描述但是你得到的想法是基本上是深度优先搜索)。在在我看来yield关键字处理这个问题的效率很低。您还必须处理$(xf(x)f(f(x))\ldots)$的堆栈(我认为这是正确的术语)以便您在遇到死胡同时能够后退。在这个一般性的问题是我经常遇到的我在某种程度上解决了它即席但我想知道是否有一个很好的通用结构来解决这个问题它自然而有效地处理堆栈并探索python中可能的解决方案树。在我希望这个问题足够清楚。我欢迎任何想法、评论、澄清或回答。在