gpt4 book ai didi

c# - 中心极限定理

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:32 25 4
gpt4 key购买 nike

我想观察中心极限定理并写了这个程序。但是我很困惑,我必须那样观察吗。有什么不对吗?

xx
xxx
xxxx
xxxxx
xxxxxx
xxx
xxxx
xxx
x
x
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
Func();
}
public static void Func()
{
Random r = new Random();
int[] d = new int [10];
int sum;

for (int k = 0; k < 5000; k++)
{
sum = 0;

for (int i = 0; i < 50; i++)
sum += r.Next(0, 10000);
Set(d, sum/50);

}

DispResult(d);
}
private static void DispResult(int[] d)
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < d[i]; j += 1000)
{
Console.Write("X");
}
Console.WriteLine();
}
}
private static void Set(int[] d, int a)
{

if (a > 9000)
d[9]++;
else if (a > 8000)
d[8]++;
else if (a > 7000)
d[7]++;
else if (a > 6000)
d[6]++;
else if (a > 5000)
d[5]++;
else if (a > 4000)
d[4]++;
else if (a > 3000)
d[3]++;
else if (a > 2000)
d[2]++;
else if (a > 1000)
d[1]++;
else
d[0]++;
}
}
}

最佳答案

目前还不清楚你在这里问什么,但我会试一试。

您的程序模拟将 10000 面的骰子滚动 50 次并取平均值。然后,您执行 5000 次并显示结果的直方图。

中心极限定理指出,随着滚动次数的增加,直方图应该更接近于高斯分布。

如果你想做的是观察中心极限定理的真实性,那么我会修改你的程序如下:我会让“Func”取一个整数 n,即掷骰子的次数,然后有正文主要是:

for(int n = 1; n < 10; ++n)
{
Func(n);
Console.WriteLine("-----");
}

然后将Func中的“50”全部替换为n。

这样您就可以模拟掷 1、2、3、4...10 个骰子并取平均值。当您绘制直方图时,您会看到对于 1,直方图是矩形的,然后随着 n 的增加它变得越来越钟形。这证明了中心极限定理。

关于c# - 中心极限定理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7077429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com