有没有这样的一个随机函数,可以从0-100产生一个随机数,例如第一次产生的是58,第二次再产生随机数时不包括第一次产生的随机数,也就是58这个数,而是其它的数,如69,第三次再产生随机数时不包括前两次的随机数,这样一直到所有剩下的数都随机产生完。
解决方案 »
- C# 操作PDF
- finally except 的问题!
- DLL函数返回PChar类型字符串, 在调用这个DLL函数显示结果后面会多出一个#14这个字符, 为什么?
- 急求D7的安装序列号
- AdoConnection.Cancel与Close有什么区别?
- 有谁知道怎样才能怎样才能使在TDxDBGrid控件中,拖中右面的的滚动条向下时,使DBGRID中的原选中列定住,不随滚动条滚动
- 终于成两个星了,在csdn上呆了这么长时间
- 如何远程sqlserver操作?
- Too many record locks on the table 这个错误是怎么出现的?
- 急!有哪位大虾知道关于ListView,ListTree的源程序下载????
- 如何得知窗口的客户区在刷新?
- 如何在delphi里实现多图层画图,难死我了
for i:=0 to 100 do
A[i]=i;Randomize;
for i:=0 to 100 do
begin
j:=Random(101);
k:=A[i];
A[i]:=A[j];
A[j]:=k;
end;
procedure GenerateRandoms(var arr:array of integer);
var ordTable:array of integer;
i,j,temp:integer;MaxNumber:integer;
begin
Randomize;
//建立顺序表
SetLength(ordTable,High(arr)-Low(arr)+1);
MaxNumber:=100*Length(ordTable);
//随机初始化顺序表
for i:=Low(arr) to High(arr) do
ordTable[i]:=Random(MaxNumber);
//顺序表与目标数组排序,排序后就是随机数组了
for i:=0 to Length(ordTable) do
begin
for j:=Low(arr) to High(arr)-1 do
if ordTable[j]>ordTable[j+1] then
begin
temp:=ordTable[j+1];
ordTable[j+1]:=ordTable[j];
ordTable[j]:=temp;
temp:=arr[j+1];
arr[j+1]:=arr[j];
arr[j]:=temp;
end;
end;
end;
===============================[Code End]===============================
GenerateRandoms函数举例:var arr:array[0..100] of integer;i:integer;
begin
for i:=0 to 100 do
arr[i]:=i;
Memo1.Clear ;
GenerateRandoms(arr);
for i:=0 to 100 do
Memo1.Lines.Add(IntToStr(arr[i]));
var
list1,list2:Tstringlist;
i,t:integer;
begin
list1:=Tstringlist.create;
list2:=tstringlist.create;
for i:=1 to 100 do
list1.add(inttostr(i));
for i:=1 to n(随即个数)do
begin
randomize;
t:=raddom(list1.count-1);
llist2.add(list1.string[t])
list1.delete[t];
end;
procedure Countnum(var a:array of integer); var
len:integer;
i, Index: Integer;
temp:array of integer;begin len:=length(a);
setlength(temp,len); for i:=0 to high(temp) do temp[i]:=i+1;
//如果想要数值从0开始则temp[i];=i;
while Len>0 do
begin
Index:=Random(Len);
a[high(a)+1-Len]:=temp[Index];
temp[Index]:=temp[Len-1];
Len:=len-1;
end
end;
Randomize;
加了这个之后就不会一样了