51得票8回答
不计算其他排列,如何找到第n个排列

给定一个由N个元素组成的排列原子的数组,是否存在像这样的算法:function getNthPermutation( $atoms, $permutation_index, $size ) 其中$atoms是元素数组,$permutation_index是排列的索引,$size是排列的大小。例...

51得票2回答
这个Haskell实现的列表排列是做什么的?

我正在研究Data.List模块中的代码,但对于排列的实现方式有些困惑: permutations :: [a] -> [[a]] permutations xs0 = xs0 : perms xs0 [] where perms []...

49得票20回答
有没有更好的方法来进行字符串排列?

void permute(string elems, int mid, int end) { static int count; if (mid == end) { cout << ++count << " : " << el...

43得票13回答
不使用递归的排列算法?Java

我希望能够获取一个数字的所有组合,且没有重复。 像0.1.2、0.2.1、1.2.0、1.0.2、2.0.1、2.1.0这样。 我试图找到一个简单的方法,但是失败了。我画了一张图/树来解决它,这正呼唤着使用递归。 但如果可能的话,我想不用递归来做这个。 请问有人可以帮我吗?

42得票6回答
如何在PHP中生成字符串的所有排列?

我需要一个算法,可以返回一个字符串中所有字符的所有可能组合。 我已经尝试过:$langd = strlen($input); for($i = 0;$i < $langd; $i++){ $tempStrang = NULL; $tempStrang .= sub...

40得票11回答
递归打印字符串的所有排列(Javascript)

我看过其他语言的类似问题,但没有关于JavaScript的。 是否可能在一个函数中以递归方式执行此操作? 我理解我需要取字符串中的第一个元素,然后将其附加到对余下字符串进行递归的每个解决方案。 所以从逻辑上讲,我理解递归应该如何进行。 我只是不知道如何将第一个字符附加到每个递归解决方案上。...

40得票14回答
高效计算组合和排列

我有一些代码用于计算排列和组合,现在我尝试让它可以处理更大的数字。 我已经找到了一个更好的排列算法,可以避免大量中间结果,但对于组合我仍然认为还有改进空间。 目前,我已经使用特殊情况来反映nCr的对称性,但我仍然希望找到一个更好的算法来避免调用factorial(r),因为这会产生一个不必...

40得票12回答
排列组合 - 所有可能的数字集合

我有0到8的数字。 我希望得到所有可能的数字集合,每个集合应使用所有数字,每个数字在一个集合中只能出现一次。 我想看到用PHP编写的解决方案,可以打印出结果。或者,至少我想要一些组合数学理论的复习,因为我已经很久没有接触了。如何计算全排列的公式是什么? 示例集: 0-1-2-3-4-5...

40得票16回答
如何在O(n)时间内判断一个数组是否为排列?

输入: 一个包含整数值1到N(某些整数值可以出现多次!)的只读长度为N的数组和一个固定大小(10,100,1000等 - 不取决于 N)的内存区域。 如何在O(n)的时间复杂度下确定该数组是否表示排列? --到目前为止我所获得的(一个答案证明这是不好的): 我使用有限的内存区域来存...

38得票5回答
生成JavaScript数组的排列

我有一个包含n个不同元素的 JavaScript 数组,我知道这些元素可以有 n! 种可能的排序方式。我想知道生成这个数组所有可能排列的最有效(最快)的算法是什么? 我有以下代码:var swap = function(array, frstElm, scndElm) { var ...