36个数每一次只能选7个数,如1、2、3、4...34、35、36。1、2、3、4、5、6、7和1、3、2、4、5、6、7是两种不同的算法。请问有多少种算法?我写不出来。请各位大侠帮帮我,用Delphi语言写出来.

解决方案 »

  1.   

    用Delphi?你是要数量还是要所有的组合情况?组合数目太大,不可能全部显示出来吧?如果只是数量,就是乘法运算而已
      

  2.   

    哦,上面是36个数选36个的结果,
    应该是36*35*34*33*32*31*30 
      
    请大家指导
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    Function rang(N,m:Longint):int64;stdcall;  //求排列函数
    var
      R:int64;
    begin
      R:=1;
      if m=0 then
        Result:=1
      else
        begin
          while m>0 do
            begin
              R:=R*(N-m+1);  //排列公式
              m:=m-1;
            end;
            Result:=R;
          end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    if strtoint(edit1.Text)>=strtoint(edit2.Text) then   //被排列的数一定要大
    edit3.Text:=inttostr(rang(strtoint(edit1.Text),strtoint(edit2.Text)))
    else
    ShowMessage('输入错误');
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    edit1.Text:='';
    edit2.Text:='';
    edit3.Text:='';end;end.
      

  3.   

    http://community.csdn.net/Expert/topic/5356/5356205.xml?temp=.4842951