我有一个填充了对象的数组,每个对象都有一个名为 amount 的属性。我想根据金额从随机对象中均匀地减去给定数字。
我将在以下示例中更好地解释它:
Dim subtractBy as integer = 5 'means i want to substract a total of 5
Dim Generator As System.Random = New System.Random()
While (subtractBy > 0)
Dim randomItem = array2(Generator.Next(0, array2.Count))
If (randomItem.amount > 0 ) Then
randomItem.changeAmountBy(-1)
subtractBy = subtractBy - 1
End If
End While
该示例的问题是,每个对象都有相同的机会选择减法。我希望每个对象都有更高的机会线性到数量属性。因此,金额= 6的对象的选择机会比金额= 1的对象高6倍,等等。
(虽然这个例子是在VB中,我也很欣赏一般的非代码答案)
谢谢