我正试图生成一个虚拟数据来测试我的报告应用程序。到目前为止,我有这个,如何在vb.net中以不同概率在几个值之间进行随机选择?
Dim list As List(Of Object)
Dim random As System.Random = New System.Random()
For i As Integer = 1 To 100
Dim obj As New Object
If random.Next(0, 3) > 0 Then
obj.Country = "China"
Else
obj.Country = "Japan"
End If
...
list.add(obj)
Next
这工作很好。不过,我希望能够随机更多的国家,分别说5(China, Japan, South Korea, North Korea, Taiwan
)和概率0.4 : 0.3 : 0.1 : 0.1 : 0.1
。
我知道我只能扩展上面的If
声明,但我真的想要避免混乱的代码,因为目的只是为了生成虚拟数据。
尽管上面的代码可以使用三元运算符进行简化,但是如果我需要在5个值之间随机选择,我该怎么做?除If - Else
声明外,是否还有其他选择?
你想用100个条目列表,真的有这个分布,或产生与给定的概率每一个项目? – Wolf 2014-11-25 10:56:18
@狼我只需要用给定的概率生成。我认为下面的答案是足够的 – DnR 2014-11-26 00:43:51