请耐心听我解释,我的数学不好,我刚开始电脑编程,对不起!在
我说我有三个项目的清单。我想找到这个列表中所有可能的项目安排,每个项目由3个项目组成。在
下一步,仍然使用我的原始列表,我想找到列表中所有可能的项目安排,但我只希望这些安排由两个项目组成。在
最后,我想再做一次同样的事情,只是安排只有一个项目。在
所以我期待3个!+3个!/1号!+3个!/2个!或总共15个安排。 如果我的列表是[1,2,3],那么代码应该生成:
1, 2, 3
1, 3, 2
2, 1, 3
2, 3, 2
3, 1, 2
3, 2, 1
1, 2
1, 3
2, 1
2, 3
3, 1
3, 2
1
2
3
我在下面写的代码可以做我上面写的代码,但仅限于长度为3的列表。我可以通过添加额外的'for'循环和'elif'语句来修改代码以处理更长的列表,但我觉得必须有一种方法来推广模式。我该怎么做才能得到上面描述的任意长度列表的排列?在
我认为我的穷举枚举方法可能会使这比它需要的更复杂。。。将尝试考虑其他方法,并在找到解决方案时进行更新。在
^{pr2}$
这将执行您想要的操作:https://stackoverflow.com/a/10784693/1419494
只要^{} 。如果你想要精确的算法,你可以检查它的来源。在
相关问题 更多 >
编程相关推荐