如题

解决方案 »

  1.   

    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;
    快速生成无重复的随机数
    http://community.csdn.net/Expert/topic/2932/2932635.xml?temp=.4327814
      

  2.   

    存储过程 
    (每条记录有一个唯一的数字编号)先提取唯一编号、生成一个随机数作为两个字段到一个临时表
    再从这个临时表里按照随机数大/小排列选top 10 与原始数据联合查找