怎么写一个求子集的函数???(50分)

  • 主题发起人 gigglegile
  • 开始时间
G

gigglegile

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个像下面的求子集的函数:
function subset(Set:整数集合;n:integer):集合数组;
说明:set为要求子集的原集合,n为输出子集的元素个素;
比如:subset({1,2,3},2)=({1,2},{1,3},{2,3});
subset({1,2.3},1)=({1},{2},{3})
 
把你的整数放入数组,然后使用循环嵌套,应该可以吧。
 
这里有2步:
1:如何将集合转换成数组?Delphi是否这样的函数
2:转换成数组后,再用组合算法生成,这个我已经有点眉目了!
现在关键是第1个问题!请大家想想!
 
用Low+High函数可以遍历集合,把每个值放入到数组不成问题了吧?
 
生成子集的时候,先把数组排序,按小到大,或大到小,不要采取穷取法
比如{1,2,3,4},2 -> {1,2} {1,3},{1,4},{2,3},{2,4},{3,4}这样遍历是最快的
 

Similar threads

S
回复
0
查看
949
SUNSTONE的Delphi笔记
S
S
回复
0
查看
770
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部