洗牌算法C#
时间: 2023-07-12 11:20:00 浏览: 139
c# 中shuffle游戏
当需要在一定范围内生成不同的随机数时,可以使用洗牌算法来实现。以下是一个使用 C# 实现的洗牌算法:
```csharp
public static void Shuffle(int[] arr)
{
Random rng = new Random();
int n = arr.Length;
while (n > 1)
{
n--;
int k = rng.Next(n + 1);
int temp = arr[k];
arr[k] = arr[n];
arr[n] = temp;
}
}
```
该方法接收一个整数数组作为参数,然后使用 Random 类生成一个随机数生成器。接着,循环遍历数组,每次从数组中剩余的数字中随机选择一个数字,然后将该数字与数组中最后一个数字交换位置。最后,返回一个随机排序后的数组。
使用示例:
```csharp
int[] arr = { 1, 2, 3, 4, 5 };
Shuffle(arr);
foreach (int i in arr)
{
Console.Write(i + " ");
}
```
输出结果:
```
5 2 1 3 4
```
希望这个示例能够对你有所帮助!
阅读全文