擅长:python、mysql、java
<p>基本上,你要完成的是模拟一个加载的模具:你有六种可能性,并希望为每一种可能性分配不同的概率。从数学上讲,这是一个相当有趣的问题,<a href="http://www.keithschwarz.com/darts-dice-coins/" rel="nofollow">here</a>是关于这个主题的一篇精彩文章。在</p>
<p>不过,您可能正在寻找一些不太冗长的东西,在这里实现的最简单的模式是通过轮盘赌选择</strong>。给定一个字典,其中键是各种“边”(在本例中是可能的损伤公式),值是每边发生的概率(<code>.3, .25</code>),方法如下所示:</p>
<pre><code>def weighted_random_choice(choices):
max = sum(choices.values())
pick = random.uniform(0, max)
current = 0
for key, value in choices.items():
current += value
if current > pick:
return key
</code></pre>