对于这个挑战,您将要制作一个函数(您的函数可能是一个完整的程序),该函数将列表作为输入并返回该列表的排列。您的功能必须遵守以下要求。
它必须是确定性的。
将函数本身与变量进行组合的次数应该可以使列表包含其所有排列。
这是一个代码问题,因此答案将以字节计分,字节越少越好。
进一步规定
你可以采取任何类型的列表,( ,,
[Integer]
只要),因为它[String]
[[Integer]]
- 可以为非空
- 可以包含具有至少16个可能值的不同对象。(您不能使用Haskell
[()]
并声称您的函数是id
) - 可以包含重复的对象(无集合)
您可以编写程序或函数,但必须遵守标准IO。
@LeakyNun,它不要求生成对称组的单个排列:它要求一个
—
彼得·泰勒
next_permutation
函数。
仅置换0和1的列表就足够了吗?
—
xnor
我不确定我是否了解此限制的要点。如果允许布尔值列表,那么不允许在任何两个不同的项目上使用可迭代项有什么意义?
—
丹尼斯,
@丹尼斯你说的很好。我将不允许使用布尔值列表。或具有小于16个可能值的类型。
—
Ad Hoc Garf Hunter'7
S_n
仅仅是对循环n<3