objective-c - 我需要什么样的算法?

标签 objective-c cocoa-touch algorithm permutation pseudocode

我正在尝试找出使用 objective-c 从 6 个对象创建 4 个对象的所有不同方法。

例如,如果我有以下对象:a、b、c、d、e、f

然后我可以像这样创建组

a, b, c, d

b, c, d, e

a, d, e, f

等等。顺序无关紧要。如果我想找出所有不同的可能性,我需要什么样的算法?起初我在考虑排列,但我不认为是这样。我认为可能有更快或更合适的东西,但我忘了它叫什么。

最佳答案

排列是正确的起点。一种蛮力方法是找到所有六个字符串排列,只抓取前四个并将它们添加到一个集合中。但是,效率极低。

可以调整基本排列算法以生成四个一组。

查看此页面:http://en.wikipedia.org/wiki/Permutation#Algorithms_to_generate_permutations

关于objective-c - 我需要什么样的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3792462/

相关文章:

objective-c - encodeHexString objc 实现,我是否应该支持奇数长度的十六进制字符串,如果是,如何?

iphone - iOS 能够在模拟器上读取 plist 文件,但不能在设备上读取

algorithm - OCR 旋转图像

algorithm - 麻将 - 无论布局如何,排列牌以确保至少有一条通向胜利的道路

algorithm - 将给定的字谜转换为另一个字谜所需的最小交换次数

ios - 在现有的 tableview 中使用 Objective-C 实现 UISearchController

c++ - 在 C++ 代码中使用 objc 对象?

cocoa - 使用 cocoa 调用 C 函数

iphone - 在 Cocoa-Touch 中从 URL 下载数据的最简单方法是什么?

objective-c - 如何在协议(protocol)中定义和实现属性