我會盡量保持這一點儘可能基本和重點。Excel VBA強大的隨機數發生器
基本上,我有與一定範圍的數字相關的權重/概率。例如:
0:10%
1:50%
2:15%
3:25%
然後,這轉換成累積概率:
0:10%
1:60%
2:75%
3:100%
使用在VBA均勻RNG,程序0和1,或任何劣質限制它被設置爲生成之間的數字。使用與前面的示例相同的值,但只生成大於60%(和< = 100%)的數字,這會導致數字在0.6 - 1.0之間。
這是我卡住的地方。我需要將這些隨機數非常有效地轉換爲它們的「相應值」。
它全部存儲在VBA變量中,不用說,我不想爲每種情況寫一個Select Case,因爲它們實際上是120個不同的變量和權重。
截至目前,這是我不得不產生那些數字:
RandomNumber = LowerLimit + Rnd() * (1 - LowerLimit)
由於是提前爲您的幫助!如果我錯過了一篇討論這個特定問題的帖子,請隨時向我介紹它,但我確實沒有發現任何與相應的隨機數有關的內容。
你能提供更多的信息嗎?你可以用'For ... Next'循環來做到這一點。一旦你有了你的隨機數,循環遍歷一個包含120個不同變量和權重的表,找到匹配並輸出你需要的'Range.Offset()'答案。 – Chrismas007
你的值和權重是如何存儲的:作爲單元格還是像數組或集合這樣的VBA結構? – Blackhawk