假设有4个数,比如是1,2,3,4
然后需要输入一个数n,
假设输入的n是2,
那么输出的是(1,2)、(1,3)、(1,4)、(2,3)、(2,4)、(3,4)这个应该怎么考虑呢。

解决方案 »

  1.   

    可以借用群的方式表现出来
    我们规定一个乘法:(1)*(2)=(1,2)
    (1)*(1)=(1)
    (1,2)*(2)=(1,2)
    首先将将(1),(2),(3),(4)放到一个vector中,或者可用数组来表示
    让它们两两相乘,得到的结果就是你所求的
    如果输入的是3,则将两两相乘的结果再和这个vector中的元素相乘
    其实就是数学中求群的所有k元子集的算法也可以用组合数学的方法