如何自定义一个函数,使之能求组合数?

cyh1898 2003-09-14 10:42:36
如题。
...全文
61 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
joky1981 2003-09-14
  • 打赏
  • 举报
回复
以上是N取4
joky1981 2003-09-14
  • 打赏
  • 举报
回复
type
TLibaryValue = array [1..10] of Integer;
PLibaryValue = ^TLibaryValue;
TListValue = array [1..10, 1..10] of Integer;

var
TLV: TLibaryValue;

procedure TMainForm.CycForth();
var
N1, N2, N3, N4 : Integer;
begin
for N1 := 1 to MaxNum do
begin
TLV[1] := N1;
for N2 := N1 + 1 to MaxNum do
begin
TLV[2] := N2;
for N3 := N2 + 1 to MaxNum do
begin
TLV[3] := N3;
for N4 := N3 + 1 to MaxNum do
begin
TLV[4] := N4;
AddResultIntoList(TLV);
end;
end;
end;
end;
end;
getter 2003-09-14
  • 打赏
  • 举报
回复
有没有优花一点的??@@
tjff2000 2003-09-14
  • 打赏
  • 举报
回复
求组合n中取m,按照公式应为n!/(m!*(n-m)*(n-m-1)*……*1),则程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var m,n,c,nj,i,mj,k:integer;
begin
nj:=1;//n的阶乘
mj:=1;//m的阶乘
k:=1;
m:=strtoint(Edit1.Text);
n:=strtoint(Edit2.Text);
For i:=1 to n do
nj:=i*nj;
For i:=1 to m do
mj:=i*mj;
For i:=1 to n-m do
k:=i*k;
c:=nj div (mj*k);
showmessage(inttostr(c));//c是结果
end;
dyf2001 2003-09-14
  • 打赏
  • 举报
回复
这没有什么困难的啊
cyh1898 2003-09-14
  • 打赏
  • 举报
回复
你学过排列组合吗?
FrameSniper 2003-09-14
  • 打赏
  • 举报
回复
什么叫组合数啊?

5,387

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧