范围内 随机取n个数C#窗体
时间: 2023-07-12 20:49:03 浏览: 184
在 C# 窗体中,可以使用 Random 类来生成随机数,并使用 HashSet 类来存储不重复的随机数。下面是一个范围内随机取 n 个数的示例代码:
```csharp
int min = 1; // 范围最小值
int max = 100; // 范围最大值
int n = 10; // 随机数个数
Random rand = new Random();
HashSet<int> set = new HashSet<int>(); // 存储不重复的随机数
while (set.Count < n)
{
int num = rand.Next(min, max + 1); // 生成随机数
set.Add(num); // 加入到 HashSet 中
}
foreach (int num in set)
{
Console.WriteLine(num); // 输出随机数
}
```
这段代码会在范围 1 到 100 中随机取 10 个不重复的数,并逐个输出。你可以根据自己的需要修改范围和个数。
相关问题
c#窗体应用程序写求n个数字的平方和
在 C# 中,编写一个窗体应用程序计算 n 个数字的平方和,可以分为以下几个步骤:
1. 创建一个新的 Windows Forms 应用程序项目。
2. 添加一个文本框(TextBox)用于用户输入数字的数量 n 和一系列的数字,以及一个按钮(Button)用于触发计算过程。
3. 在按钮的点击事件处理器(Click Event Handler)中,添加以下代码:
```csharp
private void buttonCalculate_Click(object sender, EventArgs e)
{
// 获取用户输入的数字数量
int count;
if (!int.TryParse(textBoxNumbers.Text, out count) || count <= 0)
{
MessageBox.Show("请输入一个正整数。");
return;
}
double sumOfSquares = 0;
// 遍历并计算每个数字的平方,假设你有另一个文本框 textBoxDigits 用于存储数字
for (int i = 0; i < count; i++)
{
double digit;
if (!double.TryParse(textBoxDigits[i * 2].Text, out digit))
{
MessageBox.Show("请输入有效的数字。");
return;
}
sumOfSquares += Math.Pow(digit, 2);
}
// 显示结果
textBoxResult.Text = $"前 {count} 个数字的平方和为: {sumOfSquares}";
}
```
这个例子假设用户按顺序在 `textBoxDigits` 控件中输入数字,每两个输入是一个数字,然后计算它们的平方,并将结果显示在 `textBoxResult` 中。
c# 数组里随机取多个数不重复的
在 C# 中实现从数组中随机取多个数不重复可以使用洗牌算法(Fisher-Yates Shuffle Algorithm)。以下是一个简单的实现:
```csharp
public static T[] Shuffle<T>(T[] array, int count)
{
var random = new Random();
var result = new T[count];
Array.Copy(array, result, count);
for (int i = count; i < array.Length; i++)
{
var j = random.Next(i + 1);
if (j < count)
{
result[j] = array[i];
}
}
return result;
}
```
在上面的代码中,`Shuffle`方法接受两个参数:要随机取数的数组`array`和要取的数的个数`count`。该方法返回一个新的数组,包含从`array`数组中随机取的`count`个不重复的元素。
使用示例:
```csharp
var array = new[] { 1, 2, 3, 4, 5 };
var result = Shuffle(array, 3);
foreach (var item in result)
{
Console.WriteLine(item);
}
```
上面的代码中,`Shuffle`方法将从`array`数组中随机取3个不重复的元素,并将它们存储在`result`数组中。具体的实现方法是,首先将前`count`个元素复制到`result`数组中,然后从`count`到数组末尾进行遍历,对于每个元素,随机生成一个小于等于当前下标的随机数`j`,如果`j`小于`count`,则将该元素存储在`result`数组中的第`j`个位置。这样就可以保证取出的元素不重复,并且随机性较好。
阅读全文