【发布时间】:2016-06-28 04:34:23
【问题描述】:
是的,我有 RTFM。或者,在这种情况下,RTFSO。如果它出现在“npr”或“permutation”的搜索结果中,我会阅读它。虽然我已经实现了 Heap 的算法,但我无法从那里(所有排列)跳跃到 nPr(长度为 r 的所有排列,从更大的集合 n 中)。
实际算法(伪代码很好)优于不包含实际代码的冗长解释。如果你想教我理论,很好,我很乐意从中学习,但我也想要随附的代码。如果你可以用堆的术语来表达,那就太好了;否则,我就蒙混过关了。
我没有任何代码可以给你看(除非你想看到堆在 VBScript 中的实现(这是我在工作中必须使用的全部内容))因为正如我所说,我不知道去哪里从那里得到集合 n 的每个 r 长度子集。
如果缺少我对 nPr 的描述,这里有一个非常简单的示例来说明我想要做什么:
给定集合...
A、B、C
...我想找到每个两个字符的排列,如下所示:
A B
一个C
B C
这个例子过于简单化了,因为我真正想要推导出的是一个通用的解决方案,它采用一个集合(数组)和每个排列中应该包含的项目数作为调用参数。
嗯...现在我已经写了所有这些,在我看来,我只需要知道如何从集合 n 中导出所有长度为 r 的子集,因为我可以找到这些子集的排列使用堆的。
仅供参考:今年我将 50 岁;这不是家庭作业。
【问题讨论】:
-
我真的不知道你想要什么。您没有指定语言;而你实际上并没有问过问题。但是,这可能会有所帮助:stackoverflow.com/questions/127704/…
-
好吧,我的意思是说伪代码很好,并要求一种算法来解决 nPr,所以我为不够清楚而道歉。如果你真的需要用特定的语言编写它,我最熟悉的:C、C++、Pascal、VB、JavaScript 和 VBScript。
-
什么是 RTFM 和 RTFSO?完全不清楚你真正想要什么
-
我是不是被骗了?还是这是语言障碍?在 as-plain-as-I-can-make-it 英语中:我要求一种算法,用于从长度为 n 的集合中生成长度为 r 的所有排列。
-
寻找
Combinations例子stackoverflow.com/questions/127704/…
标签: algorithm recursion permutation