谁能帮我写出从n各选择m数的所有组合的程序(m<=n)?(100分)

  • 主题发起人 主题发起人 xyf2001721
  • 开始时间 开始时间
X

xyf2001721

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:4中选3个,有(1,2,3),(1,2,4),(1,3,4),(2,3,4)
 
C(n,m)=n!/(m!*(n-m)!)
function Permute(N, M): Integer;
var
I: Integer;
begin
Result:= M;
for I:= M + 1 to Ndo
Result:= Result * I;
end;
function Combin(N, M): Integer;
begin
Result:= Permute(N, M) div Permut(M, M);
end;
 
标记n然后叠代
procedure enum_(var aset, aresult, level);
var i: integer;
begin
for i := 1 to ndo
if not aset then

begin
aset := true;
aresult[level] := i;
end;
if level = m then
outputresult
else
enum_(aset, aresult, level + 1);
end;
 
请看: http://www.delphibbs.com/delphibbs/dispq.asp?lid=990544
为了节约空间,代码就不贴了。
 
你手工怎么算,就让计算机这么算,不就行了
 
看过八皇后的话,,,
这个没问题的。。
 
多人接受答案了。
 
后退
顶部