谁能提供0-1(不包含0和1)的符合正态分布的随机数算法?
解决方案 »
- 请高手帮忙看看以下的代码
- 代码创建的控件数组如何获取事件?
- 我想在vb里直接调用ocx控件。怎么调用
- 一个关于Treeview click 的问题
- 如何延时1秒钟????
- SOS!!!如何获得windows的版本号码??????
- 谁有好点的vb延时代码啊
- 当在一个MDI的子窗体体FORM1上的TextBOX控件中按下了一个键盘上的F键后,之后产生了哪些消息,从哪儿产生,传到哪儿,又由哪儿最终处理掉了
- VB中datagrid双击控件,只显示当前行,另外的行删除,怎么实现
- 关于datareport的导出数据报表的问题?
- 急急急 求vb6 连接远程Oracle数据库 在线给分!!!
- 极度郁闷,接近崩溃,请帮忙,关于数据库
Randomize (Timer)
S = Rnd
Print S
Private Declare Function GetTickCount Lib "kernel32" () As LongDim g_seed As Long '种子
Const m As Long = 2147483399
Const a As Long = 40692
Const q As Long = m / a
Const r As Long = m Mod aFunction Random_Seed(seed As Long) '初始化种子,若seed为0则使用系统时间为种子
If seed = 0 Then g_seed = GetTickCount() Else g_seed = seed
End FunctionFunction Random_Rand() As Long ' 取得0-2147483399随机整数
g_seed = a * (g_seed Mod q) - r * (g_seed / q)
If g_seed < 0 Then g_seed = g_seed + m
Random_Rand = g_seed
End FunctionFunction Random_Int(min As Long, max As Long) As Long ' 取得指定范围随机整数
Random_Int = (max - min + 1) * (Random_Rand / 2147483399) + min
End FunctionFunction Random_Single(min As Single, max As Single) As Single ' 取得指定范围随机数
Random_Single = (max - min + 1) * (Random_Rand / 2147483399) + min
End FunctionPrivate Sub Form_Load()
Random_Seed 0 '初始化种子,一定要哦!
End Sub'下面是测试
Private Sub Command1_Click()
For i = 0 To 100
Debug.Print "随机5-20内的整数: "; Random_Int(5, 20); "随机5-20内的数: "; Random_Single(5, 20)
Next
End Sub
'正态分布随机数,参数是均值和标准差
Public Function RndNormal(sngMean As Single, sngStdDev As Single) As Single
RndNormal = sngMean + (sngStdDev * (Sqr(-2 * Log(Rnd)) * Cos(6.28 * Rnd)))
End Function