相关疑难解决方法(0)

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

说我有一个n个元素的列表,我知道有n个!订购这些元素的可能方式.生成此列表的所有可能排序的算法是什么?例如,我有列表[a,b,c].该算法将返回[[a,b,c],[a,c,b,],[b,a,c],[b,c,a],[c,a,b],[c,b , 一个]].

我在这里阅读 http://en.wikipedia.org/wiki/Permutation#Algorithms_to_generate_permutations

但维基百科从未擅长解释.我不太了解它.

algorithm list permutation

113
推荐指数
8
解决办法
20万
查看次数

Objective-C中的排列/字谜 - 我遗漏了一些东西

(以下关于我的问题的代码)

根据这个堆栈溢出问题,我使用Pegolon的方法生成NSString中一组字符的所有可能的排列.但是,我现在试图让它不仅生成ANAGRAM,它是相同长度的所有排列,而是字符串中所有可能的字符组合(任意长度).

谁会知道我将如何改变以下代码来实现这一目标?这很像:生成所有长度的所有排列 - 但是(因为害怕他们需要回答家庭作业)他们没有留下代码.我有一个样本,我认为会在这篇文章的底部做到这一点......但事实并非如此.

所以,代码,按原样产生the,teh,hte,het,etheht给定的时THE.:我需要的沿着线是t,h,e,th,ht,te,he(等)除了上述3个字符的组合.

请问如何改变这一点.(ps:这里有两种方法.我添加的allPermutationsArrayofStrings是为了将结果作为字符串返回,就像我想要的那样,而不仅仅是另一个数组中的字符数组).我假设魔法会以pc_next_permutation任何方式发生- 但我想我会提到它.

在NSArray + Permutation.h中

#import <Foundation/Foundation.h>

@interface NSArray(Permutation)
- (NSArray *)allPermutationsArrayofArrays;
- (NSArray *)allPermutationsArrayofStrings;

@end
Run Code Online (Sandbox Code Playgroud)

在NSArray + Permutation.m中:

#define MAX_PERMUTATION_COUNT   20000

NSInteger *pc_next_permutation(NSInteger *perm, const NSInteger size);
NSInteger *pc_next_permutation(NSInteger *perm, const NSInteger size) 
{
    // slide down the …
Run Code Online (Sandbox Code Playgroud)

iphone sdk permutation objective-c ios

7
推荐指数
1
解决办法
3457
查看次数


标签 统计

ios ×2

iphone ×2

objective-c ×2

permutation ×2

algorithm ×1

list ×1

sdk ×1

xcode ×1