老师布置的一道题,大家来帮忙

99moom99 2003-09-21 04:35:23
有一数组如下:
2,8,9,12,13,17,19,22

要求随机产生8个数,其中有两个数必须和上组相同,如:
3,7,8,11,12,14,15,20 (8和12相同)就保留这一数组,如果
产生两以上个相同的数就不要这一数组

最后要求这8个数必须是1到30的范围,产生300个上面要求的数组

大家救命



...全文
22 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guge 2003-09-21
  • 打赏
  • 举报
回复
两星的就是不一样很有见解
FrameSniper 2003-09-21
  • 打赏
  • 举报
回复
........
hiflower 2003-09-21
  • 打赏
  • 举报
回复
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

end;

end;
hiflower 2003-09-21
  • 打赏
  • 举报
回复
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

end;

end;
lxpbuaa 2003-09-21
  • 打赏
  • 举报
回复
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;

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
  • 打赏
  • 举报
回复
看来你们老师大学学心理的,

5,387

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧