怎样用vb产生200个0到1之间均匀分布随机数和?
答案:1 悬赏:0
解决时间 2021-01-20 18:09
- 提问者网友:饥饿走向夜
- 2021-01-20 08:37
怎样用vb产生200个0到1之间均匀分布随机数和?
最佳答案
- 二级知识专家网友:往事隔山水
- 2021-01-20 08:56
建立一个command1按钮
Private Sub Command1_Click()
Dim i, Sum
Dim a(1 To 200)
Sum = 0
For i = 1 To 200
Randomize
a(i) = Rnd()
Sum = Sum + a(i)
Next i
Print Sum
End Sub
==============
然后想了下高斯分布应该b不简单的,就 主要参考了
--------------------------------------------------------------
http://topic.csdn.net/t/20050519/16/4019951.html
这篇?:
就这个就可以了,不用改进法
正态分布的随机数发生器 in C#
主要参考《Numerical Recipes in C++ 2/e》p.292~p.294 和《Simulation Modeling and Analysis
3/e》p.465~p.466。
Box 和 Muller 在 1958 年给出了由均匀分布的随机变量生成正态分布的随机变量的算法。设 U1, U2 是区间 (0, 1) 上均匀分布的随机变量,且相互独立。令
X1 = sqrt(-2*log(U1)) * cos(2*PI*U2);
X2 = sqrt(-2*log(U1)) * sin(2*PI*U2);
那么 X1, X2 服从 N(0,1) 分布,且相互独立。等于说我们用两个独立的 U(0,1) 随机数得到了两个独立的 N(0,1)随机数。
---------------------------------------------------------------
高数实在不行,只能理解到这个程度,下面的代码
Private Sub Command1_Click()
Dim u1(1 To 100) '定义u1
Dim u2(1 To 100)
Dim x1(1 To 100) '定义x1
Dim x2(1 To 100)
Dim i As Integer
Dim Sum
Sum = 0
Dim pi
pi = 3.1415926525 '定义Л
For i = 1 To 100
Randomize
u1(i) = Rnd() '生成u1
u2(i) = Rnd() '
x1(i) = Sqr(-2 * Log(u1(i))) * Cos(2 * pi * u2(i)) '计算x1
x2(i) = Sqr(-2 * Log(u1(i))) * Sin(2 * pi * u2(i)) '
Sum = Sum + x1(i) + x2(i) '计算x的所有的和
Next i
Print Sum '输入他们的和
End Sub
Private Sub Command1_Click()
Dim i, Sum
Dim a(1 To 200)
Sum = 0
For i = 1 To 200
Randomize
a(i) = Rnd()
Sum = Sum + a(i)
Next i
Print Sum
End Sub
==============
然后想了下高斯分布应该b不简单的,就 主要参考了
--------------------------------------------------------------
http://topic.csdn.net/t/20050519/16/4019951.html
这篇?:
就这个就可以了,不用改进法
正态分布的随机数发生器 in C#
主要参考《Numerical Recipes in C++ 2/e》p.292~p.294 和《Simulation Modeling and Analysis
3/e》p.465~p.466。
Box 和 Muller 在 1958 年给出了由均匀分布的随机变量生成正态分布的随机变量的算法。设 U1, U2 是区间 (0, 1) 上均匀分布的随机变量,且相互独立。令
X1 = sqrt(-2*log(U1)) * cos(2*PI*U2);
X2 = sqrt(-2*log(U1)) * sin(2*PI*U2);
那么 X1, X2 服从 N(0,1) 分布,且相互独立。等于说我们用两个独立的 U(0,1) 随机数得到了两个独立的 N(0,1)随机数。
---------------------------------------------------------------
高数实在不行,只能理解到这个程度,下面的代码
Private Sub Command1_Click()
Dim u1(1 To 100) '定义u1
Dim u2(1 To 100)
Dim x1(1 To 100) '定义x1
Dim x2(1 To 100)
Dim i As Integer
Dim Sum
Sum = 0
Dim pi
pi = 3.1415926525 '定义Л
For i = 1 To 100
Randomize
u1(i) = Rnd() '生成u1
u2(i) = Rnd() '
x1(i) = Sqr(-2 * Log(u1(i))) * Cos(2 * pi * u2(i)) '计算x1
x2(i) = Sqr(-2 * Log(u1(i))) * Sin(2 * pi * u2(i)) '
Sum = Sum + x1(i) + x2(i) '计算x的所有的和
Next i
Print Sum '输入他们的和
End Sub
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯