c#编写程序,随机产生100个1~6的整数,统计每个数出现的次数。修改程序,使之产生1000个1~6的随机数,并统计每个数出现的次数。比较不同的结果并给出结论。
时间: 2024-10-21 14:08:36 浏览: 33
随机抽人点名软件,有没有什么随机点名软件,C#
在C#中,你可以使用`Random`类配合`Dictionary`数据结构来实现这个需求。首先,我们创建一个函数来生成指定数量的随机数并统计频率:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 生成100个随机数
Random rand = new Random();
int[] numbers = GenerateRandomNumbers(100);
Dictionary<int, int> frequency100 = CountFrequency(numbers);
Console.WriteLine("原始数据(100个数):");
DisplayFrequency(frequency100);
// 生成1000个随机数并统计频率
int[] largerNumbers = GenerateRandomNumbers(1000);
Dictionary<int, int> frequency1000 = CountFrequency(largerNumbers);
Console.WriteLine("\n更大样本(1000个数):");
DisplayFrequency(frequency1000);
// 比较两个结果并给出结论
CompareResult(frequency100, frequency1000);
}
static int[] GenerateRandomNumbers(int count)
{
return Enumerable.Range(1, 6).Select(_ => rand.Next(1, 7)).ToArray();
}
static Dictionary<int, int> CountFrequency(int[] numbers)
{
Dictionary<int, int> freq = new Dictionary<int, int>();
foreach (int num in numbers)
{
if (freq.ContainsKey(num))
freq[num]++;
else
freq[num] = 1;
}
return freq;
}
static void DisplayFrequency(Dictionary<int, int> frequency)
{
foreach (KeyValuePair<int, int> pair in frequency)
{
Console.WriteLine($"数字 {pair.Key} 出现了 {pair.Value} 次");
}
}
static void CompareResult(Dictionary<int, int> freq1, Dictionary<int, int> freq2)
{
Console.WriteLine("\n结论:");
foreach (int num in freq1.Keys)
{
int count1 = freq1[num];
int count2 = freq2[num];
if (count1 == count2)
Console.WriteLine($"{num}: 两组数据出现次数一致");
else if (count1 < count2)
Console.WriteLine($"{num}: 在更多数据中{count2}比{count1}更常见");
else
Console.WriteLine($"{num}: 在较小数据集中{count1}比{count2}更常见");
}
}
}
```
运行这个程序,你会看到100个和1000个随机数分别产生的每个数的出现次数对比,以及结论部分关于哪些数字在更大样本中更常见。
阅读全文