相关疑难解决方法(0)

Excel VBA的Rnd()真的很糟糕吗?

我需要一个用于2D蒙特卡罗模拟的伪随机数生成器,它没有使用简单LCG获得的特征超平面.我使用以下代码在Excel 2013中测试了随机数生成器Rnd()(运行大约需要5秒):

Sub ZoomRNG()

Randomize
For i = 1 To 1000
    Found = False
    Do
        x = Rnd()   ' 2 random numbers between 0.0 and 1.0
        y = Rnd()
        If ((x > 0.5) And (x < 0.51)) Then
            If ((y > 0.5) And (y < 0.51)) Then
                ' Write if both x & y in a narrow range
                Cells(i, 1) = i
                Cells(i, 2) = x
                Cells(i, 3) = y
                Found = True
            End If
        End If
    Loop While (Not …
Run Code Online (Sandbox Code Playgroud)

random vba excel-vba montecarlo excel-2013

13
推荐指数
1
解决办法
4452
查看次数

Excel VBA Rnd并非实际随机

我目前有一个宏,当我点击一个按钮,它"随机"给我一个msgbox中的数字:

dim number as double
number= Int(8 * Rnd + 1) - 1
MsgBox number
Run Code Online (Sandbox Code Playgroud)

问题是,这些数字实际上并不是随机的.例如:如果我启动宏,单击按钮两次,让我说我得到数字5和2.现在如果我关闭宏并再次打开它并单击按钮两次,我得到相同的两个数字5和2.

现在我知道在VB.net中有一种方法可以实际让它每次吐出随机数而不重复"序列"但是自从我触及vb.net以来已经多年了所以我不记得了,我也会不知道如何在excel vba中使用它.

excel vba excel-vba

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

excel-vba ×2

vba ×2

excel ×1

excel-2013 ×1

montecarlo ×1

random ×1