将1到100这个100个自然数,随机放入一个长度为100的int数组中,并且不能重复
思路提醒:先按照顺序把1到100放到数组中,然后重复下面100次“生成两个随机位置i和j,然后交换这两个位置的元素”,这叫“洗牌算法”
代码实现:
static void Main(string[] args)
{
//随机数洗牌算法
int[] num = new int[100];
Random r = new Random();
for (int i = 0; i < num.Length; i++)
{
num[i] = i+1;
}
for (int i = 0; i < num.Length; i++)
{
int j = r.Next(1, 100);
int k = r.Next(1, 100);
int temp = num[j];
num[j] = num[k];
num[k] = temp;
}
for (int i = 0; i < num.Length; i++)
{
Console.WriteLine(num[i]);
}
Console.ReadKey();
}