思路:先将1~10按顺序插入到一个数组中,然后随机从数组中取出一个数,例如是5,将5插入到新的数组中,然后将10替换到5的位置,这时候,原数组中5就已经不存在了,原数组的值变为1,2,3,4,10,6,7,8,9,10。然后我们再从原数组中的前9个元素中随机取一个值,插入到新的数组中,例如是3,然后将9替换到3的位置。原数组就变为1,2,9,4,10,6,7,8,9,10。以此类推,我再从原数组中的前8个元素中随机取值,这样循环10次,新的数组就是我们想要的结果了。
完整代码如下:
//先声明一个数组,并将1~10按顺序插入到数组中。
int[] indexs = new int[10];
for (int i = 0; i < 10; i++)
{
indexs[i] = i + 1;
}
//声明一个新数组,这个数组为我们的结果数组
int[] result = new int[10];
Random r = new Random();
int site = 10;//最大的索引位置
int rindex = 0;
for (int j = 0; j < 10; j++)
{
//从0~最大的索引位置中取索引
rindex = r.Next(0, site);
//将随机索引的值插入到新的数组
result[j] = indexs[rindex];
//将原数组的rindex位置的值替换成原数组中最后一个值
indexs[rindex] = indexs[site - 1];
site--;
}
//输出结果
for (int i = 0; i < 10; i++)
{
Console.WriteLine(result[i]);
}
p