【发布时间】:2015-08-29 02:56:40
【问题描述】:
我目前正在开展一个项目,该项目需要我在四个不同元素之间保持可变的概率平衡。在我的情况下,我需要在北、西、南和东方向之间进行随机选择,这可能会在代码中的多个点受到影响和更改。我的限制:
- 总是只有四个方向。
- 可以根据概率值随机选择方向。
- 这个概率值可以随时增加或减少。
- 每个方向的概率总和必须始终等于 100。
- 每个方向的概率永远不会低于 0 或超过 100。
- 一个方向的概率值的任何增加或减少都应触发其余方向的概率相等(但平衡)的变化。例如:如果一个方向的概率为 30,并且将其概率降低到 0,则其他三个方向的概率应各增加 10 个点。
- 用户应该能够根据概率检索随机方向,而无需关心或需要知道内部概率分布。他们还应该能够修改一个方向的概率,而无需明确管理其他方向的概率。
是否有一个简洁的算法/数据结构解决方案?我现在有一个丑陋的直接方法,但我很想知道这个问题是否有更简洁的解决方案。
【问题讨论】: