我正在做一个涉及系统随机生成对象的小应用程序。这是怎么回事
每个对象都有一个指定对象“类型”的字段。假设火、冰、风(虽然不是应用程序中的实际事物)每种类型都有一个名为“可能性”的字段,用于确定生成该类型的可能性。这个字段的默认值当然是 1/numberOfTypes 类型的另一个字段是它在列表中的“顺序”,假设火是第一,冰是第二,风是第三。
我对此的幼稚解决方案是使用
Math.floor(Math.random()*100 / defualtPossibilities)
并将其与 type.oder 匹配因此,如果随机值为 .75,并且存在三种类型,Math.floor(...)
则return 2
意味着该对象是冰对象。
但是,我遇到了一些潜在的问题:
可以更改每种类型的可能性值。在这种情况下,我仍然可以生成一个随机数并使用循环检查每个type.order*type.possibilities直到它超过随机数。但我不确定是否有更好的方法。
当您更改一种type.possibilities时,另一种类型。可能性必须根据总可能性100而改变。我计划通过将变化量平均分配给所有其他类型来做到这一点。是不是一个好办法。
如果我在某些方面含糊不清,我很抱歉,但请帮助我^-^
谢谢你们!