delphi求一共有5种颜色求任意取3棵显示所有的可能
- 提问者网友:眉目添风霜
- 2021-05-08 23:11
- 五星知识达人网友:走死在岁月里
- 2021-05-09 00:33
用数学方法计算就是用排列组合C(5, 3) = (5 * 4 * 3) / (3 * 2 * 1) = 10, 也就是说一共10种可能
用Delphi方法
先添加一个Memo
.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
t_color1, t_color2, t_color3, cout: Byte;
List: TStringList;
begin
//C53 = 5*4*3/3*2*1 = 60/6 = 10
Memo1.Clear;
cout := 0;
List := TStringList.Create;
for t_color1 := 0 to 4 do
for t_color2 := t_color1 to 4 do
for t_color3 := t_color2 to 4 do
if (t_color1 <> t_color2) and (t_color2 <> t_color3)
and (t_color1 <> t_color3) then
begin
Inc(cout);
List.Add(IntToStr(t_color1) + IntToStr(t_color2) + IntToStr(t_color3));
end;
Memo1.Lines := List;
List.Free;
end;
end.
- 1楼网友:慢性怪人
- 2021-05-09 01:29
假设有 红 白 黄 绿 蓝
1、红 白 黄
2、红 白 绿
3、红 白 蓝
4、红 黄 绿
5、红 黄 蓝
6、红 绿 蓝
7、白 黄 绿
8、白 黄 蓝
9、白 绿 蓝
10、黄 绿 蓝