三个色子,输出所有组合,(1,2,3)和(3,2,1)以及(2,1,3)算一种情况
仔细观察,在算一种情况的几种组合中除了第一个以外其他都有逆序数
我们对他们进行排序结果都是1,2,3,只要生成过程中没有逆序数,那么生成的组合就是唯一的
也就是说确定一个数后,第二个生成的数只要不比前一个小,那么新生成的组合就是以前没有出现过的
实现如下:
#include <iostream>
using namespace std;
int main()
{
for(int i=1;i<7;i++)
for(int j=i;j<7;j++)
for(int k=j;k<7;k++)
cout<<i<<","<<j<<","<<k<<endl;
}