哪位能给个穷举的算法?比如我有(a,b,c,d)几个数.现在要组成3位的或2位的?

解决方案 »

  1.   

    穷举还要什么算法 几位就签套for就行了啊 
      

  2.   

    兄弟能不能举个列?我不太明白.a,b,c,d,e,f,g这几个字符.组成N位的穷举.
      

  3.   

    const
      N: Integer = 7;   // 数组长度
      M: Integer = 3;   // 组合长度var
      arySrc: array of Integer;
      aryDst: array of Integer;procedure TForm1.QueAay(nIdx: Integer; mIdx: Integer);
    var
      i: Integer;
      str: String;
    begin
      aryDst[mIdx] := arySrc[nIdx];
      if mIdx = M - 1 then
      begin
        str := '';
        for i := 0 to M - 1 do
        begin
          str := str + IntToStr(aryDst[i]) + ',';
        end;
        ListBox1.Items.Add(str);
        exit;
      end;  for i := nIdx + 1 to N - 1 do
      begin
        QueAay(i, mIdx + 1);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
    begin
      SetLength(arySrc, N);
      SetLength(aryDst, M);
      for i := 0 to N - 1 do
      begin
        arySrc[i] := i;
      end;  for i := 0 to N - M do
      begin
        QueAay(i,0);
      end;
    end;