首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制粘贴随机数结果

复制粘贴随机数结果
EN

Stack Overflow用户
提问于 2014-12-13 07:39:57
回答 1查看 515关注 0票数 0
代码语言:javascript
复制
Sub MinimumCost()
Range("TotalCost_D").ClearContents

Range("MinimumCost").Value = 100000000
Dim i As Integer

Range("PurchasedVans_M").Formula = "=Randbetween(0,2)"

For i = 1 To 10000

Calculate

If Range("TotalCost").Value < Range("MinimumCost").Value Then
Range("MinimumCost").Value = Range("TotalCost").Value
    Range("TotalCost_D") = Range("MinimumCost")
    Range("PurchasedVans").Value = Range("PurchasedVans_M").Value

    End If
Next i
End Sub

代码打算计算优化成本,然后将优化后的面包车数量和成本输入仪表板。

问题是面包车的数量与优化成本结果不匹配。这意味着我使用购买的面包车数量结果来计算总成本,这并不等于我之前得到的优化成本。是因为函数之间的随机数不能固定吗?有没有更好的方法来生成随机数?你能检查一下我的代码并告诉我问题的原因吗?

亲切的问候

EN

回答 1

Stack Overflow用户

发布于 2014-12-16 02:47:03

每次调用Calculate时,RandBetween都会重新计算,即10,000次。

如果您希望每次调用MinimumCost时只计算一次,则将该公式替换为一个值:

代码语言:javascript
复制
    Range("PurchasedVans_M").Value = Int(Rnd * 3)

Excel函数RandBetween(a,b)等效于VBA Int(a + Rnd * (b - a + 1))

请注意,RandBetween( 0,2 )返回一个整数0、1或2。

如果你想要一个floating-point0 <= n < 2,那就使用Rnd * 2

a + Rnd * (b - a)a <= n < b的更一般的情况

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27453808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档