我想写出一个算法来打印出'<>'给定对的所有可能组合,我试图开发一种算法来解决这个问题,但我认为这是不正确的,因为我不知道这个问题是关系到排列[NPR] &假设为5给定的输入它应该创建120个组合(5P5 = 120),但我的代码只产生81排列和组合生成算法
In my code have tried to generate all possible combinations by placing every element at every place one by one, but now I am little confused about how correct this approach is?
事情是很可能我们无法理解“制作子集/组合/排列”的真正概念(尽管理论上我知道它们是什么,如何计算它们)
我不是在寻找一个完整的最终“勺子代码”,而是可以解释我'我应该做什么'的东西,从中我可以提取出步骤,理解概念并且可以开发我自己的。
If possible something extending or tweaking my current coding to achieve the right result would be easier for me to understand.
void permute()
{
string str=”<><><>”;
char buck=' ';
for(int a=0;a<str.length()-1;a++)
{
for(int b=0;b<str.length()-1;b++){
cout<<str<<endl;
buck=str[b];
str[b]=str[b+1];
str[b+1]=buck;
}
}
}
我一直在试图理解我应该怎么做,但我'还在挣扎,任何帮助或指导将是很有益的。 三江源
From 'all combinations' i mean printing out all the possible ways given set of characters can be arranged, lets say for 2 pairs '<><>' it should be like: <><>,><<>,><<>,><><,<<>>,>><< ... ... ...
你可能想看看http://www.cs.sunysb.edu/ 〜algorith/files/generate-permutations.shtml以及'递归生成排列'。 – LSerni
你能举例说n = 2吗?林不知道你的意思是什么<> – jozefg
Permuations和组合是完全不同的东西,需要不同的算法。你应该清楚你想要哪一个。 – john