您的位置:首页 > 其它

随机数生成不重复的一组数(类似于抓阄)

2014-09-23 11:43 218 查看
1.思想:生成0到99这一百个随机数为例。先用个长度为100数组,值是对应的索引编号。然后把随机数生成函数的上限设置成100(即100以下的随机数)。生成的随机数当作数组的索引值,把这个索引值对应的值和数组的最后一位交换。这样第一个随机数就产生了并且存放在数组的最后一位中。在然后把随机数生成函数的上限值设置成99(即99一下的随机数),又得到一个随机数,再当作数组的索引值和数组的倒数第二位的值交换。这样就得到第二个随机数并存在数组的倒数第二位。

2.例子:a.假如数组arr,第一次产生的随机数是50

b.arr[50]和arr[99]交换值,arr[50]值为99,arr[99]值为50;

c.加入第二次随机数是60

d.则arr[60]和arr[98]交换值,即arr[60]值为98,arr[98]值为60;

e.如此循环下去。

3.C#代码:

for (int i = 0; i < 100;i++ )

{

numbers[i] = i;

}

Random rd = new Random();

int iup = numbers.Count();

for (int i = 0; i < 99; i++)

{

int result = rd.Next(iup);

int temp;

temp = numbers[result];

numbers[result] = numbers[iup - 1];

numbers[iup - 1] = temp;

iup--;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: