如何根据其属性选择随机对象

时间:2014-04-21 16:42:13

标签: algorithm oop

我有一个填充了对象的数组,每个对象都有一个名为 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中,我也很欣赏一般的非代码答案)

谢谢

0 个答案:

没有答案