如何打乱一个数组的顺序?例如有一个数组A A[0]:='0';
A[1]:='1';
A[2]:='2';
A[3]:='3';
A[4]:='4';
A[5]:='5';
A[6]:='6';
A[7]:='7';
A[8]:='8';
A[9]:='9';我现在想把这个数组里面的数据打乱变成A[0]:='7';
A[1]:='0';
A[2]:='4';
A[3]:='6';
A[4]:='2';
A[5]:='9';
A[6]:='1';
A[7]:='3';
A[8]:='5';
A[9]:='8';如何实现呢?急,在线等待...

解决方案 »

  1.   

    to mwy654321
    是字符型的!to bdmh
    随机的我也想过,可是随机的就会有出现重复的可能,这个如何处理呢?
     
      

  2.   

    打乱索引的办法不错。关于取不重复的随机数,参看大侠们的讨论
    http://topic.csdn.net/u/20100420/14/264058f9-ef08-44a9-a7d8-cd55b490255e.html?23057
      

  3.   


    请用delphi语言表述你的定义,字符型包含很多类型,不清楚你说的是哪种。
      

  4.   

    1、將數列放在數據表裡,
    2、然後隨機取值
       select   top   10   *   from   表   order   by   newid()
    3、在賦值回數組。
      

  5.   

    to mwy654321
    A: Array [0..500] of string;能不能打乱后放到另外一个数组里呢?如何做到随机不重复呢?请高手帮帮忙,谢谢!
      

  6.   

    简单的办法是:
    如果数组是:A: Array [0..500] of string;
    不断产生 0..500 之间的两个随机数a,b,然后交换 A[a] 和 A[b]
      

  7.   

    这样就不重复了
    for iLoop:=0 to ... do 
    i:=0;
    j:=iRandom;//获取随即数
    iTmp:=a[i];
    a[i]:=a[j];
    a[j]:=iTmp;
      

  8.   

    刚才有点问题  
    i:=0;
    for iLoop:=0 to ... do begin
    j:=iRandom;//获取随即数
    iTmp:=a[i];
    a[i]:=a[j];
    a[j]:=iTmp;
    i:=j;
    end;