永发信息网

求10个数中,随机抽取6个数的组合有多少种?用Delphi编程

答案:2  悬赏:70  手机版
解决时间 2021-03-21 02:28
  • 提问者网友:放下
  • 2021-03-20 09:14
求10个数中,随机抽取6个数的组合有多少种?用Delphi编程
最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-03-20 09:52
你是要打印出这些数的组合还是仅仅要得出有多少种?如果是后者也就是要求排列组合公式中C6-4的值,那就写一个递归函数求出10的阶乘值,求出6的阶乘值,再求出(10 - 6)的阶乘值,套用公式就可以了 :)

参考代码如下:之所以返回值定义为Double,是因为阶乘的数值都较大,使用Integer存储不下:)
function GetFactorial(Value: Integer): Double;
begin
if (Value < 0) then
begin
Result:= -1;
end
else if (Value = 0) or (Value = 1) then
begin
Result:= 1;
end
else
begin
Result:= Value * GetFactorial(Value - 1);
end;
end;

function GetCombinationOfFormulas(Base, Value: Integer): Double;
begin
if (Base > 0) and (Value > 0) and (Base >= Value) then
begin
Result:= GetFactorial(Base) / (GetFactorial(Base - Value) * GetFactorial(Value));
end
else Result:= -1;
end;
全部回答
  • 1楼网友:洎扰庸人
  • 2021-03-20 10:14
快排,从大到小 program hongweikai; var n,i:longint; a:array[1..400000] of longint; procedure kp(l,r:longint); var i,j,x,t:longint; begin i:=l; j:=r; x:=a[(l+r) div 2]; repeat while a[i]&gt;x do i:=i+1; while a[j]&lt;x do j:=j-1; if i&lt;=j then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; i:=i+1; j:=j-1; end; until i&gt;j; if i&lt;r then kp(i,r); if l&lt;j then kp(l,j); end; begin for i:=1 to 10 do read(a[i]); kp(1,10); for i:=1 to 10 do write(a[i],' '); end.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯