主题:给个思路
qingsong225
[专家分:0] 发布于 2008-11-02 10:56:00
目的:想从A-Z随机产生6-10个字母
要求:首先生成字符串长度--6到10之间一个数n;然后产生n个字母,且当每产生一个字母则将这个字母从原集合【A-Z】中删除,然后在产生下一个字母
大侠们给个思路该怎么做?
回复列表 (共5个回复)
沙发
qingsong225 [专家分:0] 发布于 2008-11-03 10:35:00
问题太简单没人愿意回答?我是初学的,大侠们耐心指导下。谢谢!
板凳
小地小地 [专家分:300] 发布于 2008-11-04 11:49:00
随机生成N和字母,存在另一个集合中,之后用A-Z集合减去这个集合
3 楼
qingsong225 [专家分:0] 发布于 2008-11-04 16:41:00
谢谢小地小地!! 先试试。。。。[em2]
4 楼
小田甜 [专家分:3910] 发布于 2008-11-04 17:05:00
var
s:string; t:char;
a:array [1..26] of real; e:real;
l:byte;
i,j:byte;
begin
for i:=1 to 26 do s[i]:=chr(ord('A')+i-1);s[0]:=#26;
{先顺序存储A~Z}
randomize; l:=6+random(5);
{随机化 产生长度l}
for i:=1 to 26 do a[i]:=random;
for i:=1 to 25 do for j:=i+1 to 26 do if a[j]>a[i] then begin
t:=s[i];s[i]:=s[j];s[j]:=t;
e:=a[i];a[i]:=a[j];a[j]:=e;
end;
{这里就是一个简单的冒泡排序}
s[0]:=chr(l);
{s[0]表示字符串的长度(char类型)}
writeln(s);
end.
5 楼
qingsong225 [专家分:0] 发布于 2008-11-05 16:33:00
谢谢小田甜!!
我来回复