首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么打乱一个数组的顺序?待.

2012-02-27 
如何打乱一个数组的顺序?在线等待...如何打乱一个数组的顺序?例如有一个数组AA[0]:0A[1]:1A[2]:

如何打乱一个数组的顺序?在线等待...
如何打乱一个数组的顺序?例如有一个数组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';

如何实现呢?急,在线等待...

[解决办法]
随机数取的数组索引,然后赋值到另一个数组成为新数组
[解决办法]
A是什么类型的数组?
[解决办法]
打乱索引的办法不错。

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

探讨
to mwy654321
是字符型的!

[解决办法]
搜索洗牌算法
[解决办法]
1、將數列放在數據表裡,
2、然後隨機取值
select top 10 * from 表 order by newid()
3、在賦值回數組。
[解决办法]
简单的办法是:
如果数组是:A: Array [0..500] of string;
不断产生 0..500 之间的两个随机数a,b,然后交换 A[a] 和 A[b]


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

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

[解决办法]
探讨
引用:
这样就不重复了
for iLoop:=0 to ... do 
i:=0;
j:=iRandom;//获取随即数
iTmp:=a[i];
a[i]:=a[j];
a[j]:=iTmp;

这样也有重复的可能。

[解决办法]
随机数重复了就重新取不就得了。

热点排行