- 最后登录
- 2019-12-25
- 注册时间
- 2012-8-24
- 阅读权限
- 90
- 积分
- 71088
- 纳金币
- 52304
- 精华
- 343
|
來自:与光同尘
程序:(程序是从网上取的,本篇博客主要总结一下思路与用法)
public int[] GetRandomSequence2(int total, int n)
{
//随机总数组 int[] sequence = new int[total];
//取到的不重复数字的数组长度 int[] output = new int[n];
for (int i = 0; i < total; i++)
{
sequence = i;
}
int end = total - 1;
for (int i = 0; i < n; i++)
{
//随机一个数,每随机一次,随机区间-1
int num = Random.Range(0, end + 1);
output = sequence[num];
//将区间最后一个数赋值到取到数上
sequence[num] = sequence[end];
end--;
//执行一次效果如:1,2,3,4,5 取到2
//则下次随机区间变为1,5,3,4;
}
return output;
}
原因:之所以把这个程序单独列出来,是因为它与我一开始的想法不一样,之前想的是从一组数中一个一个取值出来,与之前的取出的数作比较取与之前取出数都不相同的值进入取出的数的数组。而这个函数会把之前取出的数放在数组末尾,缩短数组长度以此达到取不同值的结果。其中效率提升很多。
用法:在大量数据中,随机取几个不同的数据。或者打乱当前数据顺序。
实际使用: 生成连连看的阵列,首先从图片库中选出相应数量的图片,打乱次序,根据打乱的次序生成对应的图片。
|
|