我正在努力解决如何使用随机数进行一系列计算的问题,并保持从原始数据集返回最低增量的数字集。
我正在尝试通过使用随机数约束来重新创建数据,并希望在随机数中循环设置一定数量的循环,然后用excel从原始数据集中获取具有最低增量的随机样本集来填充数据
我正在使用原始数据+ RANDBETWEEN(-STDEV,STDEV)的公式AVERAGE计算随机数据集。增量是原始数据与随机数据集之间的差。
总和Delta是总和。
不是我要寻找与原始数据相匹配的每个随机数据,而是要寻找与原始数据相匹配的总和。
第一次运行如下:
因此,当重新计算随机数时,它看起来像这样:
答案 0 :(得分:0)
可以尝试
Sub test()
Dim Ws As Worksheet, Rng As Range, Arr(1 To 6) As Variant, xSet As Variant
Dim ItrNo As Long, MinSum As Long, Rw As Long
Set Ws = ThisWorkbook.ActiveSheet
Set Rng = Ws.Range("A1:C8")
Application.Calculation = xlCalculationManual
MinSum = 100000
Do While ItrNo < 100 ' change 100 according to your requirement
Rng.Calculate
xSet = Range("B2:B7").Value
'next block is only for storing each sets from column J, delete if not required
For Rw = 2 To 7
Ws.Cells(Rw, ItrNo + 10).Value = xSet(Rw - 1, 1)
Next
If Ws.Range("C8").Value < MinSum Then
MinSum = Ws.Range("C8").Value
For Rw = 1 To 6
Arr(Rw) = xSet(Rw , 1)
Next
End If
ItrNo = ItrNo + 1
Loop
Ws.Range("D2:D7").Value = Application.Transpose(Arr) 'place set resulting min Delta at column D , Change to requirement
Application.Calculation = xlCalculationAutomatic
End Sub
要进行测试的范围A1:C8,可以根据需要修改范围,迭代次数等。
注意:有许多方法可以实现相同的目的,但只是发布了第一个想法。
答案 1 :(得分:0)