【发布时间】:2012-05-14 13:20:53
【问题描述】:
我正在做一个涉及系统随机生成对象的小应用程序。事情是这样的
每个对象都有一个指定对象的“类型”的字段。比方说火,冰,风(虽然不是应用程序中的实际事物) 每种类型都有一个名为 "possibilities" 的字段,用于确定生成该类型的可能性。 这个字段的默认值当然是 1/numberOfTypes 类型的另一个字段是它在列表中的“顺序”,假设火是第一,冰是第二,风是第三。
我对此的天真解决方案是使用
Math.floor(Math.random()*100 / defualtPossibilities) 并与 type.oder 匹配
所以如果随机值为0.75,并且有三种类型,Math.floor(...)将return 2表示该对象是冰对象。
但是,我遇到了一些潜在的问题:
可以更改每种类型的可能性值。在这种情况下,我仍然可以生成一个随机数并使用循环检查每个 type.order*type.possibilities 直到它超过随机数。但我不确定是否有更好的方法。
当您更改一个 type.possibilities 时,另一个 type。可能性 必须根据总可能性 100 进行更改。我计划通过将更改量平均分配给所有其他类型来做到这一点。这是一个好方法吗?
如果我在某些方面含糊不清,我很抱歉,但请帮助我^-^
谢谢大家!
【问题讨论】:
-
你想生成随机字符串还是随机数还是字母数字?