permutation相关内容

PHP查找阵列的所有(有点)唯一组合

我一直在寻找的PHP整天阵列排列/组合的问题......,但还是无法弄明白:/ 如果我有这样一个数组: 20 //键为0 20 //键为1 22 //键为2 24 //键为3 我需要这样的组合: 20,20,22 //键为0 1 2 20,20,24 //键在0 1 3 20,22,24 //键在0 2 3 20,22,24 //键为1 2 3 在code我目前有给我: ..
发布时间:2015-11-30 13:44:31 PHP

查找长度为k的所有子集在一个数组

给定一组 {1,2,3,4,5 ... N} n个元素,我们需要找到一个长度为k的所有子集。 例如,如果n = 4和k = 2,输出是 {1,2},{1,3}, {1,4},{2,3},{2,4},{3,4} 我甚至无法弄清楚如何下手。我们没有使用内置的库函数像next_permutation等 需要的算法和实现用C / C ++或Java。 解决方案 递归是你的朋友对这个任务。 有关 ..
发布时间:2015-11-30 13:43:47 C/C++

找到一个给定的组号码的所有组合

说我有一组数字“0”,“1”,“2”,...,“9”。我想找到包含在我的设置完全相同的每一个号码中的一个所有数字。 现在的问题是:在我开始我的计划,我不知道我会集了多少数量和哪些号码包括。 (例如,所述集可包括数字'1','3'和'14')。 我在网上搜索,并偶然发现了术语“动态规划”,这显然是值得用来解决像我一样的问题,但我不明白的例子。 有人可以给我如何解决这个问题(可能与动态规划)?一 ..
发布时间:2015-11-30 13:43:28 Java开发

找到一个给定的排列的索引在给定的字符串的排列的排序列表

我们正在给一个字符串,字符串的置换。 例如,输入字符串桑迪普和置换 psdenae 。 查找在给定的排列中的原始字符串的排列的排序列表中的位置。 解决方案 长度为n的定字符串的置换总数将 N!(如果所有的字符是不同的),因此,它不可能探索所有组合 这个问题其实就像数学P&放大器; ç问题 查找单词“栈”的等级时,排列的字典顺序。的 由于输入的字符串作为NILSU 以一个词,我们必须找 ..
发布时间:2015-11-30 13:42:50 C/C++

为什么Python的和itertools.permutations包含重复? (当原来的列表中有重复)

人们普遍认为,n的列表的不同的的符号有n!排列。然而,当符号不显着,最常见的惯例,在数学和其他地方,似乎是只计算不同的排列组合。名单因此,排列 [1,1,2] 通常被认为是 [1,1,2],[1,2,1],[2,1,1] 。事实上,下面的C ++ code打印precisely这三种: INT一个[] = {1,1,2}; 做 { 的cout&其中;&其中;一个[0]&其中;&所述;“”&其中; ..
发布时间:2015-11-30 13:42:43 Python

计数有效地组合和排列

我有一些code来算排列组合,我试图使它更好地为大量涌现。 我已经找到了更好的算法排列,避免大的中间结果,但我仍然认为我可以做的更好的组合。 到目前为止,我已经把在特殊情况下,以反映无碳复写纸的对称性,但我还是想找到一个更好的算法,避免了调用阶乘(R),这是一个不必要的大中间结果。如果没有这种优化,最后文档测试时间过长尝试计算阶乘(99000)。 任何人都可以提出一个更有效的方法来计算组合? ..
发布时间:2015-11-30 13:41:39 Python

查词的排名(排列)有重复的字母

我张贴这种虽然很多已经张贴了关于这个问题的。我没有要发布的答案,因为它不工作。这个问题的答案职位(所以,我想这(这是code编译我抄袭,我的努力来处理重复)。非重复的情况下正常工作。簿记员产生83863,不是所需10743 (阶乘函数和信计数器阵列'重复'工作正常,我没有张贴,以节省空间。) 而(指针!=长度) { 如果(sortedWordChars [指针]!= wordArray ..
发布时间:2015-11-30 13:37:40 C/C++

算法查找的数值置换给予词典指数

我要寻找给定一组数字的算法(例如1 2 3)和索引(例如2)将让我按照字典顺序这些数字的第二置换。例如,在这种情况下,算法将返回1 3 2 解决方案 下面是一个简单的解决办法: 从数学进口阶乘#蟒蛇数学库 我= 5#我是词典指数(计数从0开始) n = 3的#n是置换的长度 p值=范围(1,n + 1个)#p是从1到n的列表 对于k在范围(1,N + 1):#k中从1到n F = ..
发布时间:2015-11-30 13:37:35 C/C++

我怎样才能生成在Perl数组的所有排列?

什么是最好的(高雅,简洁,高效)的方式来产生所有 N!在Perl中的数组?的排列 例如,如果我有一个数组 @arr =(0,1,2),我要输出所有排列: 0 2 1 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 这也许应该是一个函数,该函数返回一个迭代器(懒惰/延迟评价,因为 N 可以变得如此不可能大),所以它可以被称为是这样的: 我@arr =(0,1,2); 我的 ..
发布时间:2015-11-30 13:36:57 C/C++

在研发向量的置换都是唯一的枚举

我试图找到,将重排所有的唯一的向量的排列,而相同的元素类型的子集范围内不包括并列的功能。例如: DAT< - C(1,0,3,4,1,0,0,3,0,4) 有 因子(10) > 3628800 可能的排列,但只有 10!/(2!* 2!* 4!* 2!) 因子(10)/(阶乘(2)*阶乘(2)*阶乘(2)*阶乘(4)) > 18900 相同的 ..
发布时间:2015-11-30 13:36:37 C/C++

随机播放列表,确保没有项目保持在相同的位置

我想洗牌的唯一项目列表,但不是做一个完全随机的洗牌。我需要确保在混洗表中没有元件是在相同的位置在原始列表。因此,如果原来的列表(A,B,C,D,E),这个结果将是确定:(C,D,B,E,A),但是这个不会:(C,E,A, D,B),因为“D”仍是第四个项目。列表将具有至多7项。至尊效率不是一个考虑因素。我觉得这个修改费舍尔/耶茨的伎俩,但我不能证明这一点数学: 函数洗牌(数据){ 对于( ..
发布时间:2015-11-30 13:33:02 C/C++

计算在F#的排列

本编辑:我为我的最好的答案在下面,但我怀疑托马斯的比较好(当然更短!) 解决方案 你也可以这样写: 让REC排列名单采取= 序列{如果Set.count采取= List.length名单,然后得到[]其他 对于L列表中做 如果不是(Set.contains升采取)然后 用于烫发的排列名单(Set.add升拍摄)办 ..
发布时间:2015-11-30 13:32:27 C/C++

检查数组B是A的置换

我试图找到一个解决的办法,但也没有得到多少我的头了。 我们都提供两个未排序整数数组A和B.我们要检查数组B是否是A的置换如何才能做到这一点?即使异或数字不会工作,因为可以有几个反例具有相同的XOR值BT是不是彼此的排列。 一个解决方案需要O(n)的时间和空间O(1) 任何帮助是值得欢迎的! 谢谢你。 解决方案 现在的问题是理论上的,但你可以在O做到这一点(n)时间及O(1)空间。分配的2 ..
发布时间:2015-11-30 13:32:15 C/C++

生成长度为n的所有二进制字符串k位设置

什么是最好的算法来查找长度为n包含k位设置的所有二进制字符串?例如,如果n = 4且k = 3,有... 0111 1011 1101 1110 我需要一个很好的方法来生成这些给定的任何n和任意k,所以我倒是preFER它与字符串进行。 解决方案 此方法会产生与完全N'1'比特的所有整数。 从 https://graphics.stanford.edu/~seander/bit ..
发布时间:2015-11-30 13:21:15 C/C++

算法,将采取数字或单词,并找到所有可能的组合

我在寻找一种算法,将采取数字或单词,并找到他们的所有可能的变化一起,也让我确定有多少价值,寻找起来。 例如,假设该字符串或数组是: 猫 狗 鱼 那么结果为2的值可以是: 猫狗 鲶鱼 狗猫 狗鱼 鱼的猫 鱼狗 所以从一组3个项目的结果是它在2相匹配的结果 6的可能变化 与3相匹配的结果将是: 猫狗鱼 猫吃鱼狗 狗猫鱼 狗鱼的猫 猫鱼狗 鱼狗猫 ...可能更多的选择 ..
发布时间:2015-11-30 13:18:29 PHP

查找第n次置换不计算人

给定N元素重新presenting置换的原子排列,是有一种算法那样: 函数getNthPermutation($原子,$ permutation_index,$大小) 其中, $原子是元素的数组, $ permutation_index 的排列和指数 $尺寸是排列的大小。 例如: $原子=阵列(“A”,“B”,“C”); //获得的2个元素第三置换 $烫发= getNthPerm ..
发布时间:2015-11-30 13:18:18 PHP

算法生成一个列表的所有可能的排列?

说我有n个元素的列表,我知道有n!可能的方式来订购这些元素。什么是算法来生成这个列表中的所有可能的顺序?例如,我有列表[A,B,C]。该算法将返回[[A,B,C],[A,C,B,],[B,A,C],[B,C,A],[C,A,B],[C,B ,一个] 我在读这在这里 不过,维基百科从来都不是善于解释。我不明白太多。 解决方案 基本上,用于从每个元素从左到右,生成剩余元素的所有排列。 (如果你喜欢 ..
发布时间:2015-11-30 13:16:14 C/C++

快速置换 - >数 - >置换映射算法

我有n个元素。为了一个例子,比方说,7元,1234567我知道有7! = 5040排列可能这7个要素。 我希望有一个快速算法,包括两种功能: F(号)之间的数字0和5039映射到一个唯一的置换,以及 F'(置换)映射置换回它被从所生成的数 我不关心数量和排列之间的对应关系,为每个排列有它自己唯一的编号。 所以,举例来说,我可能具备的功能,其中 F(0)='1234567' f的('1 ..
发布时间:2015-11-30 13:14:44 C/C++