procedure TForm1.Button1Click(Sender: TObject);
type
TASet=set of 1..30;
const
ASet:TASet=[2,8,9,12,13,17,19,22];
var
i,j,k:Integer;
Sets:Array[1..300] of TASet;
Exists:Boolean;
begin
Randomize;
for i:=1 to 300 do
begin
Exists:=True;
while Exists do
begin
Sets[i]:=[];
for j:=1 to 6 do
begin
repeat
k:=Random(29)+1;
until not (k in Sets[i]) and not (k in ASet);
Sets[i]:=Sets[i]+[k];
end;
for j:=7 to 8 do
begin
repeat
k:=Random(29)+1;
until not (k in Sets[i]) and (k in ASet);
Sets[i]:=Sets[i]+[k];
end;
Exists:=False;
for j:=1 to i-1 do
if Sets[i]=Sets[j] then
begin
Exists:=True;
Break;
end;
end; //while
procedure TForm1.Button1Click(Sender: TObject);
type
TASet=set of 1..30;
const
ASet:TASet=[2,8,9,12,13,17,19,22];
var
i,j,k:Integer;
Sets:Array[1..300] of TASet;
Exists:Boolean;
begin
Randomize;
for i:=1 to 300 do
begin
Exists:=True;
while Exists do
begin
Sets[i]:=[];
for j:=1 to 6 do
begin
repeat
k:=Random(29)+1;
until not (k in Sets[i]) and not (k in ASet);
Sets[i]:=Sets[i]+[k];
end;
for j:=7 to 8 do
begin
repeat
k:=Random(29)+1;
until not (k in Sets[i]) and (k in ASet);
Sets[i]:=Sets[i]+[k];
end;
Exists:=False;
for j:=1 to i-1 do
if Sets[i]=Sets[j] then
begin
Exists:=True;
Break;
end;
end; //while
var
I, J: Integer;
RArray: Array[0..7] of Integer;
const
ConstArray: Array[0..7] of Integer =
(2,8,9,12,13,17,19,22);
begin
Randomize;
for I := 0 to 299 do begin
for J := 0 to 5 do
RArray[J] := RandomRange(1, 30);
for J := 6 to 7 do
RArray[J] := RandomFrom(ConstArray);
for J := 0 to 7 do
Canvas.TextOut(5+J*20, 5+I*20 , IntToStr(RArray[J]));
end;
end;