我想我正在尝试做一些非常基本且非常简单的事情。出于这个原因,我确信 Stack Overflow 上已经有一篇关于此任务的帖子,但我想不会吧?也许这是一个无关紧要的概念?如果相关帖子已经存在,我们深表歉意。我找不到它。
这是我想要完成的任务:给定列表长度n和最大元素值m,生成列表的所有排列,其中每个元素在 0 和m之间变化。
问题: 1. 有没有办法递归地执行此操作?2. 对于这个概念来说,递归是最优的(就计算资源、O 时间等而言)还是迭代更好?3.是否有更好的方法(不太复杂)来使用迭代来实现此目的(请参阅下面的代码)?
更多信息见下文
我编辑了我的代码和两个示例以生成并展示完整的解决方案
下面是两个例子:
示例 1:n = 3,m = 2 输出:
[0, 0, 0]
[0, 0, 1]
[0, 0, 2]
[0, 1, 0]
[0, 1, 1]
[0, 1, 2]
[0, 2, 0]
[0, 2, 1]
[0, 2, 2]
[1, 0, 0]
[1, 0, 1]
[1, 0, 2]
[1, 1, 0]
[1, 1, 1]
[1, 1, 2]
[1, 2, 0]
[1, 2, 1]
[1, 2, 2]
[2, 0, 0]
[2, 0, 1]
[2, 0, 2]
[2, 1, 0]
[2, 1, 1]
[2, 1, 2]
[2, 2, 0]
[2, 2, 1]
[2, 2, 2]
示例 1:n = 2,m = 4 输出:
[0, 0]
[0, 1]
[0, 2]
[0, 3]
[0, 4]
[1, 0]
[1, 1]
[1, 2]
[1, 3]
[1, 4]
[2, 0]
[2, 1]
[2, 2]
[2, 3]
[2, 4]
[3, 0]
[3, 1]
[3, 2]
[3, 3]
[3, 4]
[4, 0]
[4, 1]
[4, 2]
[4, 3]
[4, 4]
我的直觉告诉我这可以递归地完成,但我想不出如何做到这一点(我是一名初学者程序员)。
对垃圾代码表示歉意。一旦我想出了一种成功的方法,我就没有花太多精力去清理它或提高它的效率。我的猜测是这段代码对于我试图解决的概念来说太复杂了。
12345678_0001
HUH函数
开满天机
相关分类