求一个算法:在固定的M个数里,取N个数,。。。。(由非技术版转来) (115分)

  • 主题发起人 主题发起人 HelloSeven
  • 开始时间 开始时间
H

HelloSeven

Unregistered / Unconfirmed
GUEST, unregistred user!
在固定的M个数里,取N个数,(像彩票)
求他们的组合。。(没有重复)。。。
不是求有多少组呀。。
 
看看下面的
procedure TForm1.Button1Click(Sender: TObject);
const
m=3;
var
a1: array [0..m-1] of integer;
I,n: Integer;
s:String;
begin
a1[0]:=123;
a1[1]:=13;
a1[2]:=23;
n:=5;
s:='';
Randomize;
for I := 1 to ndo
s:=s+' '+inttostr(a1[Random(m)]);
label1.Caption:=s;
end;
 
这个问题你不是已经问过了吗?
program combin;
{$APPTYPE CONSOLE}
uses SysUtils;
var
cc: array [0..30] of byte;
flag : array [1..30] of 0..1;
M,N : integer;
procedure com(step:integer);
var
i,j : byte;
begin
if (step<=M) then

begin
for i:=1 to Ndo
if ((flag)=0) and (i>cc[step-1]) then

begin
flag:=1;
cc[step] := i;
com(step+1);
flag := 0;

end;
end
else
begin
for j:=1 to Mdo
write(cc[j],' ');

writeln;
end;
end;

begin
fillchar(flag,sizeof(flag),0);
N := 6;
M := 2;
cc[0] := 0;cc[1]:=1;
com(1);
readln;
// Insert user code here
end.
 
组合问题呀
 
组合算法的帖子已经有很多了!查查看啊
 
接受答案了.
 

Similar threads

后退
顶部