是的,我有RTFM。或者,在这种情况下,RTFSO。如果它显示在“npr”或“permutation”的搜索结果中,我就读过它。虽然我实现了Heap的算法,但我无法从那里(所有排列)跳跃到nPr(长度为r的所有排列,从较大的集合n中排除)。求解nPr(排列)的算法。 For dummies
实际算法(伪代码很好)比不包含实际代码的冗长解释更受欢迎。如果你想按照理论学习我,那很好,我会很乐意从中学习,但我还想要随附的代码。如果你可以用堆的话来说,太棒了;否则,我会混淆。
我没有任何代码可以告诉你(除非你想看到堆在VBScript中实现(这是我在工作中必须使用的)),因为正如我所说的,我不知道在哪里从那里去获得集合n的每个r长度子集。
在缺少我的NPR的描述时,这里是什么,我希望做一个很简单的例子:
给定了......
A,B,C
...我想找到的每两个字符排列,就像这样:
AB
AC
BC
这个例子太简单了,因为我真正试图推导出的是一个广义的解决方案,它将一个集合(数组)和每个排列中应该有的项目数作为调用参数。
嗯......现在我已经写完了所有这些,在我看来,我只是真的需要知道如何从集合n中导出长度为r的所有子集,因为我可以找到这些集合的排列使用Heap的子集。
供参考:今年我将50;这不是作业。
我真的不知道自己想要什么。你没有指定一种语言;而你其实并没有问过一个问题。然而,这可能有所帮助:http://stackoverflow.com/questions/127704/algorithm-to-return-all-combinations-of-k-elements-from-n – abelenky
好吧,我的意思是说,伪代码是罚款,并要求提供一个解决nPr的算法,所以我很抱歉不清楚。如果你真的需要用特定的语言编写它,我最熟悉:C,C++,Pascal,VB,JavaScript和VBScript。 – Brian
什么是RTFM和RTFSO?这是绝对不清楚你究竟想要什么 –