【发布时间】:2013-04-07 15:58:02
【问题描述】:
我需要在 Delphi 7 中编写一个函数,列出 3 个整数(不重复)的所有可能组合,使用范围从 1 到 8。例如:
123 124 125 ... 412 413 415 ... 874 875 876
这个函数将用于比较目的,所以如果它越快越好。
请问,有人能给出一个想法吗(如果可能的话,提供一些代码示例)?
谢谢!
嗯,这就是我到目前为止所得到的。请,如果有人有任何提示可以使它更好(提高性能,减少代码,...),请帮助我。再次感谢!
Function IsNumOnSet(Max, Num: Integer): Boolean;
var
X, Y, Z: Integer;
Begin
Result := False;
For X := 1 to Max Do
For Y := 1 to Max Do
For Z := 1 to Max Do
If (X <> Y) and (X <> Z) and (Y <> Z) Then
If (IntToStr(X) + IntToStr(Y) + IntToStr(Z) = IntToStr(Num)) Then
Begin
Result := True;
Exit;
end;
end;
这是在 Ken 的帮助下完成的新功能。将来可能对其他人有用。谢谢!
Function IsNumOnSet(const Min, Max, Num: Integer): Boolean;
var
X, Y, Z: Integer;
Begin
Result := False;
For X := Min to Max Do
For Y := Min to Max Do
For Z := Min to Max Do
If (X <> Y) and (X <> Z) and (Y <> Z) Then
If (X * 100 + Y * 10 + Z = Num) Then
Begin
Result := True;
Exit;
end;
end;
如果有人有更好的想法,请告诉我们!
【问题讨论】:
-
您能否edit 您的问题并发布您迄今为止尝试过但对您不起作用的内容,并就您在使用该代码时遇到的问题提出一个具体问题? “谁能给我一些密码?”这里真的不是一个可以接受的问题。谢谢。
-
efg's lab 中有一个排列部分。
-
Ken,我想我已经解释了这个问题,我并没有要求完整的代码,只是一个想法和例子......无论如何,我已经添加了一些我写的代码,但也许它可以更改为最大化性能。谢谢!也谢谢你,TOndrej!
-
肯,很好!谢谢!
-
@Ken White:建议你看这里stackoverflow.com/questions/15850355/…的历史。
标签: delphi random combinations