求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;
参考代码如下:之所以返回值定义为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]>x do i:=i+1;
while a[j]<x do j:=j-1;
if i<=j then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
i:=i+1;
j:=j-1;
end;
until i>j;
if i<r then
kp(i,r);
if l<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.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯