每次选择的数都不相同,而且选择过的数据部可以在选。
例如:从1到100中随机选择数据
    第一次选择44
    第二次选择52
    则第三次就不能再选择44,52了
急于求救!!!!!

解决方案 »

  1.   

    建一个list就行,重复就再random一个,反正就100次
      

  2.   

    RamjetZhang(我曾经不是一头猪)
    那你现在是?????
      

  3.   

    数不多的话你可以把它放到一个表中做记录移动。选择过的你就把它DELETE 掉,或是可以把它做一个标记。我以前在VFP 中做的抽奖程序就是这样的。最多的数据量我是用4万条做的,可在用的时候只有5-6千条。效果还是不错的。
    我想在DELPHI 中写的话也是可以的。
      

  4.   

    建两个数组比如:
    data:array[1..100] of byte;
    Data_flag:array[1..100]of Boolean;
    为data赋值初始化为待选数据。
    为Data_flag赋值初始化为,该位置是否有效。
    然后随机在Data中取数,取到后查看Data_flag看Data_flag相对位置是否有效。
    有效取走,并把Data_flag该位子写成无效,若无效,则丢弃取下一个。
    也可只定义一个数组Data,取走数后把该位置为一不合理的数,比如0,取得0为无效,其他为有效,取到有效的数后把改为置0;
    你试试吧。
      

  5.   

    var
    temp.i,j,k:integer;
    num:array[0..99] of integer;
    begin
    for i:=1 to 100 do
      num[i-1]:=i;
    j:=99;
    i:=0; 
    while i<=99 do
     begin
     randomize;
     k:=random(j);
     while (k=j) or (k<0)  do
       begin
        randomize;
        k:=random(j);
        end;
     temp:=num[k];
     num[k]:=num[j];
     num[j]:=temp;
     j:=j-1;
     i:=i+1;
    end;
    end;